openapi: 3.0.0
paths:
  /v2/business_information:
    get:
      operationId: getBusinessInformation
      summary: Get company business information template
      description: The endpoint is used to get business information questions and structure
      parameters: []
      responses:
        '200':
          description: Business information template.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBusinessInformationOutputDto'
        '204':
          description: Business information template was not found
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - BusinessInformation
  /v2/business_snapshot:
    get:
      operationId: getBusinessSnapshot
      summary: Get company business snapshot
      parameters: []
      responses:
        '200':
          description: Business snapshot.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBusinessSnapshotOutputDto'
        '204':
          description: Business snapshot was not found
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - BusinessSnapshot
  /v2/files/upload:
    post:
      operationId: uploadFiles
      summary: Upload files
      description: >-
        Upload one or multiple files to the system. Supports bulk uploads and
        various file sources. Files are uploaded via multipart/form-data and can
        be associated with suppliers, segments, or folders for organization.
      parameters:
        - name: type
          required: true
          in: query
          description: The type/source of the file being uploaded
          schema:
            example: inquiry
            enum:
              - businessInformation
              - connection
              - inquiry
            type: string
        - name: folder_id
          required: false
          in: query
          description: Optional folder ID to organize uploaded files
          schema:
            example: 507f1f77bcf86cd799439011
            type: string
        - name: segment_id
          required: false
          in: query
          description: Optional segment ID to associate files with a specific segment
          schema:
            example: 507f1f77bcf86cd799439011
            type: string
        - name: supplier_id
          required: false
          in: query
          description: Optional supplier ID to associate files with a specific supplier
          schema:
            example: 507f1f77bcf86cd799439011
            type: string
        - name: display_name
          required: false
          in: query
          description: >-
            Optional custom display name for the uploaded file(s). For multiple
            files, provide multiple display_name parameters (e.g.,
            display_name=Name1&display_name=Name2). Order must match file order.
            Note: The number of files with custom display names may be limited
            by query string length restrictions.
          schema:
            type: array
            items:
              type: string
      requestBody:
        required: true
        description: Files to upload (supports single or multiple files)
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                files:
                  type: array
                  items:
                    type: string
                    format: binary
              required:
                - files
      responses:
        '201':
          description: >-
            Files uploaded successfully. Returns array of uploaded file
            metadata.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UploadedFileDto'
        '400':
          description: Invalid request. No files provided or invalid parameters.
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - File
  /v2/files/{fileId}:
    get:
      operationId: getFile
      summary: Get file
      description: >-
        The endpoint is used to get related files to the company or its
        suppliers
      parameters:
        - name: fileId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: Found file is returned.
          content:
            application/json:
              schema:
                type: string
                format: binary
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: File was not found
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - File
  /v2/findings/{id}:
    get:
      operationId: getCompanyFinding
      summary: Get company finding
      description: This endpoint will return data and information about a specific finding.
      parameters:
        - name: fields
          required: false
          in: query
          description: Fields to include in response
          schema:
            enum:
              - id
              - status
              - severity
              - asset_name
              - category
              - sub_category
              - test_text
              - test_name
              - finding_text
              - description
              - insert_ts
              - update_ts
              - metadata
              - cves
            type: string
        - name: id
          required: true
          in: path
          description: The finding id
          schema:
            type: string
      responses:
        '200':
          description: Finding found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetFindingsOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      tags:
        - Finding
      security:
        - bearer: []
  /v2/findings:
    get:
      operationId: getCompanyFindings
      summary: Get company findings
      description: >-
        This endpoint will return data and information about findings in the
        portfolio.
      parameters:
        - name: limit
          required: false
          in: query
          description: Number of records to return in the response
          schema:
            minimum: 1
            maximum: 200
            default: 200
            type: number
        - name: sortBy
          required: false
          in: query
          description: Name of the field to sort by
          schema:
            enum:
              - status
              - asset_name
              - test_name
              - insert_ts
              - update_ts
            type: string
        - name: sortDirection
          required: false
          in: query
          description: The direction of the field sort specified by sort_by
          schema:
            enum:
              - ASC
              - asc
              - '1'
              - DESC
              - desc
              - '-1'
            type: string
        - name: next_token
          required: false
          in: query
          description: >-
            Token received from a previous request to obtain the next chunk of
            data
          schema:
            type: string
        - name: fields
          required: false
          in: query
          description: Fields to include in response
          schema:
            enum:
              - id
              - status
              - severity
              - asset_name
              - category
              - sub_category
              - test_text
              - test_name
              - finding_text
              - description
              - insert_ts
              - update_ts
              - metadata
              - cves
            type: string
        - name: status
          required: false
          in: query
          description: Status of the finding(s)
          schema:
            type: array
            items:
              type: string
        - name: severity
          required: false
          in: query
          description: Severity of the finding(s)
          schema:
            type: array
            items:
              type: string
        - name: asset_name
          required: false
          in: query
          description: Asset of finding(s)
          schema:
            type: array
            items:
              type: string
        - name: id
          required: false
          in: query
          description: Id of the finding(s)
          schema:
            type: array
            items:
              type: string
        - name: sub_category
          required: false
          in: query
          description: Sub category of finding(s)
          schema:
            type: array
            items:
              type: string
        - name: segments
          required: false
          in: query
          description: Ids of segments of finding(s)
          schema:
            type: array
            items:
              type: string
        - name: test_name
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: All found findings are returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetFindingsOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      tags:
        - Finding
      security:
        - bearer: []
  /v2/portfolios:
    get:
      operationId: getPortfolios
      summary: Get company portfolios
      description: >-
        This endpoint will return the portfolios and the supplier’s id’s under
        it.
      parameters:
        - name: limit
          required: false
          in: query
          description: Number of records to return in the response
          schema:
            minimum: 1
            maximum: 200
            default: 200
            type: number
        - name: sortBy
          required: false
          in: query
          description: Name of the field to sort by
          schema:
            type: array
            items:
              type: string
        - name: sortDirection
          required: false
          in: query
          description: The direction of the field sort specified by sort_by
          schema:
            enum:
              - ASC
              - asc
              - '1'
              - DESC
              - desc
              - '-1'
            type: string
        - name: next_token
          required: false
          in: query
          description: >-
            Token received from a previous request to obtain the next chunk of
            data
          schema:
            type: string
        - name: fields
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: Found portfolios are being returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetPortfoliosOutputDto'
        '204':
          description: No portfolios found.
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Portfolio
  /v2/relationships:
    get:
      operationId: getRelationships
      summary: Get relationships
      description: This endpoint will return all defined relationships.
      parameters:
        - name: limit
          required: false
          in: query
          description: Number of records to return in the response
          schema:
            minimum: 1
            maximum: 200
            default: 200
            type: number
        - name: sortBy
          required: false
          in: query
          description: Name of the field to sort by
          schema:
            type: array
            items:
              type: string
        - name: sortDirection
          required: false
          in: query
          description: The direction of the field sort specified by sort_by
          schema:
            enum:
              - ASC
              - asc
              - '1'
              - DESC
              - desc
              - '-1'
            type: string
        - name: next_token
          required: false
          in: query
          description: >-
            Token received from a previous request to obtain the next chunk of
            data
          schema:
            type: string
      responses:
        '200':
          description: ''
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Relationship
  /v2/suppliers/{supplierId}/questionnaires:
    get:
      operationId: getInquiriesInfo
      summary: Get supplier questionnaires info
      description: >-
        This endpoint will return info about the latest questionnaires for each
        template sent to a specific supplier.
      parameters:
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
        - name: limit
          required: false
          in: query
          description: Number of records to return in the response
          schema:
            minimum: 1
            maximum: 20
            default: 20
            type: number
        - name: sortBy
          required: false
          in: query
          description: Name of the field to sort by
          schema:
            enum:
              - questionnaire_id
              - template_name
              - completion_rate
              - status_update_date
              - created_by
              - status
              - score
              - ttl
              - weight
              - questionnaire_submit_date
              - questionnaire_sent_date
            type: string
        - name: sortDirection
          required: false
          in: query
          description: The direction of the field sort specified by sort_by
          schema:
            enum:
              - ASC
              - asc
              - '1'
              - DESC
              - desc
              - '-1'
            type: string
        - name: next_token
          required: false
          in: query
          description: >-
            Token received from a previous request to obtain the next chunk of
            data
          schema:
            type: string
        - name: questionnaire_type
          required: false
          in: query
          schema:
            enum:
              - external
              - internal
              - both
            type: string
        - name: fields
          required: true
          in: query
          schema:
            default:
              - questionnaire_id
              - template_name
              - completion_rate
              - status_update_date
              - created_by
              - status
              - score
              - ttl
              - weight
              - questionnaire_submit_date
              - questionnaire_sent_date
            enum:
              - questionnaire_id
              - template_name
              - completion_rate
              - status_update_date
              - created_by
              - status
              - score
              - ttl
              - weight
              - questionnaire_submit_date
              - questionnaire_sent_date
            type: string
        - name: template_names
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: Supplier questionnaires info
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetInquiriesInfoOutputDto'
        '400':
          description: Invalid input
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Questionnaire
  /v2/suppliers/{supplierId}/segment/{segmentId}/questionnaires:
    get:
      operationId: getSegmentInquiriesInfo
      summary: Get segment questionnaires info
      description: >-
        This endpoint will return info about the latest questionnaires for each
        template sent to a specific segment.
      parameters:
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
        - name: segmentId
          required: true
          in: path
          description: Id of the segment
          schema:
            type: string
        - name: limit
          required: false
          in: query
          description: Number of records to return in the response
          schema:
            minimum: 1
            maximum: 20
            default: 20
            type: number
        - name: sortBy
          required: false
          in: query
          description: Name of the field to sort by
          schema:
            enum:
              - questionnaire_id
              - template_name
              - completion_rate
              - status_update_date
              - created_by
              - status
              - score
              - ttl
              - weight
              - questionnaire_submit_date
              - questionnaire_sent_date
            type: string
        - name: sortDirection
          required: false
          in: query
          description: The direction of the field sort specified by sort_by
          schema:
            enum:
              - ASC
              - asc
              - '1'
              - DESC
              - desc
              - '-1'
            type: string
        - name: next_token
          required: false
          in: query
          description: >-
            Token received from a previous request to obtain the next chunk of
            data
          schema:
            type: string
        - name: questionnaire_type
          required: false
          in: query
          schema:
            enum:
              - external
              - internal
              - both
            type: string
        - name: fields
          required: true
          in: query
          schema:
            default:
              - questionnaire_id
              - template_name
              - completion_rate
              - status_update_date
              - created_by
              - status
              - score
              - ttl
              - weight
              - questionnaire_submit_date
              - questionnaire_sent_date
            enum:
              - questionnaire_id
              - template_name
              - completion_rate
              - status_update_date
              - created_by
              - status
              - score
              - ttl
              - weight
              - questionnaire_submit_date
              - questionnaire_sent_date
            type: string
        - name: template_names
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: Segment questionnaires info
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetInquiriesInfoOutputDto'
        '400':
          description: Invalid input
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Questionnaire
  /v2/suppliers/{supplierId}/questionnaires/{questionnaireId}:
    get:
      operationId: getQuestionnaireAnswersInfo
      summary: Get supplier questionnaire
      description: >-
        This endpoint will return info about the latest questionnaires for each
        template sent to a specific supplier including the answers.
      parameters:
        - name: supplierId
          required: true
          in: path
          schema:
            type: string
        - name: questionnaireId
          required: true
          in: path
          schema:
            type: string
        - name: questionnaire_type
          required: false
          in: query
          schema:
            enum:
              - external
              - internal
              - both
            type: string
        - name: fields
          required: false
          in: query
          schema:
            enum:
              - score
              - template_name
              - template_id
              - status
              - ttl
              - questions
              - id
              - display_name
              - internal_notes
              - comments
              - segment_id
            type: string
        - name: language
          required: false
          in: query
          schema:
            enum:
              - en
              - ja
              - zh
              - he
            type: string
        - name: out_of_policy_only
          required: false
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: Supplier questionnaire answers info
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetInquiriesInfoWithAnswersOutputDto'
        '400':
          description: Invalid input
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Questionnaires was not found
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Questionnaire
    put:
      operationId: putInquiry
      summary: Put Questionnaire
      description: This endpoint will extend due date of a questionnaire.
      parameters:
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
        - name: questionnaireId
          required: true
          in: path
          description: Id of the questionnaire
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutInquiryBodyDtoV2'
      responses:
        '200':
          description: Questionnaire.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutInquiryOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Connection was not found
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Questionnaire
  /v2/suppliers/{supplierId}/segment/{segmentId}/questionnaires/{questionnaireId}:
    get:
      operationId: getSegmentQuestionnaireAnswersInfo
      summary: Get segment questionnaire
      description: >-
        This endpoint will return info about the latest questionnaire for each
        template sent to a specific segment including the answers.
      parameters:
        - name: supplierId
          required: true
          in: path
          schema:
            type: string
        - name: segmentId
          required: true
          in: path
          schema:
            type: string
        - name: questionnaireId
          required: true
          in: path
          schema:
            type: string
        - name: questionnaire_type
          required: false
          in: query
          schema:
            enum:
              - external
              - internal
              - both
            type: string
        - name: fields
          required: false
          in: query
          schema:
            enum:
              - score
              - template_name
              - template_id
              - status
              - ttl
              - questions
              - id
              - display_name
              - internal_notes
              - comments
              - segment_id
            type: string
        - name: language
          required: false
          in: query
          schema:
            enum:
              - en
              - ja
              - zh
              - he
            type: string
        - name: out_of_policy_only
          required: false
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: Segment questionnaire answers info
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetInquiriesInfoWithAnswersOutputDto'
        '400':
          description: Invalid input
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Questionnaires was not found
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Questionnaire
    put:
      operationId: putSegmentInquiry
      summary: Put Segment Questionnaire
      description: This endpoint will extend due date of a segment questionnaire.
      parameters:
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
        - name: questionnaireId
          required: true
          in: path
          description: Id of the questionnaire
          schema:
            type: string
        - name: segmentId
          required: true
          in: path
          description: Id of the segment
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutInquiryBodyDtoV2'
      responses:
        '200':
          description: Questionnaire.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutInquiryOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Connection was not found
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Questionnaire
  /v2/suppliers/{supplierId}/report/findings:
    get:
      operationId: getFindingsReport
      summary: Get supplier's report
      description: >-
        This endpoint will return csv with information about findings in the
        portfolio.
      parameters:
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
        - name: lang
          required: false
          in: query
          description: Report language (en|ja)
          schema:
            enum:
              - en
              - ja
            type: string
      responses:
        '200':
          description: Report has been found
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Report was not found.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Finding
  /v2/suppliers/{supplierId}/findings/{findingId}:
    get:
      operationId: getSupplierFinding
      summary: Get supplier finding by id
      description: >-
        This endpoint will return data and information about a supplier’s
        specific finding.
      parameters:
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
        - name: findingId
          required: true
          in: path
          description: Finding id to fetch
          schema:
            type: string
        - name: fields
          required: false
          in: query
          description: Fields to include in response
          schema:
            enum:
              - id
              - status
              - severity
              - asset_name
              - category
              - sub_category
              - test_text
              - test_name
              - finding_text
              - description
              - insert_ts
              - update_ts
              - metadata
              - cves
            type: string
      responses:
        '200':
          description: Found supplier finding by id.
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Finding
  /v2/suppliers/{supplierId}/findings:
    get:
      operationId: getSupplierFindings
      summary: Get supplier's findings
      description: >-
        This endpoint will return data and information about findings in the
        portfolio.
      parameters:
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
        - name: limit
          required: false
          in: query
          description: Number of records to return in the response
          schema:
            minimum: 1
            maximum: 200
            default: 200
            type: number
        - name: sortBy
          required: false
          in: query
          description: Name of the field to sort by
          schema:
            enum:
              - status
              - asset_name
              - test_name
              - insert_ts
              - update_ts
            type: string
        - name: sortDirection
          required: false
          in: query
          description: The direction of the field sort specified by sort_by
          schema:
            enum:
              - ASC
              - asc
              - '1'
              - DESC
              - desc
              - '-1'
            type: string
        - name: next_token
          required: false
          in: query
          description: >-
            Token received from a previous request to obtain the next chunk of
            data
          schema:
            type: string
        - name: fields
          required: false
          in: query
          description: Fields to include in response
          schema:
            enum:
              - id
              - status
              - severity
              - asset_name
              - category
              - sub_category
              - test_text
              - test_name
              - finding_text
              - description
              - insert_ts
              - update_ts
              - metadata
              - cves
            type: string
        - name: status
          required: false
          in: query
          description: Status of the finding(s)
          schema:
            type: array
            items:
              type: string
        - name: severity
          required: false
          in: query
          description: Severity of the finding(s)
          schema:
            type: array
            items:
              type: string
        - name: asset_name
          required: false
          in: query
          description: Asset of finding(s)
          schema:
            type: array
            items:
              type: string
        - name: id
          required: false
          in: query
          description: Id of the finding(s)
          schema:
            type: array
            items:
              type: string
        - name: sub_category
          required: false
          in: query
          description: Sub category of finding(s)
          schema:
            type: array
            items:
              type: string
        - name: segments
          required: false
          in: query
          description: Ids of segments of finding(s)
          schema:
            type: array
            items:
              type: string
        - name: test_name
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: All found findings are returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetFindingsOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Finding
  /v2/suppliers/{supplierId}/report/summary:
    get:
      operationId: getAssessmentReport
      summary: Get supplier's assessment report
      description: This endpoint will return pdf with assessment report.
      parameters:
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
        - name: lang
          required: false
          in: query
          description: Report language (en|ja)
          schema:
            enum:
              - en
              - ja
            type: string
        - name: postureOnly
          required: false
          in: query
          description: >-
            Report only displaying cyber posture data (true | false, default =
            false)
          schema:
            type: boolean
      responses:
        '200':
          description: Report has been found
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Report was not found.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Finding
  /v2/suppliers/{supplierId}/report/questionnaire/{templateName}:
    get:
      operationId: getInquiryReport
      summary: Get supplier's questionnaire report
      description: This endpoint will return pdf with questionnaire report.
      parameters:
        - name: supplierId
          required: true
          in: path
          schema:
            type: string
        - name: templateName
          required: true
          in: path
          schema:
            type: string
        - name: lang
          required: false
          in: query
          description: Report language
          schema:
            enum:
              - en
              - ja
            type: string
        - name: isConfidential
          required: false
          in: query
          description: >-
            Optional - set to true if you want to get confidential pdf
            (including questions, answers, scores, comments & notes, and tags &
            relationships) (false | true) -> false is the default (including
            only questions, answers and conversation with suppliers)
          schema:
            type: boolean
        - name: questionnaireId
          required: false
          in: query
          schema:
            type: string
      responses:
        '200':
          description: Report has been found
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Report was not found.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Questionnaire
  /v2/suppliers/{supplierId}/questionnaires/{templateId}:
    post:
      operationId: postInquiry
      summary: Post questionnaire
      description: This endpoint will send questionnaire to supplier.
      parameters:
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
        - name: templateId
          required: false
          in: path
          description: >-
            name of the template to use for the questionnaire. Needs to be
            provided for sending a questionnaire. I's called "templateId" to not
            confuse the users with "display_name"
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostInquiryBodyDtoV2'
      responses:
        '200':
          description: Questionnaire.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostInquiryOutputDto'
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostInquiryOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Connection was not found
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Questionnaire
  /v2/suppliers/{supplierId}/segment/{segmentId}/questionnaires/{templateId}:
    post:
      operationId: postSegmentInquiry
      summary: Post segment questionnaire
      description: This endpoint will send questionnaire to segment.
      parameters:
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
        - name: templateId
          required: false
          in: path
          description: >-
            name of the template to use for the questionnaire. Needs to be
            provided for sending a questionnaire. I's called "templateId" to not
            confuse the users with "display_name"
          schema:
            type: string
        - name: segmentId
          required: true
          in: path
          description: Id of the segment
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostInquiryBodyDtoV2'
      responses:
        '200':
          description: Questionnaire.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostInquiryOutputDto'
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostInquiryOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Connection was not found
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Questionnaire
  /v2/suppliers/{supplierId}/questionnaires/{questionnaireId}/answer:
    put:
      operationId: putSupplierQuestionnaireAnswers
      summary: Answer supplier questionnaire
      description: This endpoint will submit answers for a supplier questionnaire.
      parameters:
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
        - name: questionnaireId
          required: true
          in: path
          description: Id of the questionnaire
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutInquiryAnswersBodyDto'
      responses:
        '200':
          description: Questionnaire answers submitted successfully.
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Questionnaire was not found
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Questionnaire
  /v2/suppliers/{supplierId}/segment/{segmentId}/questionnaires/{questionnaireId}/answer:
    put:
      operationId: putSegmentQuestionnaireAnswers
      summary: Answer segment questionnaire
      description: This endpoint will submit answers for a segment questionnaire.
      parameters:
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
        - name: questionnaireId
          required: true
          in: path
          description: Id of the questionnaire
          schema:
            type: string
        - name: segmentId
          required: true
          in: path
          description: Id of the segment
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutInquiryAnswersBodyDto'
      responses:
        '200':
          description: Questionnaire answers submitted successfully.
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Questionnaire was not found
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Questionnaire
  /v2/suppliers/{supplierId}/files:
    get:
      operationId: getSupplierFiles
      summary: Get supplier's files
      description: The endpoint will retrieve all the files of a specific supplier
      parameters:
        - name: limit
          required: false
          in: query
          description: Number of records to return in the response
          schema:
            minimum: 1
            maximum: 200
            default: 200
            type: number
        - name: sortBy
          required: false
          in: query
          description: Name of the field to sort by
          schema:
            type: string
        - name: sortDirection
          required: false
          in: query
          description: The direction of the field sort specified by sort_by
          schema:
            enum:
              - ASC
              - asc
              - '1'
              - DESC
              - desc
              - '-1'
            type: string
        - name: next_token
          required: false
          in: query
          description: >-
            Token received from a previous request to obtain the next chunk of
            data
          schema:
            type: string
        - name: origin
          required: false
          in: query
          description: A list of possible file origins
          schema:
            enum:
              - businessInformation
              - connection
              - inquiry
            type: string
        - name: fields
          required: false
          in: query
          description: Suppliers will only contain specified fields (all if none)
          schema:
            type: array
            items:
              enum:
                - added_by
                - filename
                - insert_ts
                - origin
                - type
              type: string
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
      responses:
        '200':
          description: All found files.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetSupplierFilesOutputDto'
        '204':
          description: No files found.
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      tags:
        - File
  /v2/suppliers/{supplierId}/remediation/{taskId}:
    get:
      operationId: getTaskById
      summary: Get remediation task by id
      description: >-
        THis endpoint is used to get a specific remediation task of a supplier
        by id.
      parameters:
        - name: supplierId
          required: true
          in: path
          schema:
            type: string
        - name: taskId
          required: true
          in: path
          schema:
            type: string
        - name: fields
          required: false
          in: query
          schema:
            enum:
              - company_id
              - supplier_id
              - type
              - issue_id
              - created_by
              - start_date
              - end_date
              - due_date
              - status
              - description
              - priority
              - pocs
              - title
              - created_at
              - updated_at
              - inquiry_id
              - question_id
              - criterion_id
              - finding_id
              - status_reason
            type: string
        - name: enrich
          required: false
          in: query
          schema:
            enum:
              - created_by
              - pocs
              - criterion_id
              - finding_id
              - company_id
              - question_id
              - inquiry_id
            type: string
      responses:
        '200':
          description: Supplier remediation task
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTaskByIdOutputDto'
        '400':
          description: Invalid input
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Task was not found
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - RemediationTasks
  /v2/suppliers/{supplierId}/remediation:
    get:
      operationId: getSupplierTasks
      summary: Get supplier's remediation tasks
      description: >-
        The endpoint will retrieve all the remediation tasks of a specific
        supplier
      parameters:
        - name: limit
          required: false
          in: query
          description: Number of records to return in the response
          schema:
            minimum: 1
            maximum: 50
            default: 50
            type: number
        - name: sortBy
          required: false
          in: query
          description: Name of the field to sort by
          schema:
            type: array
            items:
              type: string
        - name: sortDirection
          required: false
          in: query
          description: The direction of the field sort specified by sort_by
          schema:
            enum:
              - ASC
              - asc
              - '1'
              - DESC
              - desc
              - '-1'
            type: string
        - name: next_token
          required: false
          in: query
          description: >-
            Token received from a previous request to obtain the next chunk of
            data
          schema:
            type: string
        - name: segmentId
          required: false
          in: query
          description: SegmentId to filter tasks
          schema:
            type: string
        - name: fields
          required: false
          in: query
          description: Suppliers will only contain specified fields (all if none)
          schema:
            type: array
            items:
              enum:
                - company_id
                - supplier_id
                - type
                - issue_id
                - created_by
                - start_date
                - end_date
                - due_date
                - status
                - description
                - priority
                - pocs
                - title
                - created_at
                - updated_at
                - inquiry_id
                - question_id
                - criterion_id
                - finding_id
                - status_reason
              type: string
        - name: enrich
          required: false
          in: query
          description: >-
            Fields to enrich in the response. Supported values: criterion_id,
            question_id
          schema:
            default:
              - question_id
            type: array
            items:
              enum:
                - criterion_id
                - question_id
              type: string
        - name: type
          required: false
          in: query
          schema:
            enum:
              - CRITERION_REMEDIATION
              - QUESTION_REMEDIATION
              - INTERNAL_GENERAL
              - EXTERNAL_GENERAL
              - REVIEW_SUPPLIER
            type: string
        - required: false
          name: gte
          in: query
          schema:
            type: string
        - required: false
          name: lte
          in: query
          schema:
            type: string
        - required: false
          name: gt
          in: query
          schema:
            type: string
        - required: false
          name: lt
          in: query
          schema:
            type: string
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
      responses:
        '200':
          description: All found remediation tasks.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetSupplierRemediationTasksOutputDto'
        '204':
          description: No remediation tasks found.
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      tags:
        - RemediationTasks
  /v2/suppliers/remediation:
    get:
      operationId: getSuppliersTasks
      summary: Get suppliers remediation tasks
      description: The endpoint retrieves all the remediation task of all suppliers
      parameters:
        - name: limit
          required: false
          in: query
          description: Number of records to return in the response
          schema:
            minimum: 1
            maximum: 50
            default: 50
            type: number
        - name: sortBy
          required: false
          in: query
          description: Name of the field to sort by
          schema:
            type: array
            items:
              type: string
        - name: sortDirection
          required: false
          in: query
          description: The direction of the field sort specified by sort_by
          schema:
            enum:
              - ASC
              - asc
              - '1'
              - DESC
              - desc
              - '-1'
            type: string
        - name: next_token
          required: false
          in: query
          description: >-
            Token received from a previous request to obtain the next chunk of
            data
          schema:
            type: string
        - name: fields
          required: false
          in: query
          description: Suppliers will only contain specified fields (all if none)
          schema:
            type: array
            items:
              enum:
                - company_id
                - supplier_id
                - type
                - issue_id
                - created_by
                - start_date
                - end_date
                - due_date
                - status
                - description
                - priority
                - pocs
                - title
                - created_at
                - updated_at
                - inquiry_id
                - question_id
                - criterion_id
                - finding_id
                - status_reason
              type: string
        - name: enrich
          required: false
          in: query
          description: >-
            Fields to enrich in the response. Supported values: criterion_id,
            question_id
          schema:
            default:
              - question_id
            type: array
            items:
              enum:
                - criterion_id
                - question_id
              type: string
        - name: type
          required: false
          in: query
          schema:
            enum:
              - CRITERION_REMEDIATION
              - QUESTION_REMEDIATION
              - INTERNAL_GENERAL
              - EXTERNAL_GENERAL
              - REVIEW_SUPPLIER
            type: string
      responses:
        '200':
          description: All found remediation tasks.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetSupplierRemediationTasksOutputDto'
        '204':
          description: No remediation tasks found.
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      tags:
        - RemediationTasks
  /v2/suppliers:
    post:
      operationId: postSupplier
      summary: Post supplier
      description: >-
        Add a new supplier to the portfolio. If a questionnaire is also sent via
        this request, and you have more than 1 questionnaire template, the
        latest template will be sent. For information regarding which template
        is the latest one, please contact Panorays Support. It is recommended to
        use “Send questionnaire” POST request to send a questionnaire instead.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostSupplierBodyDto'
      responses:
        '200':
          description: Supplier created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostSupplierOutputDto'
        '400':
          description: Invalid input
        '401':
          description: Invalid Request. Portfolios are not available for this user
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Supplier
    get:
      operationId: getSuppliers
      summary: Get suppliers
      description: Get all of your suppliers
      parameters:
        - name: fields
          required: false
          in: query
          description: Suppliers will only contain specified fields (all if none)
          schema:
            type: array
            items:
              type: string
              enum:
                - approval
                - assets
                - business_impact
                - business_information
                - combined_score
                - contacts
                - created_by
                - evaluation_type
                - id
                - insert_ts
                - latest_assessment_date
                - name
                - portfolios
                - posture_score
                - primary_domain
                - questionnaire_overall_score
                - questionnaires
                - relationships
                - risk
                - segment_id
                - tags
        - name: names
          required: false
          in: query
          description: Search by supplier names
          schema:
            type: array
            items:
              type: string
        - name: ids
          required: false
          in: query
          description: Search by supplier ids
          schema:
            type: array
            items:
              type: string
        - name: assets
          required: false
          in: query
          description: Search by supplier assets
          schema:
            type: array
            items:
              type: string
        - name: tags
          required: false
          in: query
          description: Search by supplier tags
          schema:
            type: array
            items:
              type: string
        - name: sortBy
          required: false
          in: query
          description: Name of the field to sort by
          schema:
            type: array
            items:
              enum:
                - name
                - business_impact
                - insert_ts
              type: string
        - name: sortDirection
          required: false
          in: query
          description: The direction of the field sort specified by sort_by
          schema:
            enum:
              - ASC
              - asc
              - '1'
              - DESC
              - desc
              - '-1'
            type: string
        - name: limit
          required: false
          in: query
          description: Number of records to return in the response
          schema:
            minimum: 1
            maximum: 100
            default: 100
            type: number
        - name: next_token
          required: false
          in: query
          description: >-
            Token received from a previous request to obtain the next chunk of
            data
          schema:
            type: string
        - name: segment_ids
          required: false
          in: query
          description: Search by supplier segment ids
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: All found suppliers are returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetSupplierOutputDto'
        '204':
          description: No suppliers found.
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Supplier
  /v2/suppliers/{id}:
    get:
      operationId: getSupplier
      summary: Get supplier
      description: Get a single supplier by id
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: string
        - name: fields
          required: false
          in: query
          description: Suppliers will only contain specified fields (all if none)
          schema:
            type: array
            items:
              enum:
                - approval
                - assets
                - business_impact
                - business_information
                - combined_score
                - contacts
                - created_by
                - evaluation_type
                - id
                - insert_ts
                - latest_assessment_date
                - name
                - portfolios
                - posture_score
                - primary_domain
                - questionnaire_overall_score
                - questionnaires
                - relationships
                - risk
                - segment_id
                - tags
              type: string
      responses:
        '200':
          description: Supplier found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSupplierOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Supplier was not found
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Supplier
  /v2/suppliers/{supplierId}:
    put:
      operationId: putSupplier
      summary: Update supplier
      description: Update a single supplier by id.
      parameters:
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutSupplierBodyDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
        '204':
          description: Supplier updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSupplierOutputDto'
        '400':
          description: Invalid input
        '401':
          description: Invalid Request. Portfolios are not available for this user
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Supplier
    delete:
      operationId: deleteSupplier
      summary: Delete supplier
      description: Delete a single supplier by id.
      parameters:
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteSupplierBodyDto'
      responses:
        '204':
          description: Supplier deleted Or Supplier not found.
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Supplier
  /v2/suppliers/{supplierId}/tests:
    get:
      operationId: getSuppliersTests
      summary: Get suppliers tests
      description: >-
        This endpoint will return data and information about the requested
        supplier’s tests performed as part of the evaluation.
      parameters:
        - name: limit
          required: false
          in: query
          description: Number of records to return in the response
          schema:
            minimum: 1
            maximum: 200
            default: 200
            type: number
        - name: sortBy
          required: false
          in: query
          description: Name of the field to sort by
          schema:
            type: array
            items:
              enum:
                - name
                - severity
                - category
                - category_text
                - sub_category
                - sub_category_text
                - criterion_text
                - open_findings_count
                - closed_findings_count
              type: string
        - name: sortDirection
          required: false
          in: query
          description: The direction of the field sort specified by sort_by
          schema:
            enum:
              - ASC
              - asc
              - '1'
              - DESC
              - desc
              - '-1'
            type: string
        - name: next_token
          required: false
          in: query
          description: >-
            Token received from a previous request to obtain the next chunk of
            data
          schema:
            type: string
        - name: name
          required: false
          in: query
          description: Tests will only contain specified name (all if none)
          schema:
            type: array
            items:
              type: string
        - name: severity
          required: false
          in: query
          description: Tests will only contain specified severity (all if none)
          schema:
            type: array
            items:
              enum:
                - info
                - low
                - medium
                - high
                - critical
              type: string
        - name: fields
          required: false
          in: query
          schema:
            enum:
              - name
              - severity
              - category
              - category_text
              - sub_category
              - sub_category_text
              - criterion_text
              - open_findings_count
              - closed_findings_count
            type: string
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
      responses:
        '200':
          description: Tests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTestsOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      tags:
        - Supplier
  /v2/suppliers/{supplierId}/business_snapshot:
    get:
      operationId: getSupplierBusinessSnapshotV2
      summary: Get supplier business snapshot
      description: This endpoint will return business snapshot information.
      parameters:
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
      responses:
        '200':
          description: Business snapshot.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBusinessSnapshotOutputDto'
        '204':
          description: No business snapshot found.
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Connection was not found
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - BusinessSnapshot
  /v2/suppliers/{supplierId}/assets:
    post:
      operationId: postSupplierAssets
      summary: Post supplier assets
      description: This endpoint will create assets of a supplier.
      parameters:
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostAssetsInputDto'
      responses:
        '200':
          description: Assets.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAssetOutputDto'
        '204':
          description: Supplier not found.
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Connection was not found
        '429':
          description: Too Many Requests
      tags:
        - Supplier
    get:
      operationId: getSupplierAssets
      summary: Get supplier's assets
      description: Get assets of a specific supplier.
      parameters:
        - name: limit
          required: false
          in: query
          description: Number of records to return in the response
          schema:
            minimum: 1
            maximum: 200
            default: 200
            type: number
        - name: sortBy
          required: false
          in: query
          description: Name of the field to sort by
          schema:
            enum:
              - name
              - type
              - insert_ts
            type: string
        - name: sortDirection
          required: false
          in: query
          description: The direction of the field sort specified by sort_by
          schema:
            enum:
              - ASC
              - asc
              - '1'
              - DESC
              - desc
              - '-1'
            type: string
        - name: next_token
          required: false
          in: query
          description: >-
            Token received from a previous request to obtain the next chunk of
            data
          schema:
            type: string
        - name: fields
          required: false
          in: query
          description: Asset will only contain specified fields (all if none)
          schema:
            type: array
            items:
              enum:
                - name
                - insert_ts
                - type
                - is_up
                - location
                - domains
                - ips
                - asset_lifecycle
                - dispute_status
                - id
                - discovery_origin
                - segments
              type: string
        - name: name
          required: false
          in: query
          description: Name of the asset
          schema:
            type: array
            items:
              type: string
        - name: type
          required: false
          in: query
          description: Asset type
          schema:
            type: array
            items:
              enum:
                - DOMAIN
                - SUBDOMAIN
                - IP
                - IP_RANGE
                - domain
                - subdomain
                - ip
                - ip_range
              type: string
        - name: is_up
          required: false
          in: query
          description: Is the asset active or not
          schema:
            type: boolean
        - name: segments
          required: false
          in: query
          description: Ids of the segments
          schema:
            type: array
            items:
              type: string
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
      responses:
        '200':
          description: All found assets.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetAssetOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Supplier
  /v2/suppliers/{supplierId}/posture:
    get:
      operationId: getSupplierPosture
      summary: Get supplier's posture
      description: >-
        This endpoint will return data and information about the requested
        supplier’s posture in the portfolio.
      parameters:
        - name: fields
          required: false
          in: query
          description: Posture will only contain specified fields (all if none)
          schema:
            type: array
            items:
              enum:
                - grade
                - categories
                - id
                - name
              type: string
        - name: segmentId
          required: false
          in: query
          description: segmentId of the posture
          schema:
            type: string
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
      responses:
        '200':
          description: Posture.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPostureOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: No posture found.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Posture
  /v2/suppliers/{supplierId}/custom-factors:
    get:
      operationId: getSupplierCustomFactors
      x-release: new
      summary: Get supplier custom factors
      description: This endpoint will return data about custom factors of a supplier.
      parameters:
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
      responses:
        '200':
          description: Array of custom factors
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PostSupplierCustomFactorsOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Factors
    post:
      operationId: postSupplierCustomFactors
      x-release: new
      summary: Apply custom factors for supplier
      description: This endpoint will apply custom factor to a supplier.
      parameters:
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostSupplierCustomFactorsBodyDto'
      responses:
        '200':
          description: Array of custom factors
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PostSupplierCustomFactorsOutputDto'
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Factors
  /v2/suppliers/{supplierId}/re-evaluation:
    post:
      operationId: postSupplierReEvaluation
      x-release: new
      summary: Apply re evaluation for supplier
      description: This endpoint will apply re evaluation to a supplier.
      parameters:
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostSupplierReEvaluationBodyDto'
      responses:
        '200':
          description: re evaluation set for the supplier
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostSupplierReEvaluationOutputDto'
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostSupplierReEvaluationOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - ReEvaluation
  /v2/suppliers/{supplierId}/segments/{segmentId}:
    put:
      operationId: putSegment
      summary: Put segment
      description: Update a single segment by id.
      parameters:
        - name: supplierId
          required: true
          in: path
          description: Id of the supplier
          schema:
            type: string
        - name: segmentId
          required: true
          in: path
          description: Id of the segment
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutSegmentBodyDto'
      responses:
        '200':
          description: Segment updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutSegmentOutputDto'
        '204':
          description: Segment updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutSegmentOutputDto'
        '400':
          description: Invalid input
        '401':
          description: Invalid Request. Portfolios are not available for this user
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Segment
  /v2/assets:
    get:
      operationId: getAssets
      summary: Get company assets
      description: The endpoint is used to get all company assets.
      parameters:
        - name: limit
          required: false
          in: query
          description: Number of records to return in the response
          schema:
            minimum: 1
            maximum: 200
            default: 200
            type: number
        - name: sortBy
          required: false
          in: query
          description: Name of the field to sort by
          schema:
            enum:
              - name
              - type
              - insert_ts
            type: string
        - name: sortDirection
          required: false
          in: query
          description: The direction of the field sort specified by sort_by
          schema:
            enum:
              - ASC
              - asc
              - '1'
              - DESC
              - desc
              - '-1'
            type: string
        - name: next_token
          required: false
          in: query
          description: >-
            Token received from a previous request to obtain the next chunk of
            data
          schema:
            type: string
        - name: fields
          required: false
          in: query
          description: Asset will only contain specified fields (all if none)
          schema:
            type: array
            items:
              enum:
                - name
                - insert_ts
                - type
                - is_up
                - location
                - domains
                - ips
                - asset_lifecycle
                - dispute_status
                - id
                - discovery_origin
                - segments
              type: string
        - name: name
          required: false
          in: query
          description: Name of the asset
          schema:
            type: array
            items:
              type: string
        - name: type
          required: false
          in: query
          description: Asset type
          schema:
            type: array
            items:
              enum:
                - DOMAIN
                - SUBDOMAIN
                - IP
                - IP_RANGE
                - domain
                - subdomain
                - ip
                - ip_range
              type: string
        - name: is_up
          required: false
          in: query
          description: Is the asset active or not
          schema:
            type: boolean
        - name: segments
          required: false
          in: query
          description: Ids of the segments
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: All found assets
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetAssetOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Asset
    post:
      operationId: postAssets
      summary: Create company assets
      description: The endpoint is used to create company assets.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostAssetsInputDto'
      responses:
        '200':
          description: All created assets
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetAssetOutputDto'
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetAssetOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      tags:
        - Asset
  /v2/tests:
    get:
      operationId: getTests
      summary: Get company tests
      description: This endpoint returns the tests of the company.
      parameters:
        - name: limit
          required: false
          in: query
          description: Number of records to return in the response
          schema:
            minimum: 1
            maximum: 200
            default: 200
            type: number
        - name: sortBy
          required: false
          in: query
          description: Name of the field to sort by
          schema:
            type: array
            items:
              enum:
                - name
                - severity
                - category
                - category_text
                - sub_category
                - sub_category_text
                - criterion_text
                - open_findings_count
                - closed_findings_count
              type: string
        - name: sortDirection
          required: false
          in: query
          description: The direction of the field sort specified by sort_by
          schema:
            enum:
              - ASC
              - asc
              - '1'
              - DESC
              - desc
              - '-1'
            type: string
        - name: next_token
          required: false
          in: query
          description: >-
            Token received from a previous request to obtain the next chunk of
            data
          schema:
            type: string
        - name: name
          required: false
          in: query
          description: Tests will only contain specified name (all if none)
          schema:
            type: array
            items:
              type: string
        - name: severity
          required: false
          in: query
          description: Tests will only contain specified severity (all if none)
          schema:
            type: array
            items:
              enum:
                - info
                - low
                - medium
                - high
                - critical
              type: string
        - name: fields
          required: false
          in: query
          schema:
            enum:
              - name
              - severity
              - category
              - category_text
              - sub_category
              - sub_category_text
              - criterion_text
              - open_findings_count
              - closed_findings_count
            type: string
      responses:
        '200':
          description: Tests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTestsOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      tags:
        - Tests
  /v2/hooks/handshake:
    post:
      operationId: hookHandshakeV2
      summary: Handshake
      description: >-
        Before being able to register and receive events, a server should be
        registered and verified. A “Verification Handshake” will happen which
        will verify SSL certificate and send a POST with a body of `{ challenge:
        <hash> }` to the server given. The response to the POST message should
        contain the given challenge hash and status 200.
         The verification handshake process should only happen once and will be done during the onboarding of the API by Panorays.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostCallbackHandshakeBodyDto'
      responses:
        '200':
          description: url registered, secret generated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostHookOutputDto'
        '201':
          description: ''
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Handshake
  /v2/hooks/subscriptions:
    post:
      operationId: hookSubscribeV2
      summary: Subscribe
      description: >-
        To enable notifications for a certain event you will need to subscribe
        to it using this route.
      callbacks:
        x-webhooks:
          approvalChanged:
            post:
              description: One of your supplier's approval status has changed
              operationId: approvalChangedHook
              summary: Approval changed
              tags:
                - Approval Hook
              responses:
                '200':
                  description: >-
                    Return a 200 status to indicate that the data was received
                    successfully
              parameters:
                - name: X-Pano-Request-Time
                  description: The request time in ms, used to create the request signature
                  in: header
                  schema:
                    type: string
                    format: date-time
                - name: X-Pano-Signature
                  description: The request signature, use this to validate the request
                  in: header
                  schema:
                    type: string
              requestBody:
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/ApprovalChangedOutputDto'
          inquirySubmitted:
            post:
              summary: Inquiry submitted
              description: One of your suppliers has submitted an inquiry
              operationId: inquirySubmittedHook
              tags:
                - Inquiry Hook
              parameters:
                - name: X-Pano-Request-Time
                  description: The request time in ms, used to create the request signature
                  in: header
                  schema:
                    type: string
                    format: date-time
                - name: X-Pano-Signature
                  description: The request signature, use this to validate the request
                  in: header
                  schema:
                    type: string
              requestBody:
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/InquirySubmittedOutputDto'
              responses:
                '200':
                  description: >-
                    Return a 200 status to indicate that the data was received
                    successfully
          inquirySent:
            post:
              summary: Inquiry Sent
              description: An inquiry was sent to one of your suppliers
              operationId: inquirySentHook
              tags:
                - Inquiry Hook
              parameters:
                - name: X-Pano-Request-Time
                  description: The request time in ms, used to create the request signature
                  in: header
                  schema:
                    type: string
                    format: date-time
                - name: X-Pano-Signature
                  description: The request signature, use this to validate the request
                  in: header
                  schema:
                    type: string
              responses:
                '200':
                  description: >-
                    Return a 200 status to indicate that the data was received
                    successfully
              requestBody:
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/InquirySentOutputDto'
          riskChanged:
            post:
              summary: Risk updated
              description: One of your supplier's risk score changed
              operationId: riskChangedHook
              tags:
                - Risk Hook
              parameters:
                - name: X-Pano-Request-Time
                  description: The request time in ms, used to create the request signature
                  in: header
                  schema:
                    type: string
                    format: date-time
                - name: X-Pano-Signature
                  description: The request signature, use this to validate the request
                  in: header
                  schema:
                    type: string
              responses:
                '200':
                  description: >-
                    Return a 200 status to indicate that the data was received
                    successfully
              requestBody:
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/RiskChangedOutputDto'
          supplierAdded:
            post:
              summary: Supplier Added
              description: A new supplier was added
              operationId: supplierAddedHook
              tags:
                - Supplier Hook
              parameters:
                - name: X-Pano-Request-Time
                  description: The request time in ms, used to create the request signature
                  in: header
                  schema:
                    type: string
                    format: date-time
                - name: X-Pano-Signature
                  description: The request signature, use this to validate the request
                  in: header
                  schema:
                    type: string
              responses:
                '200':
                  description: >-
                    Return a 200 status to indicate that the data was received
                    successfully
              requestBody:
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/SupplierAddedOutputDto'
          articleNotified:
            post:
              summary: Article Notified
              description: A new cyber news article was notified
              operationId: articleNotifiedHook
              tags:
                - Article Hook
              parameters:
                - name: X-Pano-Request-Time
                  description: The request time in ms, used to create the request signature
                  in: header
                  schema:
                    type: string
                    format: date-time
                - name: X-Pano-Signature
                  description: The request signature, use this to validate the request
                  in: header
                  schema:
                    type: string
              responses:
                '200':
                  description: >-
                    Return a 200 status to indicate that the data was received
                    successfully
              requestBody:
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/ArticleNotifiedOutputDto'
          articleAdded:
            post:
              summary: Article Added
              description: A new cyber news article was added
              operationId: articleAddedHook
              tags:
                - Article Hook
              parameters:
                - name: X-Pano-Request-Time
                  description: The request time in ms, used to create the request signature
                  in: header
                  schema:
                    type: string
                    format: date-time
                - name: X-Pano-Signature
                  description: The request signature, use this to validate the request
                  in: header
                  schema:
                    type: string
              responses:
                '200':
                  description: >-
                    Return a 200 status to indicate that the data was received
                    successfully
              requestBody:
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/ArticleAddedOutputDto'
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscribeHooksBodyDto'
      responses:
        '200':
          description: Subscription complete
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostHookOutputDto'
        '201':
          description: ''
        '400':
          description: One or more of the given hooks are already subscribed to.
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Subscription
    delete:
      operationId: hookUnsubscribeV2
      summary: Unsubscribe
      description: >-
        To disable notifications for a certain event you will need to
        unsubscribe from it using this route.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscribeHooksBodyDto'
      responses:
        '200':
          description: Unsubscribed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostHookOutputDto'
        '400':
          description: One or more of the given hooks are not subscribed to.
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Subscription
  /v2/risk_insights/company:
    get:
      operationId: getCompanyRiskInsights
      summary: Get company risk insights
      description: >-
        This endpoint will return data and information about risk insights of
        the company.
      parameters:
        - name: limit
          required: false
          in: query
          description: Number of records to return in the response
          schema:
            minimum: 1
            maximum: 200
            default: 200
            type: number
        - name: sortBy
          required: false
          in: query
          description: Name of the field to sort by
          schema:
            type: array
            items:
              type: string
        - name: sortDirection
          required: false
          in: query
          description: The direction of the field sort specified by sort_by
          schema:
            enum:
              - ASC
              - asc
              - '1'
              - DESC
              - desc
              - '-1'
            type: string
        - name: next_token
          required: false
          in: query
          description: >-
            Token received from a previous request to obtain the next chunk of
            data
          schema:
            type: string
        - name: fields
          required: false
          in: query
          description: Fields to include in response
          schema:
            enum:
              - impact_on_my_company
              - impact_on_direct_suppliers
              - date_added
              - last_update
              - insight_status
              - event_id
              - event_type
              - event_date
              - event_title
              - event_links
            type: string
      responses:
        '200':
          description: All found risk insights are returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetRiskInsightsOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      tags:
        - RiskInsights
      security:
        - bearer: []
  /v2/licenses:
    get:
      operationId: getCompanyLicenses
      summary: Get quantity of purchased licenses and the current usage
      description: >-
        This endpoint will return data and information about licenses of the
        company.
      parameters: []
      responses:
        '200':
          description: Array of product names with the corresponding quantity and usage.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetLicensesOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Not Found.
        '429':
          description: Too Many Requests
      tags:
        - Licenses
      security:
        - bearer: []
  /v2/templates:
    get:
      operationId: TemplatesController_getTemplates
      summary: Get templates
      description: Get all company templates
      parameters:
        - name: limit
          required: false
          in: query
          description: Number of records to return in the response
          schema:
            minimum: 1
            maximum: 20
            default: 20
            type: number
        - name: sortBy
          required: false
          in: query
          description: Name of the field to sort by
          schema:
            enum:
              - status
              - weight
              - created_at
              - updated_at
            type: string
        - name: sortDirection
          required: false
          in: query
          description: The direction of the field sort specified by sort_by
          schema:
            enum:
              - ASC
              - asc
              - '1'
              - DESC
              - desc
              - '-1'
            type: string
        - name: next_token
          required: false
          in: query
          description: >-
            Token received from a previous request to obtain the next chunk of
            data
          schema:
            type: string
        - name: fields
          required: false
          in: query
          description: Fields to include in response
          schema:
            enum:
              - template_display_name
              - template_name
              - description
              - status
              - weight
              - created_at
              - updated_at
              - created_by
              - updated_by
            type: string
      responses:
        '200':
          description: All templates are returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetTemplatesOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Templates
  /v2/posture:
    get:
      operationId: getPosture
      summary: Get company posture
      description: >-
        This endpoint will return data and information about the posture in the
        portfolio.
      parameters:
        - name: fields
          required: false
          in: query
          description: Posture will only contain specified fields (all if none)
          schema:
            type: array
            items:
              enum:
                - grade
                - categories
                - id
                - name
              type: string
        - name: segmentId
          required: false
          in: query
          description: segmentId of the posture
          schema:
            type: string
      responses:
        '200':
          description: Posture.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPostureOutputDto'
        '204':
          description: Posture not found
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      security:
        - bearer: []
      tags:
        - Posture
  /v2/activity:
    get:
      operationId: getCompanyActivity
      summary: Get company activity items
      description: The endpoint is used to pull Activity Center events (audit).
      parameters:
        - name: limit
          required: false
          in: query
          description: Number of records to return in the response
          schema:
            minimum: 1
            maximum: 200
            default: 200
            type: number
        - name: sortBy
          required: false
          in: query
          description: Name of the field to sort by
          schema:
            enum:
              - timestamp
              - event_type
              - username
            type: string
        - name: sortDirection
          required: false
          in: query
          description: The direction of the field sort specified by sort_by
          schema:
            enum:
              - ASC
              - asc
              - '1'
              - DESC
              - desc
              - '-1'
            type: string
        - name: next_token
          required: false
          in: query
          description: >-
            Token received from a previous request to obtain the next chunk of
            data
          schema:
            type: string
        - name: fields
          required: false
          in: query
          description: Fields to include in response
          schema:
            enum:
              - event_id
              - event_type
              - description
              - timestamp
              - username
              - event_category
              - company
            type: string
        - name: supplier_ids
          required: false
          in: query
          description: Search by supplier ids or company id
          schema:
            type: array
            items:
              type: string
        - name: event_categories
          required: false
          in: query
          description: Search by Event Categorys
          schema:
            type: array
            items:
              type: string
        - name: event_types
          required: false
          in: query
          description: Search by Event Types
          schema:
            type: array
            items:
              type: string
        - name: date_range_from
          required: false
          in: query
          description: >-
            A starting date for range filter in the format YYYY-MM-DD (define
            also 'date_range_to')
          schema:
            type: string
        - name: date_range_to
          required: false
          in: query
          description: >-
            An ending date for range filter in the format YYYY-MM-DD (define
            also 'date_range_from')
          schema:
            type: string
        - name: date_exact
          required: false
          in: query
          description: A specific date to filter by in the format YYYY-MM-DD
          schema:
            type: string
        - name: account_ids
          required: false
          in: query
          description: Search by Account Ids
          schema:
            type: array
            items:
              type: string
        - name: segment_ids
          required: false
          in: query
          description: Search by Segment Ids
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: All found activity items are returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetActivityCenterOutputDto'
        '400':
          description: Invalid input
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Not Found.
        '429':
          description: Too Many Requests
      tags:
        - Activity Center
      security:
        - bearer: []
  /v2/factors/custom:
    get:
      operationId: getCustomFactors
      summary: Get custom factors
      description: This endpoint will return data about custom factors of the company.
      parameters: []
      responses:
        '200':
          description: Array of custom factors
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetCustomFactorsOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Not Found.
      tags:
        - Factors
      security:
        - bearer: []
  /v2/cyber-news-articles:
    get:
      operationId: getCompanyCyberNewsArticles
      summary: Get company Cyber-News articles
      description: >-
        This endpoint will return data and information about Cyber-News articles
        of the company.
      parameters:
        - name: limit
          required: false
          in: query
          description: Number of records to return in the response
          schema:
            minimum: 1
            maximum: 200
            default: 200
            type: number
        - name: sortBy
          required: false
          in: query
          description: Name of the field to sort by
          schema:
            type: array
            items:
              type: string
        - name: sortDirection
          required: false
          in: query
          description: The direction of the field sort specified by sort_by
          schema:
            enum:
              - ASC
              - asc
              - '1'
              - DESC
              - desc
              - '-1'
            type: string
        - name: next_token
          required: false
          in: query
          description: >-
            Token received from a previous request to obtain the next chunk of
            data
          schema:
            type: string
        - name: date_range_from
          required: false
          in: query
          description: >-
            A starting date for range filter in the format YYYY-MM-DD (define
            also 'date_range_to')
          schema:
            type: string
        - name: date_range_to
          required: false
          in: query
          description: >-
            An ending date for range filter in the format YYYY-MM-DD (define
            also 'date_range_from')
          schema:
            type: string
        - name: period
          required: false
          in: query
          description: >-
            Specifies the time range for filtering articles. Defaults to the
            last 24 hours if not provided.
          schema:
            enum:
              - LAST_DAY
              - LAST_WEEK
              - LAST_MONTH
              - LAST_YEAR
              - ALL
            type: string
      responses:
        '200':
          description: All found Cyber-News articles are returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetCyberNewsArticlesOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      tags:
        - CyberNewsArticles
      security:
        - bearer: []
  /v2/cyber-news-articles/suppliers:
    get:
      operationId: getSuppliersCyberNewsArticles
      summary: Get company Cyber-News articles by suppliers IDs
      description: >-
        This endpoint will return data and information about Cyber-News articles
        of the company by suppliers IDs.
      parameters:
        - name: limit
          required: false
          in: query
          description: Number of records to return in the response
          schema:
            minimum: 1
            maximum: 200
            default: 200
            type: number
        - name: sortBy
          required: false
          in: query
          description: Name of the field to sort by
          schema:
            type: array
            items:
              type: string
        - name: sortDirection
          required: false
          in: query
          description: The direction of the field sort specified by sort_by
          schema:
            enum:
              - ASC
              - asc
              - '1'
              - DESC
              - desc
              - '-1'
            type: string
        - name: next_token
          required: false
          in: query
          description: >-
            Token received from a previous request to obtain the next chunk of
            data
          schema:
            type: string
        - name: date_range_from
          required: false
          in: query
          description: >-
            A starting date for range filter in the format YYYY-MM-DD (define
            also 'date_range_to')
          schema:
            type: string
        - name: date_range_to
          required: false
          in: query
          description: >-
            An ending date for range filter in the format YYYY-MM-DD (define
            also 'date_range_from')
          schema:
            type: string
        - name: period
          required: false
          in: query
          description: >-
            Specifies the time range for filtering articles. Defaults to the
            last 24 hours if not provided.
          schema:
            enum:
              - LAST_DAY
              - LAST_WEEK
              - LAST_MONTH
              - LAST_YEAR
              - ALL
            type: string
        - name: supplier_ids
          required: false
          in: query
          description: Specifies the required suppliers IDs for Cyber News articles.
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: All found Cyber-News articles are returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetCyberNewsArticlesOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      tags:
        - CyberNewsArticles
      security:
        - bearer: []
  /v2/dark-web-mentions:
    get:
      operationId: getCompanyDarkWebMentions
      summary: Get company Dark Web Mentions
      description: >-
        This endpoint will return data and information about Dark Web Mentions
        of the company.
      parameters:
        - name: limit
          required: false
          in: query
          description: Number of records to return in the response
          schema:
            minimum: 1
            maximum: 200
            default: 200
            type: number
        - name: sortBy
          required: false
          in: query
          description: Name of the field to sort by
          schema:
            type: array
            items:
              type: string
        - name: sortDirection
          required: false
          in: query
          description: The direction of the field sort specified by sort_by
          schema:
            enum:
              - ASC
              - asc
              - '1'
              - DESC
              - desc
              - '-1'
            type: string
        - name: next_token
          required: false
          in: query
          description: >-
            Token received from a previous request to obtain the next chunk of
            data
          schema:
            type: string
        - name: date_range_from
          required: false
          in: query
          description: >-
            A starting date for range filter in the format YYYY-MM-DD (define
            also 'date_range_to')
          schema:
            type: string
        - name: date_range_to
          required: false
          in: query
          description: >-
            An ending date for range filter in the format YYYY-MM-DD (define
            also 'date_range_from')
          schema:
            type: string
        - name: period
          required: false
          in: query
          description: Specifies the time range for filtering articles.
          schema:
            enum:
              - LAST_DAY
              - LAST_WEEK
              - LAST_MONTH
              - ALL
            type: string
        - name: is_alert
          required: false
          in: query
          description: Indicates the filter for alert field of Dark Web Mentions.
          schema:
            type: boolean
      responses:
        '200':
          description: All found Dark Web Mentions are returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetDarkWebMentionsOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      tags:
        - DarkWebMentions
      security:
        - bearer: []
  /v2/dark-web-mentions/suppliers:
    get:
      operationId: getSuppliersDarkWebMentions
      summary: Get suppliers Dark Web Mentions
      description: >-
        This endpoint will return data and information about Dark Web Mentions
        of the company suppliers.
      parameters:
        - name: limit
          required: false
          in: query
          description: Number of records to return in the response
          schema:
            minimum: 1
            maximum: 200
            default: 200
            type: number
        - name: sortBy
          required: false
          in: query
          description: Name of the field to sort by
          schema:
            type: array
            items:
              type: string
        - name: sortDirection
          required: false
          in: query
          description: The direction of the field sort specified by sort_by
          schema:
            enum:
              - ASC
              - asc
              - '1'
              - DESC
              - desc
              - '-1'
            type: string
        - name: next_token
          required: false
          in: query
          description: >-
            Token received from a previous request to obtain the next chunk of
            data
          schema:
            type: string
        - name: date_range_from
          required: false
          in: query
          description: >-
            A starting date for range filter in the format YYYY-MM-DD (define
            also 'date_range_to')
          schema:
            type: string
        - name: date_range_to
          required: false
          in: query
          description: >-
            An ending date for range filter in the format YYYY-MM-DD (define
            also 'date_range_from')
          schema:
            type: string
        - name: period
          required: false
          in: query
          description: Specifies the time range for filtering articles.
          schema:
            enum:
              - LAST_DAY
              - LAST_WEEK
              - LAST_MONTH
              - ALL
            type: string
        - name: is_alert
          required: false
          in: query
          description: Indicates the filter for alert field of Dark Web Mentions.
          schema:
            type: boolean
        - name: supplier_ids
          required: false
          in: query
          description: Specifies the required suppliers IDs for Dark Web mentions.
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: All found Dark Web Mentions are returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetDarkWebMentionsOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too Many Requests
      tags:
        - DarkWebMentions
      security:
        - bearer: []
  /v2/tags:
    get:
      operationId: getCompanyTags
      summary: Get all existing company tags
      description: This endpoint will return data of the company tags.
      parameters: []
      responses:
        '200':
          description: Array of tags object with id, name, creator and supplier count.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTagOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Not Found.
        '429':
          description: Too Many Requests
      tags:
        - Tags
      security:
        - bearer: []
    post:
      operationId: createCompanyTag
      summary: Create a company tag
      description: This endpoint will create a new tag.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTagDto'
      responses:
        '200':
          description: An object of the tag.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateTagOutputDto'
        '201':
          description: ''
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Not Found.
        '429':
          description: Too Many Requests
      tags:
        - Tags
      security:
        - bearer: []
  /v2/tags/{id}:
    put:
      operationId: updateCompanyTag
      summary: Update a company tag
      description: This endpoint will update the name of a tag.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTagDto'
      responses:
        '200':
          description: An object of the tag.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTagOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Not Found.
        '429':
          description: Too Many Requests
      tags:
        - Tags
      security:
        - bearer: []
    delete:
      operationId: deleteCompanyTag
      summary: Delete a company tag
      description: This endpoint will delete a tag.
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: >-
            An object with field message with deletion status - Tag deleted
            successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTagOutputDto'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Not Found.
        '429':
          description: Too Many Requests
      tags:
        - Tags
      security:
        - bearer: []
info:
  title: papi
  description: Panorays Public API
  version: '2'
  contact:
    name: Support
    url: ''
    email: support@panorays.com
  x-logo:
    url: https://storage.googleapis.com/k8s-panorays-storage/panorays_blue_logo.svg
    altText: Panorays Logo
tags:
  - name: Overview
    description: >-
      The following document will introduce and document the API endpoints
      exposed to external clients. **All endpoints will work using REST API and
      JSON format.** The documentation will include 2 types of requests and
      available endpoints - by demand API and event hooks.
  - name: API Access
    description: >-
      Panorays API endpoint is under the domain of https://api.panoraysapp.com 
      All requests should be sent there with the appropriate route and
      parameters.

      The API rate limit is 150 requests per minute. Exceeding this limit will
      result in a 429 HTTP error and a 1-hour block.
       ### Requirements 
      All requests to the different endpoints should include an Authorization
      Token.
       The Authorization Token is generated by Panorays and sent during onboarding. It should be kept a secret and not shared. The Authorization Token should be sent as part of the Authorization header in the format of Bearer *&lt;token&gt;*.
  - name: Routes Pagination
    description: >
      Panorays API paginated routes are using cursor pagination, this means the
      response containing a token that will get you the next page.

      This way you can send several requests in a loop phrase to get all
      relevant data.
       ```js
       let res = await axios.get('https://api.panoraysapp.com/v2/suppliers?limit=100');
       // Process first page data 
       // If there is a next page you will get has_next = true, next = <next_token>
       while (res.has_next) {
          res = await axios.get(`https://api.panoraysapp.com/v2/suppliers?limit=100&next_token=${res.next}`);
         // Process next page data
       } 
      ``` 

      *Offset pagination is not supported in Panorays API so sending skip as
      parameter won't work.*
       ### We encourage you to use a low *limit* param such as limit=100 to reduce the change of getting an error. ###
  - name: Supplier
    description: Use these routes to access and update your suppliers.
  - name: Webhooks Intro
    description: >-
      The hook api provides a simple way of registering to events that happen
      with your suppliers
  - name: Getting Started
    description: >-
      The following steps will walk you through the process of registering and
      reacting to webhooks.


      1. ### Register an API token  

      If you don’t already have an API token, you can generate one through
      Panorays platform or contact Panorays Support at
      [support@panorays.com](mailto:support@panorays.com).


      2. ### Register your app  

      Before you can start receiving events, register your application with
      Panorays using the [Handshake](#operation/hookHandshakeV2) API call.


      3. ### Subscribe to relevant events  

      You will only receive event calls for events you subscribe to using the
      [Subscribe](#operation/hookSubscribeV2) API call.  

      *Note:* You can unsubscribe at any time using the
      [Unsubscribe](#operation/hookUnsubscribeV2) API call.


      4. ### Start receiving events  

      You're done! From now on, you will receive notifications for every event
      you subscribed to.


      To learn how to secure your app and ensure you handle events **only** from
      Panorays, read about [Verifying requests](#tag/Verify-Requests).
  - name: Verify Requests
    description: >-
      Panorays signs every request with a secret that's unique to your service
      account, using this secret you can verify that the incoming request
      arrived from Panorays servers. 


      ## How do I use the secret 

      On every request Panorays sends we provide `X-Panorays-Signature` header,
      this header contains a signature created from combining the event body,
      the request time and your secret using an HMAC SHA256 keyed hash. 

      By recreating this code on your side and comparing the values you can
      verify that the event came from Panorays. 


      ## Step by step guide for verifying requests 

      * Take your URL secret (The one you received when calling the handshake
      route) 
       ```js 
      secret =
      'kqouK3lV+xOWzZ3SOvBv5lhbVhjolJJQs51hM8jG0xA60WqAz0wz/fMDqf/dd8rP' 

      ``` 

      * Extract the request time from the `X-Pano-Request-Time` header 

      ```js 
        timestamp = request.headers['X-Pano-Request-Time'] 
      ``` 

      * Concatenate the request time with the request body using a colon `:` as
      a delimiter 

      * From the resulting string create an hmac using your secret and a sha256
      algorithm and convert the result to a base64 string 

      ```js 
        signature = createHmac('sha256', secret) 
        .update(`${timestamp}:${JSON.stringify(request.body)}`) 
        .digest('base64'); 
      ``` 

      * Compare your hmac string to the signature inside `X-Panorays-Signature`
      header. 

      ```js 
        if (signature !== request.headers['X-Panorays-Signature']) { 
        // stop everything and hide. 
        } 
      ``` 
        * If the values are equal, you now verified that the request came from Panorays.
  - name: Tags
    description: >-
      Tag actions (Create, Delete, Get, Update) apply to <b>company tags</b>
      only. Tags can’t be updated via the supplier endpoint, as they may link to
      multiple suppliers. When a company tag is updated/deleted, all associated
      suppliers are automatically updated — no separate supplier update is
      needed.
servers:
  - url: https://api.panoraysapp.com
components:
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
  schemas:
    BIQuestionOutput:
      type: object
      properties:
        type:
          enum:
            - text
            - dropDown
            - multiSelection
            - date
            - file
          type: string
        text:
          type: string
        mandatory:
          type: boolean
        possible_answers:
          oneOf:
            - type: string
            - type: array
              items:
                type: number
        question_id:
          type: string
      required:
        - type
        - text
        - possible_answers
        - question_id
    GetBusinessInformationOutputDto:
      type: object
      properties:
        questions:
          type: array
          items:
            $ref: '#/components/schemas/BIQuestionOutput'
      required:
        - questions
    Location:
      type: object
      properties:
        city:
          type: string
        state_code:
          type: string
        country_code:
          type: string
      required:
        - city
        - state_code
        - country_code
    SecurityStatement:
      type: object
      properties:
        type:
          type: string
        name:
          type: string
        isActive:
          type: boolean
        link:
          type: string
        bug_bounty_url:
          type: string
        policy_url:
          type: string
      required:
        - type
        - name
        - isActive
        - link
        - bug_bounty_url
        - policy_url
    GetBusinessSnapshotOutputDto:
      type: object
      properties:
        location:
          $ref: '#/components/schemas/Location'
        security_statements:
          type: array
          items:
            $ref: '#/components/schemas/SecurityStatement'
        company_name:
          type: string
        industry:
          type: string
        company_size:
          type: string
        company_type:
          type: string
        founded_year:
          type: number
        capital:
          type: string
        linkedin_url:
          type: string
        facebook_url:
          type: string
        twitter_url:
          type: string
      required:
        - location
        - security_statements
        - company_name
        - industry
        - company_size
        - company_type
        - founded_year
        - capital
        - linkedin_url
        - facebook_url
        - twitter_url
    UploadedFileDto:
      type: object
      properties:
        _id:
          type: string
          description: The unique identifier of the uploaded file
          example: 507f1f77bcf86cd799439011
        filename:
          type: string
          description: The filename of the uploaded file
          example: BI_Document_2024.pdf
      required:
        - _id
        - filename
    GetFindingsOutputDto:
      type: object
      properties:
        status:
          enum:
            - OPEN
            - DONE
          type: string
        severity:
          enum:
            - LOW
            - MEDIUM
            - HIGH
            - CRITICAL
          type: string
        id:
          type: string
        metadata:
          type: object
        cves:
          type: array
          items:
            type: string
        asset_name:
          type: string
        category:
          type: string
        sub_category:
          type: string
        test_text:
          type: string
        finding_text:
          type: string
        description:
          type: string
        insert_ts:
          type: string
        update_ts:
          type: string
        test_name:
          type: string
        segments:
          type: array
          items:
            type: string
      required:
        - status
        - severity
        - id
        - metadata
        - cves
        - asset_name
        - category
        - sub_category
        - test_text
        - finding_text
        - description
        - insert_ts
        - update_ts
        - test_name
        - segments
    Supplier:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
      required:
        - id
        - name
    GetPortfoliosOutputDto:
      type: object
      properties:
        suppliers:
          type: array
          items:
            $ref: '#/components/schemas/Supplier'
        name:
          type: string
      required:
        - suppliers
        - name
    GetInquiriesInfoOutputDto:
      type: object
      properties:
        questionnaire_id:
          type: string
          description: Id of the questionnaire
        template_name:
          type: string
          description: Name of the template
        completion_rate:
          type: number
          minimum: 0
          maximum: 1
          description: Float from 0 to 1
        status:
          enum:
            - SENT
            - IN_PROGRESS
            - DONE
            - CANCELED
            - EXPIRED
            - IN_REVIEW
            - ARCHIVED
          type: string
        ttl:
          type: string
          nullable: true
        questionnaire_type:
          enum:
            - external
            - internal
            - both
          type: string
        status_update_date:
          type: string
        created_by:
          type: string
        score:
          type: number
          nullable: true
        weight:
          type: number
        questionnaire_submit_date:
          type: string
          nullable: true
        questionnaire_sent_date:
          type: string
      required:
        - questionnaire_id
        - template_name
        - completion_rate
        - status
        - ttl
        - questionnaire_type
        - status_update_date
        - created_by
        - score
        - weight
        - questionnaire_submit_date
        - questionnaire_sent_date
    Question:
      type: object
      properties:
        type:
          enum:
            - FreeText
            - MultiChoice
            - SingleChoice
            - File
            - DateSelection
          type: string
        text:
          type: string
        category:
          type: string
        possible_answers:
          type: array
          items:
            type: string
        answer:
          type: string
        out_of_policy:
          type: boolean
        additional_information:
          type: string
      required:
        - type
        - text
        - category
        - possible_answers
        - answer
        - out_of_policy
        - additional_information
    GetInquiriesInfoWithAnswersOutputDto:
      type: object
      properties:
        status:
          enum:
            - SENT
            - IN_PROGRESS
            - DONE
            - CANCELED
            - EXPIRED
            - IN_REVIEW
            - ARCHIVED
          type: string
        score:
          type: number
          nullable: true
        ttl:
          type: string
          nullable: true
        questions:
          type: array
          items:
            $ref: '#/components/schemas/Question'
        questionnaire_type:
          enum:
            - external
            - internal
            - both
          type: string
        id:
          type: string
        template_name:
          type: string
      required:
        - status
        - score
        - ttl
        - questions
        - questionnaire_type
        - id
        - template_name
    PostInquiryBodyDtoV2:
      type: object
      properties:
        pocs:
          type: array
          items:
            type: string
            format: email
            minimum: 1
        template_id:
          type: string
          description: >-
            name of the template to use for the questionnaire. If not provided
            the latest template will be sent. For information regarding which
            template is the latest one, please contact Panorays Support.
        note:
          type: string
          description: >-
            note from the evaluator to the supplier, that will be sent with the
            questionnaire
        ttl:
          format: date-time
          type: string
          description: ttl is the due date specified by the the evaluator
        questionnaire_type:
          enum:
            - external
            - internal
            - both
          type: string
          description: Questionnaire type - internal/external
          default: external
      required:
        - pocs
    PostInquiryOutputDto:
      type: object
      properties:
        ttl:
          type: string
          nullable: true
        id:
          type: object
        insert_ts:
          format: date-time
          type: string
        pocs:
          type: array
          items:
            type: object
        status:
          type: string
        template_id:
          type: string
        template_name:
          type: string
      required:
        - ttl
        - id
        - insert_ts
        - pocs
        - status
        - template_id
        - template_name
    PutInquiryBodyDtoV2:
      type: object
      properties:
        note:
          type: string
          description: >-
            note from the evaluator to the supplier, that will be sent with the
            questionnaire
        ttl:
          type: object
          default: '2026-02-11T08:41:54.837Z'
          description: >-
            ttl is the due date specified by the the evaluator. defaults to 30
            days from now
        questionnaire_type:
          type: string
          default: external
          enum:
            - internal
            - external
          description: Type of the questionnaire
    PutInquiryOutputDto:
      type: object
      properties:
        questionnaire_id:
          type: object
        status:
          type: string
        ttl:
          format: date-time
          type: string
        template_name:
          type: string
        weight:
          type: number
        created_by:
          type: string
        status_update_date:
          format: date-time
          type: string
        completion_rate:
          type: number
        questionnaire_type:
          type: string
      required:
        - questionnaire_id
        - status
        - ttl
        - template_name
        - weight
        - created_by
        - status_update_date
        - completion_rate
        - questionnaire_type
    PutInquiryAnswersBodyDto:
      type: object
      properties:
        answers:
          type: object
          description: Map of question IDs to their answers
          additionalProperties:
            type: object
            properties:
              answer:
                oneOf:
                  - type: string
                  - type: array
                    items:
                      type: string
              comment:
                type: string
        isSubmit:
          type: object
          default: false
          description: >-
            Whether to submit the questionnaire after saving answers. If true,
            the questionnaire will be marked as complete.
    GetSupplierFilesOutputDto:
      type: object
      properties:
        origin:
          enum:
            - businessInformation
            - connection
            - inquiry
          type: string
        type:
          type: string
          enum:
            - jpg
            - jpeg
            - png
            - gif
            - bmp
            - accdb
            - accde
            - accdr
            - accdt
            - aclscript
            - csv
            - dap
            - dat
            - dbf
            - dbp
            - del
            - dfe
            - doc
            - docb
            - docm
            - docx
            - dot
            - dotm
            - dotx
            - dsn
            - eap
            - inx
            - json
            - mdb
            - pdf
            - pot
            - potm
            - potx
            - ppam
            - pps
            - ppsx
            - ppt
            - pptm
            - pptx
            - prf
            - ps1
            - rec
            - rpt
            - sldm
            - sldx
            - txt
            - vbs
            - xbrl
            - xla
            - xlam
            - xll
            - xlm
            - xls
            - xlsb
            - xlsm
            - xlsx
            - xlt
            - xltm
            - xltx
            - xlw
            - xml
            - zip
            - acl
            - aclapp
            - aclx
            - fmt
            - layout
            - wsp
        filename:
          type: string
        id:
          type: string
        added_by:
          type: string
      required:
        - origin
        - type
        - filename
        - id
        - added_by
    StatusReason:
      type: object
      properties:
        reason:
          type: string
        file_id:
          type: string
        file_name:
          type: string
        added_by:
          type: string
        created_at:
          type: string
        updated_at:
          type: string
      required:
        - reason
        - file_id
        - file_name
        - added_by
        - created_at
        - updated_at
    AccountInfo:
      type: object
      properties:
        full_name:
          type: string
        account_id:
          type: string
        email:
          type: string
      required:
        - full_name
        - email
    CompanyInfo:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
      required:
        - id
        - name
    QuestionInfo:
      type: object
      properties:
        type:
          enum:
            - FreeText
            - MultiChoice
            - SingleChoice
            - File
            - DateSelection
          type: string
        text:
          type: string
        category:
          type: string
        question_id:
          type: string
        template_id:
          type: string
        template_name:
          type: string
      required:
        - type
        - text
        - category
        - question_id
        - template_id
        - template_name
    CriterionInfo:
      type: object
      properties:
        severity:
          enum:
            - INFO
            - LOW
            - MEDIUM
            - HIGH
            - CRITICAL
          type: string
        criterion_id:
          type: string
        name:
          type: string
        company_id:
          type: string
        segment_id:
          type: string
          nullable: true
        rating:
          type: number
        reduced_points:
          type: number
        total_points:
          type: number
        assets_tested:
          type: number
        subcategories:
          type: array
          items:
            type: string
        weight:
          type: number
        weight_with_findings:
          type: number
        findings_count:
          type: number
        points_gain:
          type: number
        points_diff:
          type: number
        created_at:
          type: string
        updated_at:
          type: string
      required:
        - severity
        - criterion_id
        - name
        - company_id
        - assets_tested
        - created_at
        - updated_at
    FindingInfo:
      type: object
      properties:
        status:
          enum:
            - OPEN
            - CLAIM_DISPUTE
            - CLAIM_DONE
            - DISPUTED
            - DONE
            - REOPENED
          type: string
        _id:
          type: string
      required:
        - status
        - _id
    GetTaskByIdOutputDto:
      type: object
      properties:
        status_reason:
          $ref: '#/components/schemas/StatusReason'
        account:
          $ref: '#/components/schemas/AccountInfo'
        company:
          $ref: '#/components/schemas/CompanyInfo'
        question:
          $ref: '#/components/schemas/QuestionInfo'
        criterion:
          $ref: '#/components/schemas/CriterionInfo'
        findings:
          type: array
          items:
            $ref: '#/components/schemas/FindingInfo'
        id:
          type: string
        company_id:
          type: string
        supplier_id:
          type: string
        type:
          type: string
        issue_id:
          type: string
        created_by:
          type: string
        start_date:
          type: string
        end_date:
          type: string
        due_date:
          type: string
        status:
          type: string
        description:
          type: string
        priority:
          type: string
        pocs:
          type: array
          items:
            type: string
        title:
          type: string
        created_at:
          type: string
        updated_at:
          type: string
        inquiry_id:
          type: string
        question_id:
          type: string
        criterion_id:
          type: string
      required:
        - id
        - company_id
        - supplier_id
        - type
        - issue_id
        - created_by
        - start_date
        - end_date
        - due_date
        - status
        - description
        - priority
        - pocs
        - title
        - created_at
        - updated_at
        - inquiry_id
        - question_id
    GetSupplierRemediationTasksOutputDto:
      type: object
      properties:
        status:
          enum:
            - TO_DO
            - IN_PROGRESS
            - DECLINE
            - CLAIM_AS_DONE
            - ACCEPT_RISK
            - DONE
          type: string
        status_reason:
          $ref: '#/components/schemas/StatusReason'
        account:
          $ref: '#/components/schemas/AccountInfo'
        company:
          $ref: '#/components/schemas/CompanyInfo'
        question:
          $ref: '#/components/schemas/QuestionInfo'
        criterion:
          $ref: '#/components/schemas/CriterionInfo'
        id:
          type: string
        company_id:
          type: string
        supplier_id:
          type: string
        type:
          type: string
        issue_id:
          type: string
        created_by:
          type: string
        start_date:
          type: string
        end_date:
          type: string
        due_date:
          type: string
        description:
          type: string
        priority:
          type: string
        pocs:
          type: array
          items:
            type: string
        title:
          type: string
        created_at:
          type: string
        updated_at:
          type: string
        inquiry_id:
          type: string
        question_id:
          type: string
        criterion_id:
          type: string
      required:
        - status
        - id
        - company_id
        - supplier_id
        - type
        - issue_id
        - created_by
        - start_date
        - end_date
        - due_date
        - description
        - priority
        - pocs
        - title
        - created_at
        - updated_at
        - inquiry_id
        - question_id
    PocDto:
      type: object
      properties:
        email:
          type: string
          format: email
        name:
          type: string
        language:
          type: string
          enum:
            - aa
            - ab
            - ae
            - af
            - ak
            - am
            - an
            - ar
            - as
            - av
            - ay
            - az
            - ba
            - be
            - bg
            - bh
            - bi
            - bm
            - bn
            - bo
            - br
            - bs
            - ca
            - ce
            - ch
            - co
            - cr
            - cs
            - cu
            - cv
            - cy
            - da
            - de
            - dv
            - dz
            - ee
            - el
            - en
            - eo
            - es
            - et
            - eu
            - fa
            - ff
            - fi
            - fj
            - fo
            - fr
            - fy
            - ga
            - gd
            - gl
            - gn
            - gu
            - gv
            - ha
            - he
            - hi
            - ho
            - hr
            - ht
            - hu
            - hy
            - hz
            - ia
            - id
            - ie
            - ig
            - ii
            - ik
            - io
            - is
            - it
            - iu
            - ja
            - jv
            - ka
            - kg
            - ki
            - kj
            - kk
            - kl
            - km
            - kn
            - ko
            - kr
            - ks
            - ku
            - kv
            - kw
            - ky
            - la
            - lb
            - lg
            - li
            - ln
            - lo
            - lt
            - lu
            - lv
            - mg
            - mh
            - mi
            - mk
            - ml
            - mn
            - mr
            - ms
            - mt
            - my
            - na
            - nb
            - nd
            - ne
            - ng
            - nl
            - nn
            - 'no'
            - nr
            - nv
            - ny
            - oc
            - oj
            - om
            - or
            - os
            - pa
            - pi
            - pl
            - ps
            - pt
            - qu
            - rm
            - rn
            - ro
            - ru
            - rw
            - sa
            - sc
            - sd
            - se
            - sg
            - si
            - sk
            - sl
            - sm
            - sn
            - so
            - sq
            - sr
            - ss
            - st
            - su
            - sv
            - sw
            - ta
            - te
            - tg
            - th
            - ti
            - tk
            - tl
            - tn
            - to
            - tr
            - ts
            - tt
            - tw
            - ty
            - ug
            - uk
            - ur
            - uz
            - ve
            - vi
            - vo
            - wa
            - wo
            - xh
            - yi
            - yo
            - za
            - zh
            - zu
        position:
          type: string
        phone:
          type: string
      required:
        - email
    BusinessInformationInput:
      type: object
      properties:
        answer:
          anyOf:
            - type: string
              format: ISO date-time (RFC3339)
              description: 'For questions of type: ''date'''
            - type: string
              description: 'For questions of type: ''text'', ''dropDown'''
            - type: integer
              description: 'For questions of type: ''text'', ''dropDown'''
            - type: array
              items:
                anyOf:
                  - type: string
                    description: 'For questions of type: ''multiSelection'''
                  - type: integer
                    description: 'For questions of type: ''multiSelection'''
        question_id:
          type: string
    PostSupplierBodyDto:
      type: object
      properties:
        pocs:
          type: array
          items:
            $ref: '#/components/schemas/PocDto'
        business_impact:
          type: number
          minimum: 1
          maximum: 5
        business_information:
          type: array
          items:
            $ref: '#/components/schemas/BusinessInformationInput'
        evaluation_type:
          enum:
            - Continuous 360 Evaluation
            - Continuous Posture Evaluation
            - Bi-Annual 360 Evaluation
            - Bi-Annual Posture Evaluation
            - Smart Questionnaires
            - Inventory
            - Inventory Plus
          type: string
        portfolios:
          type: array
          items:
            type: string
        questionnaire_contacts:
          type: array
          items:
            type: string
        questionnaire_type:
          enum:
            - external
            - internal
            - both
          type: string
        name:
          type: string
        private:
          type: boolean
        asset:
          type: string
        questionnaire_template_name:
          type: string
        relationships:
          type: array
          items:
            type: string
        tags:
          type: array
          items:
            type: string
      required:
        - evaluation_type
        - name
        - asset
    PostSupplierOutputDto:
      type: object
      properties:
        id:
          type: string
      required:
        - id
    BusinessInformation:
      type: object
      properties:
        type:
          type: string
          enum:
            - text
            - date
            - dropDown
            - multiSelection
            - file
      required:
        - type
    Contact:
      type: object
      properties: {}
    InquiryInfo:
      type: object
      properties:
        questionnaire_id:
          type: string
        questionnaire_score:
          type: number
          nullable: true
        questionnaire_sent_date:
          type: string
        questionnaire_submit_date:
          type: string
          nullable: true
        questionnaire_type:
          type: string
          nullable: true
      required:
        - questionnaire_id
        - questionnaire_score
        - questionnaire_sent_date
        - questionnaire_submit_date
        - questionnaire_type
    Approval:
      type: object
      properties:
        status:
          type: string
          enum:
            - PENDING
            - APPROVED
            - REJECTED
            - CONTINGENT
            - RE_EVALUATION
            - ARCHIVED
        by:
          type: string
        update_ts:
          type: string
        reason:
          type: string
      required:
        - status
        - by
        - update_ts
    GetSupplierOutputDto:
      type: object
      properties:
        business_information:
          type: array
          items:
            $ref: '#/components/schemas/BusinessInformation'
        contacts:
          type: array
          items:
            $ref: '#/components/schemas/Contact'
        questionnaires:
          type: array
          items:
            $ref: '#/components/schemas/InquiryInfo'
        evaluation_type:
          enum:
            - Continuous 360 Evaluation
            - Continuous Posture Evaluation
            - Bi-Annual 360 Evaluation
            - Bi-Annual Posture Evaluation
            - Smart Questionnaires
            - Inventory
            - Inventory Plus
          type: string
        latest_assessment_date:
          type: string
          description: >-
            This field indicates the date of the most recent assessment
            conducted or updated. format is ISO 8601 GMT
        id:
          type: string
        name:
          type: string
        relationships:
          type: array
          items:
            type: string
        business_impact:
          type: number
        insert_ts:
          type: string
        created_by:
          type: string
        approval:
          $ref: '#/components/schemas/Approval'
        risk:
          type: number
        combined_score:
          type: number
        posture_score:
          type: number
        tags:
          type: array
          items:
            type: string
        questionnaire_overall_score:
          type: number
        portfolios:
          type: array
          items:
            type: string
        segmentId:
          type: string
        primary_domain:
          type: string
      required:
        - business_information
        - contacts
        - questionnaires
        - id
        - name
        - relationships
        - business_impact
        - insert_ts
        - created_by
        - approval
        - risk
        - combined_score
        - posture_score
        - tags
        - questionnaire_overall_score
        - primary_domain
    PutSupplierBodyDto:
      type: object
      properties:
        name:
          type: string
          description: The supplier's name
          example: Panorays
        assets:
          description: Supplier assets as entered by the user
          uniqueItems: true
          type: array
          items:
            type: string
        pocs:
          additionalProperties: false
          type: array
          items:
            $ref: '#/components/schemas/PocDto'
        approval:
          additionalProperties: false
          allOf:
            - $ref: '#/components/schemas/Approval'
        relationships:
          uniqueItems: true
          type: array
          items:
            type: string
        tags:
          uniqueItems: true
          type: array
          items:
            type: string
        business_impact:
          type: number
          minimum: 1
          maximum: 5
        business_information:
          type: array
          items:
            $ref: '#/components/schemas/BusinessInformationInput'
        evaluation_type:
          enum:
            - Continuous 360 Evaluation
            - Continuous Posture Evaluation
            - Bi-Annual 360 Evaluation
            - Bi-Annual Posture Evaluation
            - Smart Questionnaires
            - Inventory Plus
          type: string
        portfolios:
          uniqueItems: true
          type: array
          items:
            type: string
    GetTestsOutputDto:
      type: object
      properties:
        severity:
          enum:
            - INFO
            - LOW
            - MEDIUM
            - HIGH
            - CRITICAL
          type: string
        category:
          type: string
          description: The key of category
        category_text:
          type: string
          description: The text of category
        sub_category:
          type: string
          description: The key of sub category
        sub_category_text:
          type: string
          description: The text of sub category
        open_findings_count:
          type: number
          description: '-1 indicates that no tests were performed'
        closed_findings_count:
          type: number
          description: '-1 indicates that no tests were performed'
        id:
          type: string
        name:
          type: string
        criterion_text:
          type: string
      required:
        - severity
        - category
        - category_text
        - sub_category
        - sub_category_text
        - open_findings_count
        - closed_findings_count
        - id
        - name
        - criterion_text
    PostAssetsInputDto:
      type: object
      properties:
        assets:
          description: assets by name, e.g., "127.0.0.1", "panorays.com"
          example:
            - 127.0.0.10
            - panorays.com
          type: array
          items:
            type: string
      required:
        - assets
    GetAssetOutputDto:
      type: object
      properties:
        type:
          enum:
            - DOMAIN
            - SUBDOMAIN
            - IP
            - IP_RANGE
          type: string
        is_up:
          type: boolean
          description: Is the asset active or not
        location:
          type: string
          description: The asset location, two letter country code
        domains:
          description: >-
            List of domains corresponding with the asset. Only for assets of
            type IP
          nullable: true
          type: array
          items:
            type: string
        ips:
          description: >-
            List of ips corresponding with the asset. Only for assets of type
            DOMAIN or SUBDOMAIN
          nullable: true
          type: array
          items:
            type: string
        asset_lifecycle:
          type: string
          description: Assets Lifecycle
        dispute_status:
          type: string
          description: Dispute status
        discovery_origin:
          type: string
          description: Asset discovery origin
        name:
          type: string
        insert_ts:
          type: string
      required:
        - type
        - is_up
        - location
        - asset_lifecycle
        - dispute_status
        - discovery_origin
        - name
        - insert_ts
    BaseCategory:
      type: object
      properties:
        name:
          type: string
        text:
          type: string
        grade:
          type: number
      required:
        - name
        - text
        - grade
    Category:
      type: object
      properties:
        sub_categories:
          type: array
          items:
            $ref: '#/components/schemas/BaseCategory'
        name:
          type: string
        text:
          type: string
        grade:
          type: number
      required:
        - sub_categories
        - name
        - text
        - grade
    GetPostureOutputDto:
      type: object
      properties:
        categories:
          type: array
          items:
            $ref: '#/components/schemas/Category'
        id:
          type: string
        grade:
          type: number
        name:
          type: string
      required:
        - categories
        - id
        - grade
        - name
    DeleteSupplierBodyDto:
      type: object
      properties:
        reason:
          enum:
            - Supplier No Longer Required
            - Non-Compliance with Policy
            - Duplicate Supplier Entry
            - License Costs
          type: string
          description: Reason of supplier's removal
      required:
        - reason
    PostSupplierCustomFactorsOutputDto:
      type: object
      properties:
        companyId:
          type: string
        supplierId:
          type: string
        factorId:
          type: string
        fileId:
          type: string
        effect:
          type: number
        comment:
          type: string
        updated_by:
          type: string
        added_by:
          type: string
      required:
        - companyId
        - supplierId
        - factorId
        - comment
        - updated_by
        - added_by
    PostSupplierCustomFactorsBodyDto:
      type: object
      properties:
        factorId:
          type: string
        fileId:
          type: string
        effect:
          type: number
        comment:
          type: string
      required:
        - factorId
        - comment
    PostSupplierReEvaluationBodyDto:
      type: object
      properties:
        date:
          type: string
        recurrence:
          enum:
            - NO_REPEAT
            - ANNUALLY
            - EVERY_2_YEARS
            - EVERY_3_YEARS
          type: string
        inquiryTemplateName:
          type: string
      required:
        - date
        - recurrence
    PostSupplierReEvaluationOutputDto:
      type: object
      properties:
        date:
          type: string
        recurrence:
          type: number
        inquiryTemplateName:
          type: string
      required:
        - date
        - recurrence
    PutSegmentBodyDto:
      type: object
      properties:
        segment_name:
          type: string
          description: The segment's name
          example: Panorays
        assets:
          description: Segment assets as entered by the user
          uniqueItems: true
          type: array
          items:
            type: string
        pocs:
          additionalProperties: false
          type: array
          items:
            $ref: '#/components/schemas/PocDto'
        approval:
          additionalProperties: false
          allOf:
            - $ref: '#/components/schemas/Approval'
        relationships:
          uniqueItems: true
          type: array
          items:
            type: string
        tags:
          uniqueItems: true
          type: array
          items:
            type: string
        business_impact:
          type: number
          minimum: 1
          maximum: 5
        business_information:
          type: array
          items:
            $ref: '#/components/schemas/BusinessInformationInput'
        portfolios:
          uniqueItems: true
          type: array
          items:
            type: string
    PutSegmentOutputDto:
      type: object
      properties:
        _id:
          type: string
        name:
          type: string
        company_id:
          type: string
        supplier_id:
          type: string
        segment_id:
          type: string
        assets:
          type: array
          items:
            type: string
        pocs:
          type: array
          items:
            $ref: '#/components/schemas/PocDto'
        approval:
          $ref: '#/components/schemas/Approval'
        relationships:
          type: object
        tags:
          type: array
          items:
            type: string
        business_impact:
          type: number
        business_information:
          type: array
          items:
            $ref: '#/components/schemas/BusinessInformationInput'
        portfolios:
          type: array
          items:
            type: string
    ArticleAddedEvent:
      type: object
      properties:
        company_id:
          type: string
        company_name:
          type: string
        supplier_id:
          type: string
        supplier_name:
          type: string
        tags:
          type: array
          items:
            type: string
        link:
          type: string
        title:
          type: string
        type:
          type: string
        source:
          type: string
        source_date:
          type: string
      required:
        - company_id
        - company_name
        - supplier_id
        - supplier_name
        - tags
        - link
        - title
        - type
        - source
        - source_date
    ArticleAddedOutputDto:
      type: object
      properties:
        type:
          type: string
          enum:
            - article_added
        event:
          $ref: '#/components/schemas/ArticleAddedEvent'
      required:
        - type
        - event
    ArticleNotifiedEvent:
      type: object
      properties:
        company_id:
          type: string
        company_name:
          type: string
        supplier_id:
          type: string
        supplier_name:
          type: string
        tags:
          type: array
          items:
            type: string
        link:
          type: string
        title:
          type: string
        type:
          type: string
        source:
          type: string
        source_date:
          type: string
      required:
        - company_id
        - company_name
        - supplier_id
        - supplier_name
        - tags
        - link
        - title
        - type
        - source
        - source_date
    ArticleNotifiedOutputDto:
      type: object
      properties:
        type:
          type: string
          enum:
            - article_notified
        event:
          $ref: '#/components/schemas/ArticleNotifiedEvent'
      required:
        - type
        - event
    BusinessInformationOutput:
      type: object
      properties:
        timestamp:
          type: string
          description: ISO UTC string of supplier add time
        id:
          type: string
        question:
          type: string
        type:
          type: string
          enum:
            - text
            - date
            - dropDown
            - multiSelection
            - file
        answer:
          type: string
        is_mandatory:
          type: boolean
        possible_answers:
          type: array
          items:
            type: string
      required:
        - timestamp
        - id
        - question
        - type
        - answer
        - is_mandatory
        - possible_answers
    SupplierAddedEvent:
      type: object
      properties:
        business_impact:
          type: number
          minimum: 1
          maximum: 5
        id:
          type: string
        name:
          type: string
        relationships:
          type: array
          items:
            type: string
        tags:
          type: array
          items:
            type: string
        insert_ts:
          type: string
        business_information:
          type: array
          items:
            $ref: '#/components/schemas/BusinessInformationOutput'
      required:
        - business_impact
        - id
        - name
        - relationships
        - tags
        - insert_ts
        - business_information
    SupplierAddedOutputDto:
      type: object
      properties:
        type:
          type: string
          enum:
            - supplier_added
        event:
          $ref: '#/components/schemas/SupplierAddedEvent'
      required:
        - type
        - event
    Rates:
      type: object
      properties:
        risk:
          type: number
          minimum: 1
          maximum: 5
        business_impact:
          type: number
          minimum: 1
          maximum: 5
        posture_score:
          type: number
          minimum: 0
          maximum: 100
        inquiry_score:
          type: number
          minimum: 0
          maximum: 100
      required:
        - risk
        - business_impact
        - posture_score
        - inquiry_score
    RiskChangedEvent:
      type: object
      properties:
        risk:
          type: number
          minimum: 1
          maximum: 5
        business_impact:
          type: number
          minimum: 1
          maximum: 5
        posture_score:
          type: number
          minimum: 0
          maximum: 100
        inquiry_score:
          type: number
          minimum: 0
          maximum: 100
        timestamp:
          type: string
          description: ISO UTC string of submission time
        supplier_name:
          type: string
        supplier_id:
          type: string
        is_initial:
          type: boolean
        previous_data:
          $ref: '#/components/schemas/Rates'
      required:
        - risk
        - business_impact
        - posture_score
        - inquiry_score
        - timestamp
        - supplier_name
        - supplier_id
        - is_initial
        - previous_data
    RiskChangedOutputDto:
      type: object
      properties:
        type:
          type: string
          enum:
            - risk_changed
        event:
          $ref: '#/components/schemas/RiskChangedEvent'
      required:
        - type
        - event
    InquirySentEvent:
      type: object
      properties:
        timestamp:
          type: string
          description: ISO UTC string of submission time
        template_id:
          type: string
          description: Id of the template
        template_name:
          type: string
          description: Template name
        display_name:
          type: string
          description: Template display name
        description:
          type: string
          description: Template description
        inquiry_id:
          type: string
        supplier_name:
          type: string
        supplier_id:
          type: string
        ttl:
          type: string
      required:
        - timestamp
        - template_id
        - template_name
        - display_name
        - inquiry_id
        - supplier_name
        - supplier_id
        - ttl
    InquirySentOutputDto:
      type: object
      properties:
        type:
          type: string
          enum:
            - inquiry_sent
        event:
          $ref: '#/components/schemas/InquirySentEvent'
      required:
        - type
        - event
    InquirySubmittedEvent:
      type: object
      properties:
        timestamp:
          type: string
          description: ISO UTC string of submission time
        template_id:
          type: string
          description: Id of the template
        display_name:
          type: string
          description: Template display name
        description:
          type: string
          description: Template description
        inquiry_id:
          type: string
        supplier_name:
          type: string
        supplier_id:
          type: string
        grade:
          type: number
      required:
        - timestamp
        - template_id
        - display_name
        - inquiry_id
        - supplier_name
        - supplier_id
        - grade
    InquirySubmittedOutputDto:
      type: object
      properties:
        type:
          type: string
          enum:
            - inquiry_submitted
        event:
          $ref: '#/components/schemas/InquirySubmittedEvent'
      required:
        - type
        - event
    ApprovalChangedEvent:
      type: object
      properties:
        old_status:
          enum:
            - PENDING
            - APPROVED
            - REJECTED
            - CONTINGENT
            - RE_EVALUATION
            - ARCHIVED
          type: string
          description: The previous status or the approval
        new_status:
          enum:
            - PENDING
            - APPROVED
            - REJECTED
            - CONTINGENT
            - RE_EVALUATION
            - ARCHIVED
          type: string
          description: The new status or the approval
        changed_by:
          type: string
          description: The email of the user who inititated the change
          format: email
        timestamp:
          type: string
          description: ISO UTC string of submission time
        supplier_name:
          type: string
        supplier_id:
          type: string
      required:
        - old_status
        - new_status
        - changed_by
        - timestamp
        - supplier_name
        - supplier_id
    ApprovalChangedOutputDto:
      type: object
      properties:
        type:
          type: string
          enum:
            - approval_changed
        event:
          $ref: '#/components/schemas/ApprovalChangedEvent'
      required:
        - type
        - event
    PostCallbackHandshakeBodyDto:
      type: object
      properties:
        url:
          type: string
      required:
        - url
    PostHookOutputDto:
      type: object
      properties:
        secret:
          type: string
      required:
        - secret
    SubscribeHooksBodyDto:
      type: object
      properties:
        hooks:
          type: array
          items:
            type: string
            enum:
              - url_verification
              - inquiry_submitted
              - approval_changed
              - risk_changed
              - inquiry_sent
              - supplier_added
              - article_notified
              - article_added
      required:
        - hooks
    Links:
      type: object
      properties:
        NIST:
          type: string
        Additional Information:
          type: string
    GetRiskInsightsOutputDto:
      type: object
      properties:
        impact_on_my_company:
          type: boolean
        impact_on_direct_suppliers:
          type: array
          items:
            type: string
        date_added:
          type: string
        last_update:
          type: string
        insight_status:
          enum:
            - new
            - in_progress
          type: string
        event_id:
          type: string
        event_type:
          enum:
            - vulnerability
            - breach
            - news
            - zero
          type: string
        event_date:
          type: string
        event_title:
          type: string
        event_links:
          $ref: '#/components/schemas/Links'
    LicensesOutputDto:
      type: object
      properties:
        productName:
          enum:
            - Continuous 360 Evaluation
            - Continuous Posture Evaluation
            - Bi-Annual 360 Evaluation
            - Bi-Annual Posture Evaluation
            - Smart Questionnaires
            - Inventory Plus
          type: string
        quantityPurchased:
          type: number
        quantityUsed:
          type: number
    GetLicensesOutputDto:
      type: object
      properties:
        licenses:
          description: Licenses
          type: array
          items:
            $ref: '#/components/schemas/LicensesOutputDto'
    GetTemplatesOutputDto:
      type: object
      properties:
        status:
          enum:
            - DRAFT
            - ARCHIVED
            - ACTIVE
          type: string
        weight:
          type: number
          nullable: true
          minimum: 0
          maximum: 1
        template_display_name:
          type: string
        template_name:
          type: string
        description:
          type: string
        created_at:
          type: string
        updated_at:
          type: string
        created_by:
          type: string
        updated_by:
          type: string
      required:
        - status
        - weight
        - template_display_name
        - template_name
        - created_at
        - updated_at
        - created_by
        - updated_by
    EntityDetails:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
    GetActivityCenterOutputDto:
      type: object
      properties:
        event_id:
          type: string
          description: The id of the event
        event_type:
          type: string
          description: The type of the event
        description:
          type: object
          description: The description of the event
        segment:
          description: The segment details of the event
          allOf:
            - $ref: '#/components/schemas/EntityDetails'
        timestamp:
          type: string
          description: The timestamp of the event
        username:
          type: string
          description: The username of the user who triggered the event
        event_category:
          type: string
          description: The category of the event
        company:
          description: The company details of the event
          allOf:
            - $ref: '#/components/schemas/EntityDetails'
        account_id:
          type: string
          description: The account id of the event
    GetCustomFactorsOutputDto:
      type: object
      properties:
        factor_id:
          type: string
          description: The unique identifier for the factor.
        name:
          type: string
          description: The name of the factor.
        factor:
          type: number
          description: The impact value for this factor
        override_allowed:
          type: boolean
          description: >-
            Indicates whether overriding the impact value is allowed for this
            factor (true or false).
        document_upload_required:
          type: boolean
          description: >-
            Indicates whether document upload is required for this factor (true
            or false).
      required:
        - factor_id
        - name
        - factor
        - override_allowed
        - document_upload_required
    GetCyberNewsArticlesOutputDto:
      type: object
      properties:
        company_id:
          type: string
        source:
          type: string
        source_date:
          type: string
        link:
          type: string
        tags:
          type: array
          items:
            type: string
        title:
          type: string
        description:
          type: string
        type:
          type: string
        notification_ts:
          type: boolean
        risk_insights_event_id:
          type: boolean
    GetDarkWebMentionsOutputDto:
      type: object
      properties:
        id:
          type: string
        company_id:
          type: string
        content:
          type: string
        description:
          type: string
        site:
          type: string
        source_type:
          type: string
        date:
          type: string
        apt:
          type: array
          items:
            type: string
        malware:
          type: array
          items:
            type: string
        tags:
          type: array
          items:
            type: string
        domains:
          type: array
          items:
            type: string
        alert_types:
          type: array
          items:
            type: string
        qualified_event:
          type: boolean
        is_alert:
          type: boolean
        type:
          type: string
        creator:
          type: string
        reputation_grade:
          type: number
        site_grade:
          type: number
        price:
          type: string
        language:
          type: string
        module:
          type: array
          items:
            type: string
        link:
          type: string
        has_insight:
          type: boolean
    GetTagOutputDto:
      type: object
      properties: {}
    UpdateTagDto:
      type: object
      properties: {}
    CreateTagDto:
      type: object
      properties:
        name:
          type: string
      required:
        - name
    CreateTagOutputDto:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        updated_by:
          type: string
      required:
        - id
        - name
        - updated_by
security:
  - bearerAuth: []
x-tagGroups:
  - name: Routes
    tags:
      - Supplier
      - Segment
      - Posture
      - Portfolio
      - Asset
      - Finding
      - RemediationTasks
      - BusinessInformation
      - File
      - Inquiry
      - Questionnaire
      - SecurityKit
      - Tests
      - RiskInsights
      - BusinessSnapshot
      - Relationship
      - Licenses
      - Templates
      - Activity Center
      - Tags
      - Factors
      - CyberNewsArticles
      - DarkWebMentions
      - ReEvaluation
  - name: WebHooks
    tags:
      - Webhooks Intro
      - Getting Started
      - Verify Requests
      - Handshake
      - Subscription
      - Inquiry Hook
      - Approval Hook
      - Risk Hook
      - Supplier Hook
      - Article Hook
