openapi: 3.1.0
info:
  title: Discovery API
  description: REST API for managing Discoveries in the platform
  contact:
    name: ILM
    url: https://www.otilm.com
    email: ilm@omnitrust.com
  license:
    name: "Apache License, Version 2.0"
    url: https://github.com/OmniTrustILM/interface-documentation/blob/main/LICENSE.md
  version: 2.20.0
  x-logo:
    url: images/ilm-logo.svg
externalDocs:
  description: ILM Documentation
  url: https://docs.otilm.com
servers:
- url: https://demo.otilm.com/api
  description: ILM Demo server
tags:
- name: Discovery Management
  description: Discovery Management API
paths:
  /v1/discoveries:
    post:
      tags:
      - Discovery Management
      summary: Create Discovery
      operationId: createDiscovery
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DiscoveryDto"
        required: true
      responses:
        "201":
          description: Discovery Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UuidDto"
        "422":
          description: Unprocessable Content
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
              example:
              - Error Message 1
              - Error Message 2
        "404":
          description: Connector not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "409":
          description: Discovery of that name already exists
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AuthenticationServiceExceptionDto"
        "500":
          description: Internal Server Error
        "502":
          description: Connector Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "503":
          description: Connector Communication Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
      security:
      - SessionAuth: []
      - CertificateAuth: []
      - BearerJWTAuth: []
    delete:
      tags:
      - Discovery Management
      summary: Delete Multiple Discoveries
      operationId: bulkDeleteDiscovery
      requestBody:
        description: Discovery UUIDs
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
            example:
            - c2f685d4-6a3e-11ec-90d6-0242ac120003
            - b9b09548-a97c-4c6a-a06a-e4ee6fc2da98
        required: true
      responses:
        "204":
          description: Discoveries deleted
        "404":
          description: Discovery not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AuthenticationServiceExceptionDto"
        "500":
          description: Internal Server Error
        "502":
          description: Connector Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "503":
          description: Connector Communication Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
      security:
      - SessionAuth: []
      - CertificateAuth: []
      - BearerJWTAuth: []
  /v1/discoveries/schedule:
    post:
      tags:
      - Discovery Management
      summary: Schedule Discovery
      operationId: scheduleDiscovery
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ScheduleDiscoveryDto"
        required: true
      responses:
        "201":
          description: Discovery Scheduled
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UuidDto"
        "422":
          description: Unprocessable Content
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
              example:
              - Error Message 1
              - Error Message 2
        "404":
          description: Connector not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "409":
          description: "A Discovery or a scheduled job of that name already exists,\
            \ including a one-time job that has already run"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AuthenticationServiceExceptionDto"
        "500":
          description: Internal Server Error
        "502":
          description: Connector Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "503":
          description: Connector Communication Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
      security:
      - SessionAuth: []
      - CertificateAuth: []
      - BearerJWTAuth: []
  /v1/discoveries/list:
    post:
      tags:
      - Discovery Management
      summary: List Discovery
      description: |-
        Ordering and columns address a field by its source together with its identifier, because an identifier is unique only within its source. Both halves, and which fields may be shown or ordered on, come from the searchable-fields operation of this resource.

        `sort` orders the whole result set before it is paged, so paging walks the sorted set rather than sorting one page at a time; only fields the catalogue marks `sortable` may be used. Objects without a value for the sorted field come last in both directions; a field holding several values sorts by its smallest value ascending and its largest descending. `columns` names the fields the caller means to display, and only fields the catalogue marks `displayable` may be named. It does not narrow the response: every listing object comes back whole, and naming a property field asks for nothing extra because the object already carries it. Naming an attribute-sourced field is what has an effect, described below.

        A request that carries neither `sort` nor `columns` is answered exactly as it was before the two fields existed: the endpoint's own default ordering, the full default shape of every object, and no `attributeValues` member. A caller written against the previous contract therefore needs no change.

        Requesting attribute-sourced columns adds an `attributeValues` member to each returned object, keyed by field source and then by field identifier. A field the object holds no value for is absent rather than empty, and a multi-valued attribute arrives in its stored `item_order`.
      operationId: listDiscoveries
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SearchRequestDto"
            examples:
              With ordering and columns:
                description: With ordering and columns
                value:
                  pageNumber: 1
                  itemsPerPage: 10
                  filters: []
                  sort:
                    fieldSource: property
                    fieldIdentifier: DISCOVERY_START_TIME
                    direction: desc
                  columns:
                  - fieldSource: property
                    fieldIdentifier: DISCOVERY_NAME
                  - fieldSource: property
                    fieldIdentifier: DISCOVERY_STATUS
                  - fieldSource: property
                    fieldIdentifier: DISCOVERY_KIND
        required: true
      responses:
        "200":
          description: List of available Discoveries
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DiscoveryResponseDto"
        "422":
          description: Unprocessable Content
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
              example:
              - Error Message 1
              - Error Message 2
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AuthenticationServiceExceptionDto"
        "500":
          description: Internal Server Error
        "502":
          description: Connector Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "503":
          description: Connector Communication Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
      security:
      - SessionAuth: []
      - CertificateAuth: []
      - BearerJWTAuth: []
  /v1/discoveries/{uuid}/stop:
    patch:
      tags:
      - Discovery Management
      summary: Stop Discovery
      description: "Suspends an in-progress discovery so it can be resumed, keeping\
        \ what it has staged."
      operationId: stopDiscovery
      parameters:
      - name: uuid
        in: path
        description: Discovery UUID
        required: true
        schema:
          type: string
      responses:
        "204":
          description: Discovery stopped
        "404":
          description: Discovery not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "422":
          description: "Discovery is not in progress, or its Discovery Provider does\
            \ not support stopping a run"
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
              example:
              - Error Message 1
              - Error Message 2
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AuthenticationServiceExceptionDto"
        "500":
          description: Internal Server Error
        "502":
          description: Connector Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "503":
          description: Connector Communication Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
      security:
      - SessionAuth: []
      - CertificateAuth: []
      - BearerJWTAuth: []
  /v1/discoveries/{uuid}/resume:
    patch:
      tags:
      - Discovery Management
      summary: Resume Discovery
      description: "Continues a stopped discovery where it stopped. If the Discovery\
        \ Provider has lost its checkpoint, the discovery fails rather than starting\
        \ over."
      operationId: resumeDiscovery
      parameters:
      - name: uuid
        in: path
        description: Discovery UUID
        required: true
        schema:
          type: string
      responses:
        "204":
          description: Discovery resumed
        "404":
          description: Discovery not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "422":
          description: "Discovery is not stopped, or its Discovery Provider does not\
            \ support resuming a run"
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
              example:
              - Error Message 1
              - Error Message 2
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AuthenticationServiceExceptionDto"
        "500":
          description: Internal Server Error
        "502":
          description: Connector Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "503":
          description: Connector Communication Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
      security:
      - SessionAuth: []
      - CertificateAuth: []
      - BearerJWTAuth: []
  /v1/discoveries/{uuid}/cancel:
    patch:
      tags:
      - Discovery Management
      summary: Cancel Discovery
      description: Ends an in-progress or stopped discovery for good; the items it
        staged are not processed.
      operationId: cancelDiscovery
      parameters:
      - name: uuid
        in: path
        description: Discovery UUID
        required: true
        schema:
          type: string
      responses:
        "204":
          description: Discovery cancelled
        "404":
          description: Discovery not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "422":
          description: "Discovery is neither in progress nor stopped, or its Discovery\
            \ Provider does not support cancelling a run"
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
              example:
              - Error Message 1
              - Error Message 2
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AuthenticationServiceExceptionDto"
        "500":
          description: Internal Server Error
        "502":
          description: Connector Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "503":
          description: Connector Communication Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
      security:
      - SessionAuth: []
      - CertificateAuth: []
      - BearerJWTAuth: []
  /v1/discoveries/{uuid}:
    get:
      tags:
      - Discovery Management
      summary: Discovery Details
      operationId: getDiscovery
      parameters:
      - name: uuid
        in: path
        description: Discovery UUID
        required: true
        schema:
          type: string
      responses:
        "200":
          description: Discovery details retrieved
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DiscoveryDetailDto"
        "404":
          description: Discovery not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AuthenticationServiceExceptionDto"
        "500":
          description: Internal Server Error
        "502":
          description: Connector Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "503":
          description: Connector Communication Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
      security:
      - SessionAuth: []
      - CertificateAuth: []
      - BearerJWTAuth: []
    delete:
      tags:
      - Discovery Management
      summary: Delete Discovery
      operationId: deleteDiscovery
      parameters:
      - name: uuid
        in: path
        description: Discovery UUID
        required: true
        schema:
          type: string
      responses:
        "204":
          description: Discovery deleted
        "404":
          description: Discovery not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "422":
          description: "Delete refused: cancel a v2 Discovery that has not ended,\
            \ or wait for it to end once it is processing and can no longer be cancelled"
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
              example:
              - Error Message 1
              - Error Message 2
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AuthenticationServiceExceptionDto"
        "500":
          description: Internal Server Error
        "502":
          description: Connector Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "503":
          description: Connector Communication Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
      security:
      - SessionAuth: []
      - CertificateAuth: []
      - BearerJWTAuth: []
  /v1/discoveries/{uuid}/messages:
    get:
      tags:
      - Discovery Management
      summary: List Discovery Run Messages
      description: "Returns one page of the discovery's run messages, oldest first\
        \ and stable across pages. A repeated problem is one entry with an occurrence\
        \ count, and messages alone do not mean the run failed."
      operationId: getDiscoveryRunMessages
      parameters:
      - name: uuid
        in: path
        description: Discovery UUID
        required: true
        schema:
          type: string
      - name: itemsPerPage
        in: query
        required: false
        schema:
          type: integer
          format: int32
          default: 10
      - name: pageNumber
        in: query
        required: false
        schema:
          type: integer
          format: int32
          default: 0
      responses:
        "200":
          description: Discovery run messages retrieved
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaginationResponseDtoDiscoveryMessageDto"
        "404":
          description: Discovery not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AuthenticationServiceExceptionDto"
        "500":
          description: Internal Server Error
        "502":
          description: Connector Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "503":
          description: Connector Communication Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
      security:
      - SessionAuth: []
      - CertificateAuth: []
      - BearerJWTAuth: []
  /v1/discoveries/{uuid}/items:
    get:
      tags:
      - Discovery Management
      summary: List Discovered Items
      description: "Returns one page of the items the discovery staged, in run sequence,\
        \ optionally narrowed to one resource type. For a v1 run it lists the same\
        \ certificates as the certificate listing."
      operationId: getDiscoveryItems
      parameters:
      - name: uuid
        in: path
        description: Discovery UUID
        required: true
        schema:
          type: string
      - name: resource
        in: query
        description: "Resource code to list, e.g. \"certificates\" or \"keys\"; omit\
          \ for every resource type"
        required: false
        schema:
          $ref: "#/components/schemas/Resource"
      - name: newlyDiscovered
        in: query
        required: false
        schema:
          type: boolean
      - name: itemsPerPage
        in: query
        required: false
        schema:
          type: integer
          format: int32
          default: 10
      - name: pageNumber
        in: query
        required: false
        schema:
          type: integer
          format: int32
          default: 0
      responses:
        "200":
          description: Discovered items retrieved
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaginationResponseDtoDiscoveryItemDto"
        "404":
          description: Discovery not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AuthenticationServiceExceptionDto"
        "500":
          description: Internal Server Error
        "502":
          description: Connector Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "503":
          description: Connector Communication Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
      security:
      - SessionAuth: []
      - CertificateAuth: []
      - BearerJWTAuth: []
  /v1/discoveries/{uuid}/certificates:
    get:
      tags:
      - Discovery Management
      summary: List Discovered Certificates
      operationId: getDiscoveryCertificates
      parameters:
      - name: uuid
        in: path
        description: Discovery UUID
        required: true
        schema:
          type: string
      - name: newlyDiscovered
        in: query
        required: false
        schema:
          type: boolean
      - name: itemsPerPage
        in: query
        required: false
        schema:
          type: integer
          format: int32
          default: 10
      - name: pageNumber
        in: query
        required: false
        schema:
          type: integer
          format: int32
          default: 0
      responses:
        "200":
          description: Discovered certificates retrieved
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DiscoveryCertificateResponseDto"
        "404":
          description: Discovery not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AuthenticationServiceExceptionDto"
        "500":
          description: Internal Server Error
        "502":
          description: Connector Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "503":
          description: Connector Communication Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
      security:
      - SessionAuth: []
      - CertificateAuth: []
      - BearerJWTAuth: []
  /v1/discoveries/{connectorUuid}/{resource}/attributes:
    get:
      tags:
      - Discovery Management
      summary: Get per-resource Discovery Attributes from a Discovery Provider
      description: "Returns the attributes that refine discovery of one resource type,\
        \ from a v2 Discovery Provider."
      operationId: getDiscoveryResourceAttributes
      parameters:
      - name: connectorUuid
        in: path
        description: Discovery Provider Connector UUID
        required: true
        schema:
          type: string
      - name: resource
        in: path
        description: "Resource code, e.g. \"certificates\" or \"keys\""
        required: true
        schema:
          $ref: "#/components/schemas/Resource"
      responses:
        "200":
          description: Per-resource Discovery Attributes received
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/BaseAttributeDto"
        "404":
          description: Connector not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "422":
          description: "Resource is not discoverable by this Connector, or the Connector\
            \ does not implement the v2 discovery interface"
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
              example:
              - Error Message 1
              - Error Message 2
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AuthenticationServiceExceptionDto"
        "500":
          description: Internal Server Error
        "502":
          description: Connector Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "503":
          description: Connector Communication Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
      security:
      - SessionAuth: []
      - CertificateAuth: []
      - BearerJWTAuth: []
  /v1/discoveries/{connectorUuid}/resources:
    get:
      tags:
      - Discovery Management
      summary: Get discoverable resources of a Discovery Provider
      description: "Returns the resource types the Connector can discover, asked live.\
        \ For a v1 Connector, Core answers a single certificates entry without calling\
        \ it."
      operationId: listDiscoveryResources
      parameters:
      - name: connectorUuid
        in: path
        description: Discovery Provider Connector UUID
        required: true
        schema:
          type: string
      responses:
        "200":
          description: Discoverable resources retrieved
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/DiscoverySupportedResourceDto"
        "404":
          description: Connector not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AuthenticationServiceExceptionDto"
        "500":
          description: Internal Server Error
        "502":
          description: Connector Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "503":
          description: Connector Communication Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
      security:
      - SessionAuth: []
      - CertificateAuth: []
      - BearerJWTAuth: []
  /v1/discoveries/{connectorUuid}/attributes:
    get:
      tags:
      - Discovery Management
      summary: Get run-level Discovery Attributes from a Discovery Provider
      description: "Returns the attributes that configure a run as a whole, from a\
        \ v2 Discovery Provider. For a v1 Connector, use the kind-scoped Connector\
        \ attribute endpoint."
      operationId: getDiscoveryAttributes
      parameters:
      - name: connectorUuid
        in: path
        description: Discovery Provider Connector UUID
        required: true
        schema:
          type: string
      responses:
        "200":
          description: Run-level Discovery Attributes received
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/BaseAttributeDto"
        "404":
          description: Connector not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "422":
          description: Connector does not implement the v2 discovery interface
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
              example:
              - Error Message 1
              - Error Message 2
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AuthenticationServiceExceptionDto"
        "500":
          description: Internal Server Error
        "502":
          description: Connector Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "503":
          description: Connector Communication Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
      security:
      - SessionAuth: []
      - CertificateAuth: []
      - BearerJWTAuth: []
  /v1/discoveries/search:
    get:
      tags:
      - Discovery Management
      summary: Get Discovery searchable fields information
      description: |-
        Besides the conditions a field may be filtered with, each field reports whether it can serve as a configurable column of the listing: `displayable` marks the fields that may be named in `columns`, and `sortable` those the listing may be ordered by. A field that reports neither flag is filter-only, so an absent flag is to be read as `false` rather than as unknown.

        Both flags are answered per field, and that answer is authoritative for attribute-sourced fields as much as for property ones: whether a given attribute may be ordered on depends on the resource and is reported here rather than assumed. A field that may be shown but not ordered on reports `displayable` without `sortable`.
      operationId: getDiscoverySearchableFields
      responses:
        "200":
          description: Discovery searchable field information retrieved
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/SearchFieldDataByGroupDto"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AuthenticationServiceExceptionDto"
        "500":
          description: Internal Server Error
        "502":
          description: Connector Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "503":
          description: Connector Communication Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
      security:
      - SessionAuth: []
      - CertificateAuth: []
      - BearerJWTAuth: []
components:
  schemas:
    ApiKeySecretContent:
      type: object
      description: Secret representing an API Key
      properties:
        type:
          $ref: "#/components/schemas/SecretType"
          description: Secret type
          examples:
          - apiKey
        content:
          type: string
          description: API Key content string
          minLength: 1
      required:
      - content
      - type
      title: ApiKeySecretContent
    AttributeCallback:
      type: object
      properties:
        callbackContext:
          type: string
          description: Context part of callback URL
        callbackMethod:
          type: string
          description: HTTP method of the callback. This value is required for connector
            callbacks and optional only for callbacks defined on resource objects.
        mappings:
          type: array
          description: Mappings for the callback method
          items:
            $ref: "#/components/schemas/AttributeCallbackMapping"
          uniqueItems: true
        dependsOn:
          type: array
          description: "Names of the attributes, within this same form, whose values\
            \ this Attributes v2 callback consumes and is triggered by. Providing\
            \ this field — even as an empty list — marks the callback as an Attributes\
            \ v2 callback; an empty list means the callback fires once when the form\
            \ opens (it depends on no other field). At most one of dependsOn or callbackContext\
            \ may be set; a callback with neither field set defines no callback. Not\
            \ allowed on RESOURCE attributes. These rules are enforced by the platform."
          items:
            type: string
      required:
      - mappings
    AttributeCallbackMapping:
      type: object
      properties:
        from:
          type: string
          description: Name of the attribute whose value is to be used as value of
            path variable or request param or body field.It is optional and must be
            set only if value is not set.
        attributeType:
          $ref: "#/components/schemas/AttributeType"
          description: Type of the attribute. It is optional and must be set only
            if special behaviour is needed.
        attributeContentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: 'Type of the attribute content. '
        to:
          type: string
          description: Name of the path variable or request param or body field which
            is to be used to assign value of attribute
        targets:
          type: array
          description: Set of targets for propagating value.
          items:
            $ref: "#/components/schemas/AttributeValueTarget"
          uniqueItems: true
        value:
          description: Static value to be propagated to targets. It is optional and
            is set only if the value is known at attribute creation time.
      required:
      - targets
      - to
    AttributeConstraintType:
      type: string
      enum:
      - regExp
      - range
      - dateTime
      - jsonSchema
    AttributeContentType:
      type: string
      enum:
      - string
      - text
      - integer
      - boolean
      - float
      - date
      - time
      - datetime
      - secret
      - file
      - credential
      - codeblock
      - object
      - resource
    AttributeResource:
      type: string
      enum:
      - certificates
      - credentials
      - authorities
      - entities
      - locations
      - secrets
    AttributeType:
      type: string
      enum:
      - data
      - group
      - info
      - meta
      - custom
    AttributeValueTarget:
      type: string
      enum:
      - pathVariable
      - requestParameter
      - body
      - filter
    AttributeVersion:
      type: string
      enum:
      - v2
      - v3
    BaseAttributeConstraint:
      type: object
      description: Base Attribute Constraint definition
      discriminator:
        propertyName: type
        mapping:
          regExp: "#/components/schemas/RegexpAttributeConstraint"
          range: "#/components/schemas/RangeAttributeConstraint"
          dateTime: "#/components/schemas/DateTimeAttributeConstraint"
          jsonSchema: "#/components/schemas/JsonSchemaAttributeConstraint"
      oneOf:
      - $ref: "#/components/schemas/RegexpAttributeConstraint"
      - $ref: "#/components/schemas/RangeAttributeConstraint"
      - $ref: "#/components/schemas/DateTimeAttributeConstraint"
      - $ref: "#/components/schemas/JsonSchemaAttributeConstraint"
      properties:
        description:
          type: string
          description: Description of the constraint
        errorMessage:
          type: string
          description: Error message to be displayed for wrong data
        type:
          $ref: "#/components/schemas/AttributeConstraintType"
          description: Attribute Constraint Type
      required:
      - type
    BaseAttributeContentDtoV2:
      type: object
      description: Base Attribute ContentV2 definition
      oneOf:
      - $ref: "#/components/schemas/BooleanAttributeContentV2"
      - $ref: "#/components/schemas/CodeBlockAttributeContentV2"
      - $ref: "#/components/schemas/CredentialAttributeContentV2"
      - $ref: "#/components/schemas/DateAttributeContentV2"
      - $ref: "#/components/schemas/DateTimeAttributeContentV2"
      - $ref: "#/components/schemas/FileAttributeContentV2"
      - $ref: "#/components/schemas/FloatAttributeContentV2"
      - $ref: "#/components/schemas/IntegerAttributeContentV2"
      - $ref: "#/components/schemas/ObjectAttributeContentV2"
      - $ref: "#/components/schemas/SecretAttributeContentV2"
      - $ref: "#/components/schemas/StringAttributeContentV2"
      - $ref: "#/components/schemas/TextAttributeContentV2"
      - $ref: "#/components/schemas/TimeAttributeContentV2"
      properties:
        reference:
          type: string
          description: ContentV2 Reference
    BaseAttributeContentDtoV3:
      description: Base Attribute Content
      discriminator:
        propertyName: contentType
        mapping:
          boolean: "#/components/schemas/BooleanAttributeContentV3"
          codeblock: "#/components/schemas/CodeBlockAttributeContentV3"
          date: "#/components/schemas/DateAttributeContentV3"
          datetime: "#/components/schemas/DateTimeAttributeContentV3"
          file: "#/components/schemas/FileAttributeContentV3"
          float: "#/components/schemas/FloatAttributeContentV3"
          integer: "#/components/schemas/IntegerAttributeContentV3"
          object: "#/components/schemas/ObjectAttributeContentV3"
          string: "#/components/schemas/StringAttributeContentV3"
          text: "#/components/schemas/TextAttributeContentV3"
          time: "#/components/schemas/TimeAttributeContentV3"
          resource: "#/components/schemas/ResourceObjectContent"
      oneOf:
      - $ref: "#/components/schemas/BooleanAttributeContentV3"
      - $ref: "#/components/schemas/CodeBlockAttributeContentV3"
      - $ref: "#/components/schemas/DateAttributeContentV3"
      - $ref: "#/components/schemas/DateTimeAttributeContentV3"
      - $ref: "#/components/schemas/FileAttributeContentV3"
      - $ref: "#/components/schemas/FloatAttributeContentV3"
      - $ref: "#/components/schemas/IntegerAttributeContentV3"
      - $ref: "#/components/schemas/ObjectAttributeContentV3"
      - $ref: "#/components/schemas/StringAttributeContentV3"
      - $ref: "#/components/schemas/TextAttributeContentV3"
      - $ref: "#/components/schemas/TimeAttributeContentV3"
      - $ref: "#/components/schemas/ResourceObjectContent"
    BasicAuthSecretContent:
      type: object
      description: Secret representing Basic Authentication credentials
      properties:
        type:
          $ref: "#/components/schemas/SecretType"
          description: Secret type
          examples:
          - apiKey
        username:
          type: string
          description: Username for Basic Authentication
          example: admin
          minLength: 1
        password:
          type: string
          description: Password for Basic Authentication
          minLength: 1
      required:
      - password
      - type
      - username
      title: BasicAuthSecretContent
    BooleanAttributeContentV2:
      type: object
      description: Boolean attribute content to store true/false values
      properties:
        reference:
          type: string
          description: ContentV2 Reference
        data:
          type: boolean
          description: Boolean attribute value
      required:
      - data
    BooleanAttributeContentV3:
      type: object
      description: Boolean attribute content to store true/false values
      properties:
        reference:
          type: string
          description: Content Reference
        data:
          type: boolean
          description: Boolean attribute value
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Boolean attribute value
      required:
      - contentType
      - data
    CertificateType:
      type: string
      enum:
      - X.509
      - SSH
    CodeBlockAttributeContentData:
      type: object
      properties:
        language:
          $ref: "#/components/schemas/ProgrammingLanguageEnum"
          description: Definition of programming languages used for code
          examples:
          - "JAVA, PHP, C, etc"
        code:
          type: string
          description: Block of the code in Base64. Formatting of the code is specified
            by variable language
      required:
      - code
      - language
    CodeBlockAttributeContentV2:
      type: object
      description: Codeblock attribute content to store encoded snippets of programming
        language code
      properties:
        reference:
          type: string
          description: ContentV2 Reference
        data:
          $ref: "#/components/schemas/CodeBlockAttributeContentData"
          description: CodeBlock attribute content data
      required:
      - data
    CodeBlockAttributeContentV3:
      type: object
      description: Codeblock attribute content to store encoded snippets of programming
        language code
      properties:
        reference:
          type: string
          description: Content Reference
        data:
          $ref: "#/components/schemas/CodeBlockAttributeContentData"
          description: CodeBlock attribute content data
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Content Type of the attribute
      required:
      - contentType
      - data
    CredentialAttributeContentData:
      type: object
      properties:
        uuid:
          type: string
          description: Object identifier
          examples:
          - 7b55ge1c-844f-11dc-a8a3-0242ac120002
        name:
          type: string
          description: Object Name
          examples:
          - Name
        kind:
          type: string
          description: Credential Kind
          examples:
          - "SoftKeyStore, Basic, ApiKey, etc"
        attributes:
          type: array
          description: List of Credential Attributes
          items:
            $ref: "#/components/schemas/DataAttributeV2"
      required:
      - attributes
      - kind
      - name
      - uuid
    CredentialAttributeContentV2:
      type: object
      description: Credential attribute content carrying information about credential
        to use
      properties:
        reference:
          type: string
          description: ContentV2 Reference
        data:
          $ref: "#/components/schemas/CredentialAttributeContentData"
          description: Credential attribute content data
      required:
      - data
    DataAttributeProperties:
      type: object
      properties:
        label:
          type: string
          description: Friendly name of the the Attribute
          examples:
          - Attribute Name
        visible:
          type: boolean
          default: true
          description: "Boolean determining if the Attribute is visible and can be\
            \ displayed, otherwise it should be hidden to the user."
        group:
          type: string
          description: "Group of the Attribute, used for the logical grouping of the\
            \ Attribute"
          examples:
          - requiredAttributes
        required:
          type: boolean
          default: false
          description: "Boolean determining if the Attribute is required. If true,\
            \ the Attribute must be provided."
        readOnly:
          type: boolean
          default: false
          description: "Boolean determining if the Attribute is read only. If true,\
            \ the Attribute content cannot be changed."
        list:
          type: boolean
          default: false
          description: Boolean determining if the Attribute contains list of values
            in the content
        multiSelect:
          type: boolean
          default: false
          description: Boolean determining if the Attribute can have multiple values
        protectionLevel:
          $ref: "#/components/schemas/ProtectionLevel"
          default: none
          description: Protection level of the attribute content
        resource:
          $ref: "#/components/schemas/AttributeResource"
          description: "Resource of the attribute, relevant if the attribute has Resource\
            \ content type"
        extensibleList:
          type: boolean
          default: false
          description: Boolean determining if a list Attribute can have values other
            than predefined options
      required:
      - extensibleList
      - label
      - list
      - multiSelect
      - readOnly
      - required
      - visible
    DataAttributeV2:
      type: object
      description: Data attribute allows to store and transfer dynamic data. Its content
        can be edited and send in requests to store.
      properties:
        uuid:
          type: string
          description: UUID of the Attribute for unique identification
          example: b11c9be1-b619-4ef5-be1b-a1cd9ef265b7
        name:
          type: string
          description: Name of the Attribute that is used for identification
          examples:
          - Attribute
        description:
          type: string
          description: "Optional description of the Attribute, should contain helper\
            \ text on what is expected"
        version:
          type: integer
          format: int32
          description: Version of the attribute
        type:
          $ref: "#/components/schemas/AttributeType"
          description: Type of the Attribute
        content:
          type: array
          description: Content of the Attribute
          items:
            $ref: "#/components/schemas/BaseAttributeContentDtoV2"
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Type of the Content
        properties:
          $ref: "#/components/schemas/DataAttributeProperties"
          description: Properties of the Attributes
        constraints:
          type: array
          description: Optional constraints used for validating the Attribute content
          items:
            $ref: "#/components/schemas/BaseAttributeConstraint"
        attributeCallback:
          $ref: "#/components/schemas/AttributeCallback"
          description: Optional definition of callback for getting the content of
            the Attribute based on the action
      required:
      - contentType
      - name
      - properties
      - type
      - uuid
      - version
    DateAttributeContentV2:
      type: object
      description: Date attribute content in predefined format
      properties:
        reference:
          type: string
          description: ContentV2 Reference
        data:
          type: string
          format: date
          description: Date attribute value in format yyyy-MM-dd
      required:
      - data
    DateAttributeContentV3:
      type: object
      description: Date attribute content in predefined format
      properties:
        reference:
          type: string
          description: Content Reference
        data:
          type: string
          format: date
          description: Date attribute value in format yyyy-MM-dd
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Content Type of the attribute
      required:
      - contentType
      - data
    DateTimeAttributeConstraint:
      type: object
      description: DateTime attribute constraint to specify boundaries for date value
      properties:
        description:
          type: string
          description: Description of the constraint
        errorMessage:
          type: string
          description: Error message to be displayed for wrong data
        type:
          $ref: "#/components/schemas/AttributeConstraintType"
          description: Attribute Constraint Type
        data:
          $ref: "#/components/schemas/DateTimeAttributeConstraintData"
          description: DateTime Range Attribute Constraint Data
      required:
      - type
    DateTimeAttributeConstraintData:
      type: object
      properties:
        from:
          type: string
          format: date-time
          description: Start of the datetime for validation
        to:
          type: string
          format: date-time
          description: End of the datetime for validation
    DateTimeAttributeContentV2:
      type: object
      description: DateTime attribute content in predefined format with timezone
      properties:
        reference:
          type: string
          description: ContentV2 Reference
        data:
          type: string
          format: date-time
          description: DateTime attribute value in format yyyy-MM-ddTHH:mm:ss.SSSXXX
      required:
      - data
    DateTimeAttributeContentV3:
      type: object
      description: DateTime attribute content in predefined format with timezone
      properties:
        reference:
          type: string
          description: Content Reference
        data:
          type: string
          format: date-time
          description: DateTime attribute value in format yyyy-MM-ddTHH:mm:ss.SSSXXX
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Content Type of the attribute
      required:
      - contentType
      - data
    DiscoveryDto:
      type: object
      properties:
        name:
          type: string
          description: Discovery name
        attributes:
          type: array
          description: List of Attributes for Discovery
          items:
            $ref: "#/components/schemas/RequestAttribute"
        customAttributes:
          type: array
          description: List of Custom Attributes
          items:
            $ref: "#/components/schemas/RequestAttribute"
        connectorUuid:
          type: string
          description: Discovery Provider UUID
        interfaceUuid:
          type: string
          format: uuid
          description: "Discovery interface of the Connector to run through. Required\
            \ when the Connector has more than one, selected automatically when it\
            \ has one; a Connector with none runs a v1 discovery."
        kind:
          type: string
          description: "Discovery kind. Required for a v1 Discovery Provider; omit\
            \ it for a v2 one, which has no kinds."
        triggers:
          type: array
          description: "Triggers to evaluate, in this order, when the discovery finishes"
          items:
            type: string
            format: uuid
        resources:
          type: array
          description: "Resource types to discover, as resource codes. Required for\
            \ a v2 Discovery Provider; omit it for a v1 one, which discovers certificates\
            \ and refuses the field."
          items:
            $ref: "#/components/schemas/Resource"
          maxItems: 2147483647
          minItems: 1
        resourceAttributes:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: "#/components/schemas/RequestAttribute"
          description: "Per-resource attributes, keyed by resource code, against the\
            \ definitions the Connector advertises per resource. A resource with no\
            \ entry is still discovered, unrefined: resources alone decides what the\
            \ run targets. Omit for a v1 Discovery Provider."
          propertyNames:
            $ref: "#/components/schemas/Resource"
      required:
      - attributes
      - connectorUuid
      - name
    FileAttributeContentData:
      type: object
      properties:
        content:
          type: string
          description: File content
        fileName:
          type: string
          description: Name of the file
        mimeType:
          type: string
          description: Type of the file uploaded
      required:
      - content
      - fileName
      - mimeType
    FileAttributeContentV2:
      type: object
      description: File attribute content for storing encoded file content with additional
        info
      properties:
        reference:
          type: string
          description: ContentV2 Reference
        data:
          $ref: "#/components/schemas/FileAttributeContentData"
          description: File attribute content data
      required:
      - data
    FileAttributeContentV3:
      type: object
      description: File attribute content for storing encoded file content with additional
        info
      properties:
        reference:
          type: string
          description: Content Reference
        data:
          $ref: "#/components/schemas/FileAttributeContentData"
          description: File attribute content data
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Content Type of the attribute
      required:
      - contentType
      - data
    FloatAttributeContentV2:
      type: object
      description: Float attribute content for decimal numbers
      properties:
        reference:
          type: string
          description: ContentV2 Reference
        data:
          type: number
          format: float
          description: Float attribute value
      required:
      - data
    FloatAttributeContentV3:
      type: object
      description: Float attribute content for decimal numbers
      properties:
        reference:
          type: string
          description: Content Reference
        data:
          type: number
          format: float
          description: Float attribute value
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Content Type of the attribute
      required:
      - contentType
      - data
    GenericSecretContent:
      type: object
      description: Secret representing generic content represented as string
      properties:
        type:
          $ref: "#/components/schemas/SecretType"
          description: Secret type
          examples:
          - apiKey
        content:
          type: string
          description: "Generic secret content represented as string. In case secret\
            \ content is binary data, it should be encoded as BASE64 string."
          minLength: 1
      required:
      - content
      - type
      title: GenericSecretContent
    IntegerAttributeContentV2:
      type: object
      description: Integer attribute content for integer numbers
      properties:
        reference:
          type: string
          description: ContentV2 Reference
        data:
          type: integer
          format: int32
          description: Integer attribute value
      required:
      - data
    IntegerAttributeContentV3:
      type: object
      description: Integer attribute content for integer numbers
      properties:
        reference:
          type: string
          description: Content Reference
        data:
          type: integer
          format: int32
          description: Integer attribute value
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Content Type of the attribute
      required:
      - contentType
      - data
    JsonSchemaAttributeConstraint:
      type: object
      description: JSON Schema attribute constraint restricting a string value to
        JSON conforming to an inline JSON Schema (draft 2020-12)
      properties:
        description:
          type: string
          description: Description of the constraint
        errorMessage:
          type: string
          description: Error message to be displayed for wrong data
        type:
          $ref: "#/components/schemas/AttributeConstraintType"
          description: Attribute Constraint Type
        data:
          type: string
          description: Inline JSON Schema document the value must conform to
          minLength: 1
      required:
      - data
      - type
    JwtTokenSecretContent:
      type: object
      description: Secret representing JWT Token
      properties:
        type:
          $ref: "#/components/schemas/SecretType"
          description: Secret type
          examples:
          - apiKey
        content:
          type: string
          description: "JWT Token content in compact (dot-separated) format specified\
            \ in [RFC 7519](https://datatracker.ietf.org/doc/html/rfc7519#section-3)"
          example: eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
          minLength: 1
      required:
      - content
      - type
      title: JwtTokenSecretContent
    KeyStoreSecretContent:
      type: object
      description: Secret representing Key Store
      properties:
        type:
          $ref: "#/components/schemas/SecretType"
          description: Secret type
          examples:
          - apiKey
        keyStoreType:
          $ref: "#/components/schemas/KeyStoreType"
          description: Key Store type
        content:
          type: string
          description: BASE64 encoded content of key store
          minLength: 1
        password:
          type: string
          description: Password for key store
      required:
      - content
      - keyStoreType
      - password
      - type
      title: KeyStoreSecretContent
    KeyStoreType:
      type: string
      enum:
      - JKS
      - PKCS12
    KeyValueSecretContent:
      type: object
      description: Secret representing key-value pairs
      properties:
        type:
          $ref: "#/components/schemas/SecretType"
          description: Secret type
          examples:
          - apiKey
        content:
          type: object
          additionalProperties: {}
          description: "Key-Value pairs stored as the secret content, represented\
            \ by JSON object"
      required:
      - content
      - type
      title: KeyValueSecretContent
    ObjectAttributeContentV2:
      type: object
      description: Object attribute content for data with custom structure
      properties:
        reference:
          type: string
          description: ContentV2 Reference
        data:
          description: Object attribute content data
      required:
      - data
    ObjectAttributeContentV3:
      type: object
      description: Object attribute content for data with custom structure
      properties:
        reference:
          type: string
          description: Content Reference
        data:
          description: Object attribute content data
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Content Type of the attribute
      required:
      - contentType
      - data
    PrivateKeySecretContent:
      type: object
      description: Secret representing private key
      properties:
        type:
          $ref: "#/components/schemas/SecretType"
          description: Secret type
          examples:
          - apiKey
        content:
          type: string
          description: BASE64 encoded content of key in PEM format
          minLength: 1
      required:
      - content
      - type
      title: PrivateKeySecretContent
    ProgrammingLanguageEnum:
      type: string
      enum:
      - apacheconf
      - bash
      - basic
      - c
      - csharp
      - cpp
      - css
      - docker
      - fsharp
      - gherkin
      - git
      - go
      - graphql
      - html
      - http
      - ini
      - java
      - javascript
      - json
      - kotlin
      - latex
      - lisp
      - makefile
      - markdown
      - matlab
      - nginx
      - objectivec
      - perl
      - php
      - powershell
      - properties
      - python
      - ruby
      - rust
      - smalltalk
      - sql
      - typescript
      - vbnet
      - xquery
      - xml
      - yaml
    ProtectionLevel:
      type: string
      enum:
      - none
      - encrypted
    RangeAttributeConstraint:
      type: object
      description: Range attribute constraint to specify boundaries for integer value
      properties:
        description:
          type: string
          description: Description of the constraint
        errorMessage:
          type: string
          description: Error message to be displayed for wrong data
        type:
          $ref: "#/components/schemas/AttributeConstraintType"
          description: Attribute Constraint Type
        data:
          $ref: "#/components/schemas/RangeAttributeConstraintData"
          description: Integer Range Attribute Constraint Data
      required:
      - type
    RangeAttributeConstraintData:
      type: object
      properties:
        from:
          type: integer
          format: int32
          description: Start of the range for validation
        to:
          type: integer
          format: int32
          description: End of the range for validation
    RegexpAttributeConstraint:
      type: object
      description: RegExp attribute constraint to restrict string value by regular
        expression
      properties:
        description:
          type: string
          description: Description of the constraint
        errorMessage:
          type: string
          description: Error message to be displayed for wrong data
        type:
          $ref: "#/components/schemas/AttributeConstraintType"
          description: Attribute Constraint Type
        data:
          type: string
          description: Regular Expression Attribute Constraint Data
      required:
      - type
    RequestAttribute:
      type: object
      description: Request attribute to send attribute content for object
      discriminator:
        propertyName: version
        mapping:
          v2: "#/components/schemas/RequestAttributeV2"
          v3: "#/components/schemas/RequestAttributeV3"
      oneOf:
      - $ref: "#/components/schemas/RequestAttributeV3"
      - $ref: "#/components/schemas/RequestAttributeV2"
      required:
      - contentType
      - name
      - uuid
      - version
    RequestAttributeV2:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          description: UUID of the Attribute
          example: b11c9be1-b619-4ef5-be1b-a1cd9ef265b7
        name:
          type: string
          description: Name of the Attribute
          examples:
          - Attribute
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Content Type of the Attribute
          examples:
          - Attribute
        content:
          type: array
          items:
            $ref: "#/components/schemas/BaseAttributeContentDtoV2"
        version:
          $ref: "#/components/schemas/AttributeVersion"
          description: Version of the Attribute
      required:
      - contentType
      - name
      - uuid
      - version
    RequestAttributeV3:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          description: UUID of the Attribute
          example: b11c9be1-b619-4ef5-be1b-a1cd9ef265b7
        name:
          type: string
          description: Name of the Attribute
          examples:
          - Attribute
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Content Type of the Attribute
          examples:
          - Attribute
        content:
          type: array
          items:
            $ref: "#/components/schemas/BaseAttributeContentDtoV3"
        version:
          $ref: "#/components/schemas/AttributeVersion"
          description: Version of the Attribute
      required:
      - contentType
      - name
      - uuid
      - version
    Resource:
      type: string
      enum:
      - NONE
      - ANY
      - dashboard
      - settings
      - auditLogs
      - credentials
      - connectors
      - attributes
      - jobs
      - proxies
      - users
      - roles
      - acmeAccounts
      - acmeProfiles
      - cboms
      - cryptoAssets
      - scepProfiles
      - cmpProfiles
      - authorities
      - raProfiles
      - certificates
      - certificateRequests
      - groups
      - complianceProfiles
      - discoveries
      - oids
      - entities
      - locations
      - tokenProfiles
      - tokens
      - keys
      - approvalProfiles
      - approvals
      - comments
      - notificationProfiles
      - notificationInstances
      - rules
      - actions
      - triggers
      - resources
      - resourceEvents
      - searchFilters
      - listViews
      - keyItems
      - platformEnums
      - notifications
      - conditions
      - executions
      - complianceRules
      - complianceGroups
      - customAttributes
      - globalMetadata
      - acmeOrders
      - acmeAuthorizations
      - acmeChallenges
      - cmpTransactions
      - endEntityProfiles
      - authenticationProviders
      - trustedCertificates
      - vaults
      - vaultProfiles
      - secrets
      - signingProfiles
      - signingRecords
      - timeQualityConfigurations
      - tspProfiles
      - tspProfileBasicCredentials
    ResourceCertificateContentData:
      type: object
      description: Content data for resource object attribute containing certificate
        content
      properties:
        uuid:
          type: string
          description: Resource identifier
          examples:
          - 7b55ge1c-844f-11dc-a8a3-0242ac120002
        name:
          type: string
          description: Resource name
          examples:
          - Main authority
        resource:
          $ref: "#/components/schemas/AttributeResource"
          description: Resource contained in data
          example: authorities
        certificateType:
          $ref: "#/components/schemas/CertificateType"
          description: Certificate type
        content:
          type: string
          description: Base64 encoded content of the certificate
      required:
      - name
      - resource
      - uuid
      title: ResourceCertificateContentData
    ResourceObjectContent:
      type: object
      description: Resource object attribute content carrying resource object data
      properties:
        reference:
          type: string
          description: Content Reference
        data:
          $ref: "#/components/schemas/ResourceObjectContentData"
          description: Resource Object content data
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Content Type of the attribute
      required:
      - contentType
      - data
    ResourceObjectContentData:
      type: object
      discriminator:
        propertyName: resource
        mapping:
          authorities: "#/components/schemas/ResourceSimpleContentData"
          entities: "#/components/schemas/ResourceSimpleContentData"
          locations: "#/components/schemas/ResourceSimpleContentData"
          credentials: "#/components/schemas/ResourceSimpleContentData"
          certificates: "#/components/schemas/ResourceCertificateContentData"
          secrets: "#/components/schemas/ResourceSecretContentData"
      oneOf:
      - $ref: "#/components/schemas/ResourceSimpleContentData"
      - $ref: "#/components/schemas/ResourceCertificateContentData"
      - $ref: "#/components/schemas/ResourceSecretContentData"
      required:
      - name
      - resource
      - uuid
    ResourceSecretContentData:
      type: object
      description: Content data for resource object attribute containing secret content
      properties:
        uuid:
          type: string
          description: Resource identifier
          examples:
          - 7b55ge1c-844f-11dc-a8a3-0242ac120002
        name:
          type: string
          description: Resource name
          examples:
          - Main authority
        resource:
          $ref: "#/components/schemas/AttributeResource"
          description: Resource contained in data
          example: authorities
        content:
          $ref: "#/components/schemas/SecretContent"
          description: Secret content of the resource object
      required:
      - name
      - resource
      - uuid
      title: ResourceSecretContentData
    ResourceSimpleContentData:
      type: object
      description: Content data for resource object defined by its attributes
      properties:
        resource:
          $ref: "#/components/schemas/AttributeResource"
          description: Resource contained in data
          example: authorities
        uuid:
          type: string
          description: Resource identifier
          examples:
          - 7b55ge1c-844f-11dc-a8a3-0242ac120002
        name:
          type: string
          description: Resource name
          examples:
          - Main authority
        attributes:
          type: array
          description: Attributes of the resource object
          items:
            $ref: "#/components/schemas/ResponseAttribute"
      required:
      - name
      - resource
      - uuid
      title: ResourceSimpleContentData
    ResponseAttribute:
      type: object
      description: Response attribute to send attribute content for object
      discriminator:
        propertyName: version
        mapping:
          v2: "#/components/schemas/ResponseAttributeV2"
          v3: "#/components/schemas/ResponseAttributeV3"
      oneOf:
      - $ref: "#/components/schemas/ResponseAttributeV2"
      - $ref: "#/components/schemas/ResponseAttributeV3"
      required:
      - contentType
      - label
      - name
      - type
      - uuid
      - version
    ResponseAttributeV2:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: "#/components/schemas/BaseAttributeContentDtoV2"
        uuid:
          type: string
          format: uuid
          description: UUID of the Attribute
          example: b11c9be1-b619-4ef5-be1b-a1cd9ef265b7
        name:
          type: string
          description: Name of the Attribute
          examples:
          - Attribute
        label:
          type: string
          description: Label of the the Attribute
          examples:
          - Attribute Name
        type:
          $ref: "#/components/schemas/AttributeType"
          description: Type of the Attribute
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Content Type of the Attribute
          examples:
          - Attribute
        version:
          $ref: "#/components/schemas/AttributeVersion"
          description: Version of the Attribute
      required:
      - contentType
      - label
      - name
      - type
      - uuid
      - version
    ResponseAttributeV3:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: "#/components/schemas/BaseAttributeContentDtoV3"
        uuid:
          type: string
          format: uuid
          description: UUID of the Attribute
          example: b11c9be1-b619-4ef5-be1b-a1cd9ef265b7
        name:
          type: string
          description: Name of the Attribute
          examples:
          - Attribute
        label:
          type: string
          description: Label of the the Attribute
          examples:
          - Attribute Name
        type:
          $ref: "#/components/schemas/AttributeType"
          description: Type of the Attribute
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Content Type of the Attribute
          examples:
          - Attribute
        version:
          $ref: "#/components/schemas/AttributeVersion"
          description: Version of the Attribute
      required:
      - contentType
      - label
      - name
      - type
      - uuid
      - version
    SecretAttributeContentData:
      type: object
      properties:
        secret:
          type: string
          description: Secret attribute data
        protectionLevel:
          $ref: "#/components/schemas/ProtectionLevel"
          description: Level of protection of the data
    SecretAttributeContentV2:
      type: object
      description: Secret attribute content carrying secrets with defined protection
        level
      properties:
        reference:
          type: string
          description: ContentV2 Reference
        data:
          $ref: "#/components/schemas/SecretAttributeContentData"
          description: Secret attribute content data
      required:
      - data
    SecretContent:
      type: object
      description: Secret content dependent on secret type
      discriminator:
        propertyName: type
        mapping:
          basicAuth: "#/components/schemas/BasicAuthSecretContent"
          apiKey: "#/components/schemas/ApiKeySecretContent"
          jwtToken: "#/components/schemas/JwtTokenSecretContent"
          privateKey: "#/components/schemas/PrivateKeySecretContent"
          secretKey: "#/components/schemas/SecretKeySecretContent"
          keyStore: "#/components/schemas/KeyStoreSecretContent"
          keyValue: "#/components/schemas/KeyValueSecretContent"
          generic: "#/components/schemas/GenericSecretContent"
      oneOf:
      - $ref: "#/components/schemas/BasicAuthSecretContent"
      - $ref: "#/components/schemas/ApiKeySecretContent"
      - $ref: "#/components/schemas/JwtTokenSecretContent"
      - $ref: "#/components/schemas/PrivateKeySecretContent"
      - $ref: "#/components/schemas/SecretKeySecretContent"
      - $ref: "#/components/schemas/KeyStoreSecretContent"
      - $ref: "#/components/schemas/KeyValueSecretContent"
      - $ref: "#/components/schemas/GenericSecretContent"
      required:
      - type
    SecretKeySecretContent:
      type: object
      description: Secret representing secret key
      properties:
        type:
          $ref: "#/components/schemas/SecretType"
          description: Secret type
          examples:
          - apiKey
        content:
          type: string
          description: BASE64 encoded binary (raw) content of key
          minLength: 1
      required:
      - content
      - type
      title: SecretKeySecretContent
    SecretType:
      type: string
      enum:
      - basicAuth
      - apiKey
      - jwtToken
      - privateKey
      - secretKey
      - keyStore
      - keyValue
      - generic
    StringAttributeContentV2:
      type: object
      description: String attribute content
      properties:
        reference:
          type: string
          description: ContentV2 Reference
        data:
          type: string
          description: String attribute value
      required:
      - data
    StringAttributeContentV3:
      type: object
      description: String attribute content
      properties:
        reference:
          type: string
          description: Content Reference
        data:
          type: string
          description: String attribute value
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Content Type of the attribute
      required:
      - contentType
      - data
    TextAttributeContentV2:
      type: object
      description: Text attribute content used to store longer formatted strings
      properties:
        reference:
          type: string
          description: ContentV2 Reference
        data:
          type: string
          description: Text attribute value
      required:
      - data
    TextAttributeContentV3:
      type: object
      description: Text attribute content used to store longer formatted strings
      properties:
        reference:
          type: string
          description: Content Reference
        data:
          type: string
          description: Text attribute value
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Content Type of the attribute
      required:
      - contentType
      - data
    TimeAttributeContentV2:
      type: object
      description: Time attribute content in predefined format
      properties:
        reference:
          type: string
          description: ContentV2 Reference
        data:
          type: string
          description: Time attribute value in format HH:mm:ss
      required:
      - data
    TimeAttributeContentV3:
      type: object
      description: Time attribute content in predefined format
      properties:
        reference:
          type: string
          description: Content Reference
        data:
          type: string
          description: Time attribute value in format HH:mm:ss
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Content Type of the attribute
      required:
      - contentType
      - data
    UuidDto:
      type: object
      properties:
        uuid:
          type: string
          description: Object identifier
      required:
      - uuid
    ErrorMessageDto:
      type: object
      properties:
        message:
          type: string
          description: Error message detail
          examples:
          - Error message
      required:
      - message
    AuthenticationServiceExceptionDto:
      type: object
      properties:
        statusCode:
          type: integer
          format: int32
          description: Status code of the HTTP Request
        code:
          type: string
          description: Code of the result
        message:
          type: string
          description: Exception message
      required:
      - code
      - message
      - statusCode
    ScheduleDiscoveryDto:
      type: object
      properties:
        jobName:
          type: string
        cronExpression:
          type: string
        oneTime:
          type: boolean
        request:
          $ref: "#/components/schemas/DiscoveryDto"
    FilterConditionOperator:
      type: string
      enum:
      - EQUALS
      - NOT_EQUALS
      - GREATER
      - GREATER_OR_EQUAL
      - LESSER
      - LESSER_OR_EQUAL
      - CONTAINS
      - NOT_CONTAINS
      - STARTS_WITH
      - ENDS_WITH
      - EMPTY
      - NOT_EMPTY
      - IN_NEXT
      - IN_PAST
      - MATCHES
      - NOT_MATCHES
      - COUNT_EQUAL
      - COUNT_NOT_EQUAL
      - COUNT_GREATER_THAN
      - COUNT_LESS_THAN
    FilterFieldSource:
      type: string
      enum:
      - meta
      - custom
      - data
      - property
    SearchColumnRequestDto:
      type: object
      properties:
        fieldSource:
          $ref: "#/components/schemas/FilterFieldSource"
          description: Field source of the column
        fieldIdentifier:
          type: string
          description: "Field identifier of the column. Available fields with their\
            \ identifiers can be retrieved from the resource's searchable-fields operation,\
            \ for example `GET /v1/certificates/search` or `GET /v2/connectors/search`;\
            \ only fields marked as displayable may be requested as a column."
          minLength: 1
      required:
      - fieldIdentifier
      - fieldSource
    SearchFilterRequestDto:
      type: object
      properties:
        fieldSource:
          $ref: "#/components/schemas/FilterFieldSource"
          description: Field group of search filter
        fieldIdentifier:
          type: string
          description: "Field identifier of search filter. List of available fields\
            \ with their identifiers can be retrieved from the resource's searchable-fields\
            \ operation, e.g.: [**GET /v1/certificates/search**](../core-certificate/#tag/Certificate-Inventory/operation/getSearchableFieldInformation)"
          minLength: 1
        condition:
          $ref: "#/components/schemas/FilterConditionOperator"
          description: Condition for the search filter
        value:
          description: Value to match
      required:
      - condition
      - fieldIdentifier
      - fieldSource
    SearchRequestDto:
      type: object
      properties:
        filters:
          type: array
          description: Certificate filter input
          items:
            $ref: "#/components/schemas/SearchFilterRequestDto"
        itemsPerPage:
          type: integer
          format: int32
          default: 10
          description: Number of entries per page
          maximum: 1000
        pageNumber:
          type: integer
          format: int32
          default: 1
          description: Page number for the request
        sort:
          $ref: "#/components/schemas/SearchSortRequestDto"
          description: "Ordering of the whole result set. When omitted, the endpoint's\
            \ own default ordering applies, unchanged from before this field existed."
        columns:
          type: array
          description: "Fields to return as columns. When omitted, the response carries\
            \ the endpoint's full default shape, unchanged from before this field\
            \ existed. Requesting attribute-sourced fields adds their values to each\
            \ returned object."
          items:
            $ref: "#/components/schemas/SearchColumnRequestDto"
    SearchSortRequestDto:
      type: object
      properties:
        fieldSource:
          $ref: "#/components/schemas/FilterFieldSource"
          description: Field source of the field to sort by
        fieldIdentifier:
          type: string
          description: "Field identifier of the field to sort by. Available fields\
            \ with their identifiers can be retrieved from the resource's searchable-fields\
            \ operation, for example `GET /v1/certificates/search` or `GET /v2/connectors/search`;\
            \ only fields marked as sortable may be sorted by."
          minLength: 1
        direction:
          $ref: "#/components/schemas/SortDirection"
          description: Direction of the ordering
      required:
      - direction
      - fieldIdentifier
      - fieldSource
    SortDirection:
      type: string
      enum:
      - asc
      - desc
    ConnectorInterface:
      type: string
      enum:
      - info
      - health
      - metrics
      - attributes
      - authority
      - discovery
      - entity
      - compliance
      - cryptography
      - notification
      - secret
      - signatureFormatting
      - cadesFormatting
      - jadesFormatting
      - padesFormatting
      - xadesFormatting
    ConnectorInterfaceDto:
      type: object
      description: "An interface a connector implements: its code, its version, and\
        \ the features it supports. The version decides which generation of the provider\
        \ contract Core speaks to that connector."
      properties:
        uuid:
          type: string
          format: uuid
          description: UUID of the connector interface
        code:
          $ref: "#/components/schemas/ConnectorInterface"
          description: Code of the implemented connector interface
        version:
          type: string
          description: Version of the implemented connector interface
        features:
          type: array
          description: Features supported by the connector interface
          items:
            $ref: "#/components/schemas/FeatureFlag"
      required:
      - code
      - uuid
      - version
    DiscoveryListDto:
      type: object
      properties:
        uuid:
          type: string
          description: Object identifier
          examples:
          - 7b55ge1c-844f-11dc-a8a3-0242ac120002
        name:
          type: string
          description: Object Name
          examples:
          - Name
        kind:
          type: string
          description: "Discovery kind. Absent for a v2 run, which has none."
          examples:
          - IP-HostName
        status:
          $ref: "#/components/schemas/DiscoveryStatus"
        startTime:
          type:
          - string
          - "null"
          format: date-time
          description: When the discovery started
        endTime:
          type:
          - string
          - "null"
          format: date-time
          description: When the discovery finished
        totalCertificatesDiscovered:
          type: integer
          format: int32
          default: 0
          description: Certificates this discovery found and saved
        totalItemsDiscovered:
          type: integer
          format: int64
          description: "Number of items discovered, across all resource types"
        resources:
          type: array
          description: Resource types the discovery targets
          items:
            $ref: "#/components/schemas/Resource"
        connectorUuid:
          type: string
          description: UUID of the Discovery Provider
        connectorName:
          type: string
          description: Name of the Discovery Provider
        connectorInterface:
          $ref: "#/components/schemas/ConnectorInterfaceDto"
          description: "The connector interface the run is driven through. Absent\
            \ for a v1 run, and for an ended run whose connector was deleted."
        attributeValues:
          type: object
          additionalProperties:
            type: object
            additionalProperties:
              type: array
              items:
                $ref: "#/components/schemas/BaseAttributeContentDtoV3"
          description: "Values of the attribute-sourced fields requested as columns,\
            \ keyed by field source and then by field identifier. Present only when\
            \ the listing request asked for attribute-sourced columns; a field the\
            \ object has no value for is absent rather than empty, and a multi-valued\
            \ attribute arrives in its stored item_order."
          example:
            custom:
              businessUnit|STRING:
              - contentType: string
                reference: Payments
                data: payments
              environment|STRING:
              - contentType: string
                reference: Production
                data: production
              - contentType: string
                reference: Disaster recovery
                data: disaster-recovery
      required:
      - connectorName
      - connectorUuid
      - name
      - resources
      - status
      - totalItemsDiscovered
      - uuid
    DiscoveryResponseDto:
      type: object
      properties:
        discoveries:
          type: array
          description: Discoveries
          items:
            $ref: "#/components/schemas/DiscoveryListDto"
        itemsPerPage:
          type: integer
          format: int32
          description: Number of entries per page
        pageNumber:
          type: integer
          format: int32
          description: Page number for the request
        totalPages:
          type: integer
          format: int32
          description: Number of pages available
        totalItems:
          type: integer
          format: int64
          description: Number of items available
      required:
      - discoveries
      - itemsPerPage
      - pageNumber
      - totalItems
      - totalPages
    DiscoveryStatus:
      type: string
      enum:
      - inProgress
      - processing
      - failed
      - completed
      - warning
      - stopped
      - cancelled
    FeatureFlag:
      type: string
      enum:
      - stateless
      - openMetrics
      - asynchronous
      - keyImport
      - keyExport
      - secretVersioning
      - secretRotation
      - contentSigning
      - levelTimestamped
      - levelLongTerm
      - levelArchival
      - timestamping
      - certificateRegistration
      - certificateStatusPolling
      - certificateRequestStructured
      - certificateIdentityOverride
      - discoveryStopResume
    DiscoveryDetailDto:
      type: object
      properties:
        uuid:
          type: string
          description: Object identifier
          examples:
          - 7b55ge1c-844f-11dc-a8a3-0242ac120002
        name:
          type: string
          description: Object Name
          examples:
          - Name
        kind:
          type: string
          description: "Discovery kind. Absent for a v2 run, which has none."
          examples:
          - IP-HostName
        status:
          $ref: "#/components/schemas/DiscoveryStatus"
        connectorStatus:
          $ref: "#/components/schemas/DiscoveryStatus"
        message:
          type: string
          description: Why the discovery is in its current status
          examples:
          - Failed due to network connectivity issues
        startTime:
          type:
          - string
          - "null"
          format: date-time
          description: When the discovery started
        endTime:
          type:
          - string
          - "null"
          format: date-time
          description: When the discovery finished
        totalCertificatesDiscovered:
          type: integer
          format: int32
          default: 0
          description: Certificates this discovery found and saved
        connectorTotalCertificatesDiscovered:
          type: integer
          format: int32
          default: 0
          description: "Certificate items the Discovery Provider reported: a certificate\
            \ found on several hosts counts once per host, unlike in totalCertificatesDiscovered."
        connectorUuid:
          type: string
          description: UUID of the Discovery Provider
        connectorName:
          type: string
          description: Name of the Discovery Provider
        connectorInterface:
          $ref: "#/components/schemas/ConnectorInterfaceDto"
          description: "The connector interface the run is driven through. Absent\
            \ for a v1 run, and for an ended run whose connector was deleted."
        attributes:
          type: array
          description: List of Discovery Attributes
          items:
            $ref: "#/components/schemas/ResponseAttribute"
        customAttributes:
          type: array
          description: List of Custom Attributes
          items:
            $ref: "#/components/schemas/ResponseAttribute"
        metadata:
          type: array
          description: Metadata of the Discovery
          items:
            $ref: "#/components/schemas/MetadataResponseDto"
        triggers:
          type: array
          description: List of associated triggers
          items:
            $ref: "#/components/schemas/TriggerDto"
        resources:
          type: array
          description: "Resource types the run targets, as resource codes. Always\
            \ present; a v1 run reports [\"certificates\"]."
          items:
            $ref: "#/components/schemas/Resource"
        progress:
          $ref: "#/components/schemas/DiscoveryProgressDto"
          description: Progress the Discovery Provider last reported. Omitted for
            a v1 run and until the provider reports any.
        runMessageCount:
          type: integer
          format: int64
          description: "Number of entries in the run messages listing. Repeats are\
            \ aggregated, so it counts kinds of problem, and a non-zero count does\
            \ not mean the run failed. For a v1 run it is 0 unless the run's metadata\
            \ could not be stored."
        itemsDiscovered:
          type: integer
          format: int64
          description: "Items received from the Discovery Provider, across all resource\
            \ types. Usually what the items listing returns; larger when an item could\
            \ not be kept, being malformed or already collected. Absent for a v1 run,\
            \ and for one whose connector was deleted before any item arrived."
        itemsNewlyDiscovered:
          type: integer
          format: int64
          description: "Items that were new to the inventory when staged. Counted\
            \ per item, so a certificate found on two hosts counts twice."
        itemsProcessed:
          type: integer
          format: int64
          description: Newly discovered items imported cleanly. itemsNewlyDiscovered
            minus this and itemsFailed is what is still to import.
        itemsFailed:
          type: integer
          format: int64
          description: "Newly discovered items the platform could not import, each\
            \ with its reason in the items listing. A discovery with failed items\
            \ ends with a warning, not a failure."
        stoppable:
          type: boolean
          description: "Whether the run can be stopped and resumed; false for a v1\
            \ run. The status decides which applies now: stop while in progress, resume\
            \ while stopped. The connector can still refuse a stop past the point\
            \ of no return."
      required:
      - attributes
      - connectorName
      - connectorStatus
      - connectorUuid
      - itemsFailed
      - itemsNewlyDiscovered
      - itemsProcessed
      - name
      - resources
      - runMessageCount
      - status
      - stoppable
      - triggers
      - uuid
    DiscoveryProgressDto:
      type: object
      description: "How far a discovery has got: the provider's work done so far,\
        \ and optionally the items found per resource type."
      properties:
        targetsProcessed:
          type: integer
          format: int64
          description: "Targets attempted so far, whatever their outcome. A target\
            \ is a unit of work a person would recognise, such as an address and port,\
            \ a CA, a CA and template, a mount or a report. Targets that yielded items\
            \ are the remainder after targetsEmpty and targetsFailed. Omitted if the\
            \ provider cannot count its work. A provider whose unit would only be\
            \ a page of search results omits all target counters and reports byResource\
            \ and phase instead."
        targetsTotal:
          type: integer
          format: int64
          description: "Targets the discovery will attempt in total: exact, or an\
            \ estimate that may change. Omitted when unknown, and a client must then\
            \ not guess a percentage."
        targetsFailed:
          type: integer
          format: int64
          description: "Targets the provider expected to read and could not, such\
            \ as access refused, a source it was configured to read being unreachable,\
            \ or an unreadable answer. Part of targetsProcessed, never also counted\
            \ as empty. The discovery does not fail for them, but a run that otherwise\
            \ completes ends with a warning."
        targetsEmpty:
          type: integer
          format: int64
          description: "Targets attempted that held nothing to discover, such as an\
            \ empty mount, template or report, or a target the provider only guessed\
            \ at, like an address in a swept range, that does not answer. Part of\
            \ targetsProcessed, never also counted as failed: an empty target is a\
            \ normal outcome. Omitted if the provider does not tell empty targets\
            \ apart; the remainder in targetsProcessed then mixes empty targets with\
            \ those that yielded items."
        phase:
          type: string
          description: "What the provider is doing, as free text (e.g. \"scanning\"\
            ). Omitted if it has none."
        byResource:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/DiscoveryResourceProgressDto"
          description: Items found per resource type. Present only if the provider
            reports the breakdown.
          propertyNames:
            $ref: "#/components/schemas/Resource"
        updatedAt:
          type: string
          format: date-time
          description: "When the platform recorded this report. Polling backs off\
            \ to several minutes, so the counters can be older than the response carrying\
            \ them. Set by the platform; a value sent by the provider is ignored."
          examples:
          - 2026-09-13T14:32:07.000+02:00
          readOnly: true
    DiscoveryResourceProgressDto:
      type: object
      description: "Items found for one resource type, keyed by resource code in byResource.\
        \ Every field is optional, but a provider with nothing to report MUST leave\
        \ the entry out rather than send an empty object."
      properties:
        produced:
          type: integer
          format: int64
          description: Items found so far. Omitted if the provider cannot count them.
        totalEstimate:
          type: integer
          format: int64
          description: Estimated total for the whole discovery. Omitted if the provider
            cannot estimate it.
        phase:
          type: string
          description: "What the provider is doing with this resource type, as free\
            \ text. Omitted if it has none."
    MetadataResponseDto:
      type: object
      description: Metadata response attributes with their source connector
      properties:
        connectorUuid:
          type: string
          description: UUID of the Connector
        connectorName:
          type: string
          description: Name of the Connector
        sourceObjectType:
          $ref: "#/components/schemas/Resource"
          description: Source Object Type
        items:
          type: array
          description: List of Metadata
          items:
            $ref: "#/components/schemas/ResponseMetadataDto"
      required:
      - items
    NameAndUuidDto:
      type: object
      properties:
        uuid:
          type: string
          description: Object identifier
          examples:
          - 7b55ge1c-844f-11dc-a8a3-0242ac120002
        name:
          type: string
          description: Object Name
          examples:
          - Name
      required:
      - name
      - uuid
    ResourceEvent:
      type: string
      enum:
      - certificate_status_changed
      - certificate_action_performed
      - certificate_discovered
      - certificate_expiring
      - certificate_not_compliant
      - certificate_uploaded
      - certificate_registered
      - discovery_finished
      - approval_requested
      - approval_closed
      - comment_created
      - comment_resolved
      - cbom_synced
      - crypto_asset_pqc_not_ready
      - scheduled_job_finished
    ResponseMetadataDto:
      type: object
      description: Request attribute to send attribute content for object
      discriminator:
        propertyName: version
        mapping:
          v2: "#/components/schemas/ResponseMetadataV2"
          v3: "#/components/schemas/ResponseMetadataV3"
      oneOf:
      - $ref: "#/components/schemas/ResponseMetadataV3"
      - $ref: "#/components/schemas/ResponseMetadataV2"
      required:
      - contentType
      - label
      - name
      - sourceObjects
      - type
      - version
    ResponseMetadataV2:
      type: object
      description: Response metadata attribute instance with content
      properties:
        sourceObjects:
          type: array
          description: Source Objects
          items:
            $ref: "#/components/schemas/NameAndUuidDto"
        uuid:
          type: string
          format: uuid
          description: UUID of the Attribute
          example: b11c9be1-b619-4ef5-be1b-a1cd9ef265b7
        name:
          type: string
          description: Name of the Attribute
          examples:
          - Attribute
        label:
          type: string
          description: Label of the the Attribute
          examples:
          - Attribute Name
        type:
          $ref: "#/components/schemas/AttributeType"
          description: Type of the Attribute
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Content Type of the Attribute
          examples:
          - Attribute
        content:
          type: array
          items:
            $ref: "#/components/schemas/BaseAttributeContentDtoV2"
        version:
          $ref: "#/components/schemas/AttributeVersion"
          description: Version of the Attribute
          examples:
          - Attribute
      required:
      - contentType
      - label
      - name
      - sourceObjects
      - type
      - version
    ResponseMetadataV3:
      type: object
      description: Response metadata attribute instance with content
      properties:
        sourceObjects:
          type: array
          description: Source Objects
          items:
            $ref: "#/components/schemas/NameAndUuidDto"
        uuid:
          type: string
          format: uuid
          description: UUID of the Attribute
          example: b11c9be1-b619-4ef5-be1b-a1cd9ef265b7
        name:
          type: string
          description: Name of the Attribute
          examples:
          - Attribute
        label:
          type: string
          description: Label of the the Attribute
          examples:
          - Attribute Name
        type:
          $ref: "#/components/schemas/AttributeType"
          description: Type of the Attribute
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Content Type of the Attribute
          examples:
          - Attribute
        content:
          type: array
          items:
            $ref: "#/components/schemas/BaseAttributeContentDtoV3"
        version:
          $ref: "#/components/schemas/AttributeVersion"
          description: Version of the Attribute
          examples:
          - Attribute
      required:
      - contentType
      - label
      - name
      - sourceObjects
      - type
      - version
    TriggerDto:
      type: object
      properties:
        uuid:
          type: string
          description: Object identifier
          examples:
          - 7b55ge1c-844f-11dc-a8a3-0242ac120002
        name:
          type: string
          description: Object Name
          examples:
          - Name
        description:
          type: string
          description: Description of the trigger
        type:
          $ref: "#/components/schemas/TriggerType"
          description: Type of the trigger
        resource:
          $ref: "#/components/schemas/Resource"
          description: Resource associated with the trigger
        ignoreTrigger:
          type: boolean
          description: "Flag if to ignore object when trigger rules are matched and\
            \ do not perform any actions and stop evaluating other triggers. Based\
            \ on context could have other implications to object processing. If ignore\
            \ is set, trigger does not have any actions."
        event:
          $ref: "#/components/schemas/ResourceEvent"
          description: Event that trigger can be assigned to
      required:
      - ignoreTrigger
      - name
      - resource
      - uuid
    TriggerType:
      type: string
      enum:
      - event
      - manual
    DiscoveryMessageDto:
      type: object
      description: One kind of problem a discovery run recorded and how often it happened.
        Repeats are counted on the existing entry.
      properties:
        severity:
          $ref: "#/components/schemas/DiscoveryMessageSeverity"
        code:
          type: string
          description: "Kind of problem, from a closed vocabulary. Entries aggregate\
            \ by code and message, so several entries can share a code."
          maxLength: 64
        message:
          type: string
          description: "The problem, written by the platform for a person to read;\
            \ never a raw exception message or text from the Discovery Provider."
        occurrences:
          type: integer
          format: int64
          description: How many times this problem occurred during the run. At least
            1.
          minimum: 1
        firstSeenAt:
          type: string
          format: date-time
          description: When this problem was first seen during the run.
        lastSeenAt:
          type: string
          format: date-time
          description: When this problem was last seen during the run; equal to firstSeenAt
            if it happened once.
      required:
      - code
      - firstSeenAt
      - lastSeenAt
      - message
      - occurrences
      - severity
    DiscoveryMessageSeverity:
      type: string
      enum:
      - info
      - warning
      - error
    PaginationResponseDtoDiscoveryMessageDto:
      type: object
      properties:
        items:
          type: array
          description: Items returned
          items:
            $ref: "#/components/schemas/DiscoveryMessageDto"
        itemsPerPage:
          type: integer
          format: int32
          description: Number of entries per page
        pageNumber:
          type: integer
          format: int32
          description: Page number for the request
        totalPages:
          type: integer
          format: int32
          description: Number of pages available
        totalItems:
          type: integer
          format: int64
          description: Number of items available
      required:
      - items
      - itemsPerPage
      - pageNumber
      - totalItems
      - totalPages
    DiscoveredCertificateDto:
      type: object
      properties:
        resource:
          $ref: "#/components/schemas/Resource"
        certificateData:
          type: string
          description: Base64-encoded certificate data (DER)
          minLength: 1
      required:
      - certificateData
      - resource
    DiscoveredItemPayload:
      type: object
      description: "Resource-specific payload of a discovered item. Its required resource\
        \ property is the discriminator: the resource code selects the payload shape."
      discriminator:
        propertyName: resource
        mapping:
          certificates: "#/components/schemas/DiscoveredCertificateDto"
          keys: "#/components/schemas/DiscoveredKeyDto"
      oneOf:
      - $ref: "#/components/schemas/DiscoveredCertificateDto"
      - $ref: "#/components/schemas/DiscoveredKeyDto"
      required:
      - resource
    DiscoveredKeyDto:
      type: object
      description: "A discovered key: its existence, intrinsic metadata and at most\
        \ its public part. Private, secret and split key material MUST NOT be sent,\
        \ and a PRIVATE_KEY, SECRET_KEY or SPLIT_KEY key MUST omit publicKey and publicKeyFormat."
      properties:
        resource:
          $ref: "#/components/schemas/Resource"
        type:
          $ref: "#/components/schemas/KeyType"
          description: "Key type: public, private, secret or split"
        algorithm:
          $ref: "#/components/schemas/KeyAlgorithm"
          description: Cryptographic algorithm of the key
        length:
          type: integer
          format: int32
          description: Key length in bits
        fingerprint:
          type: string
          description: "Intrinsic fingerprint identifying the same key across runs,\
            \ connectors and certificates, without exposing key material"
        publicKeyFormat:
          $ref: "#/components/schemas/KeyFormat"
          description: "Format of publicKey, typically SubjectPublicKeyInfo. Present\
            \ only with publicKey."
        publicKey:
          type: string
          description: "Base64-encoded public key. Absent for a PRIVATE_KEY, SECRET_KEY\
            \ or SPLIT_KEY key."
      required:
      - algorithm
      - resource
      - type
    DiscoveryItemDto:
      type: object
      properties:
        uuid:
          type: string
          description: UUID of the staged item
        inventory:
          $ref: "#/components/schemas/NameAndUuidDto"
          description: "The inventory object the item became, of the item's resource.\
            \ A certificate links as soon as one with the same content exists, even\
            \ before processing; other resources link once processed, and never if\
            \ processing failed."
        sequence:
          type: integer
          format: int64
          description: "Position of the item in the run: the provider's sequence in\
            \ a v2 run, the staging order in a v1 run."
        uniqueRef:
          type: string
          description: "Identifies the item within the run, unique per resource type:\
            \ assigned by the provider in a v2 run, the certificate fingerprint in\
            \ a v1 run."
        discoveredAt:
          type: string
          format: date-time
          description: When the Discovery Provider reported discovering this item
        resource:
          $ref: "#/components/schemas/Resource"
        payload:
          $ref: "#/components/schemas/DiscoveredItemPayload"
          description: "What the Discovery Provider reported for the item, typed by\
            \ its resource. Absent when the stored payload can no longer be decoded;\
            \ the item is still listed."
        newlyDiscovered:
          type: boolean
          description: Whether the object was new to the inventory when this run staged
            it
        processed:
          type: boolean
          description: Whether processing of the item has been attempted; processedError
            and inventory give the outcome.
        processedError:
          type: string
          description: "A reason recorded against the item, not necessarily a failure.\
            \ A processed item can carry one, and so can one never attempted."
        meta:
          type: array
          description: "Metadata the Discovery Provider reported, such as where the\
            \ item was found. Absent when there is none."
          items:
            $ref: "#/components/schemas/MetadataAttribute"
      required:
      - newlyDiscovered
      - processed
      - resource
      - sequence
      - uniqueRef
      - uuid
    KeyAlgorithm:
      type: string
      enum:
      - RSA
      - ECDSA
      - FALCON
      - ML-DSA
      - SLH-DSA
      - ML-KEM
      - CRYSTALS-Dilithium
      - SPHINCS+
      - AES
      - Unknown
    KeyFormat:
      type: string
      enum:
      - Raw
      - SubjectPublicKeyInfo
      - PrivateKeyInfo
      - EncryptedPrivateKeyInfo
      - Custom
    KeyType:
      type: string
      enum:
      - Secret
      - Public
      - Private
      - Split
    MetadataAttribute:
      description: Metadata Attribute definition
      oneOf:
      - $ref: "#/components/schemas/MetadataAttributeV2"
      - $ref: "#/components/schemas/MetadataAttributeV3"
    MetadataAttributeProperties:
      type: object
      properties:
        label:
          type: string
          description: Friendly name of the the Attribute
          examples:
          - Attribute Name
        visible:
          type: boolean
          default: true
          description: "Boolean determining if the Attribute is visible and can be\
            \ displayed, otherwise it should be hidden to the user."
        group:
          type: string
          description: "Group of the Attribute, used for the logical grouping of the\
            \ Attribute"
          examples:
          - requiredAttributes
        global:
          type: boolean
          default: false
          description: Boolean determining if the Metadata is a global metadata.
        overwrite:
          type: boolean
          default: false
          description: Boolean determining if the new metadata content should overwrite
            (replace) existing content instead of appending.
        protectionLevel:
          $ref: "#/components/schemas/ProtectionLevel"
          default: none
          description: Protection level of the attribute content
      required:
      - label
      - visible
    MetadataAttributeV2:
      type: object
      description: Info attribute contains content that is for metadata. Its content
        can not be edited and is not send in requests to store.
      properties:
        uuid:
          type: string
          description: UUID of the Attribute for unique identification
          example: b11c9be1-b619-4ef5-be1b-a1cd9ef265b7
        name:
          type: string
          description: Name of the Attribute that is used for identification
          examples:
          - Attribute
        description:
          type: string
          description: "Optional description of the Attribute, should contain helper\
            \ text on what is expected"
        version:
          type: integer
          format: int32
          description: Version of the attribute
        type:
          $ref: "#/components/schemas/AttributeType"
          description: Type of the Attribute
        content:
          type: array
          description: Content of the Attribute
          items:
            $ref: "#/components/schemas/BaseAttributeContentDtoV2"
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Type of the Content
        properties:
          $ref: "#/components/schemas/MetadataAttributeProperties"
          description: Properties of the Attributes
      required:
      - contentType
      - name
      - properties
      - type
      - uuid
      - version
    MetadataAttributeV3:
      type: object
      description: Info attribute contains content that is for metadata. Its content
        can not be edited and is not send in requests to store.
      properties:
        uuid:
          type: string
          description: UUID of the Attribute for unique identification
          example: b11c9be1-b619-4ef5-be1b-a1cd9ef265b7
        name:
          type: string
          description: Name of the Attribute that is used for identification
          examples:
          - Attribute
        description:
          type: string
          description: "Optional description of the Attribute, should contain helper\
            \ text on what is expected"
        version:
          type: integer
          format: int32
          description: Version of the attribute
        type:
          $ref: "#/components/schemas/AttributeType"
          description: Type of the Attribute
        content:
          type: array
          description: Content of the Attribute
          items:
            $ref: "#/components/schemas/BaseAttributeContentDtoV3"
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Type of the Content
        properties:
          $ref: "#/components/schemas/MetadataAttributeProperties"
          description: Properties of the Attributes
        schemaVersion:
          $ref: "#/components/schemas/AttributeVersion"
          description: Schema version of the Attribute
      required:
      - contentType
      - name
      - properties
      - schemaVersion
      - type
      - uuid
      - version
    PaginationResponseDtoDiscoveryItemDto:
      type: object
      properties:
        items:
          type: array
          description: Items returned
          items:
            $ref: "#/components/schemas/DiscoveryItemDto"
        itemsPerPage:
          type: integer
          format: int32
          description: Number of entries per page
        pageNumber:
          type: integer
          format: int32
          description: Page number for the request
        totalPages:
          type: integer
          format: int32
          description: Number of pages available
        totalItems:
          type: integer
          format: int64
          description: Number of items available
      required:
      - items
      - itemsPerPage
      - pageNumber
      - totalItems
      - totalPages
    DiscoveryCertificateDto:
      type: object
      properties:
        uuid:
          type: string
          description: UUID of the Certificate
        inventoryUuid:
          type: string
          description: UUID of the Certificate in Certificate inventory
        commonName:
          type: string
          description: Certificate common name
        serialNumber:
          type: string
          description: Certificate Serial Number
        issuerCommonName:
          type: string
          description: Issuer common name
        notBefore:
          type: string
          format: date-time
          description: Certificate validity start date
        notAfter:
          type: string
          format: date-time
          description: Certificate expiration date
        fingerprint:
          type: string
          description: SHA256 thumbprint of the certificate
        certificateContent:
          type: string
          description: Base64 encoded Certificate content
        newlyDiscovered:
          type: boolean
          description: Whether the certificate was new to the inventory when this
            discovery found it
        processed:
          type: boolean
          description: Whether processing of the certificate has been attempted; processedError
            gives the outcome.
        processedError:
          type: string
          description: "A reason recorded against the certificate, not necessarily\
            \ a failure: an imported certificate can carry one (its keys not all associated),\
            \ and so can one never attempted."
      required:
      - certificateContent
      - commonName
      - fingerprint
      - issuerCommonName
      - newlyDiscovered
      - notAfter
      - notBefore
      - processed
      - serialNumber
      - uuid
    DiscoveryCertificateResponseDto:
      type: object
      properties:
        certificates:
          type: array
          description: Certificates
          items:
            $ref: "#/components/schemas/DiscoveryCertificateDto"
        itemsPerPage:
          type: integer
          format: int32
          description: Number of entries per page
        pageNumber:
          type: integer
          format: int32
          description: Page number for the request
        totalPages:
          type: integer
          format: int32
          description: Number of pages available
        totalItems:
          type: integer
          format: int64
          description: Number of items available
      required:
      - certificates
      - itemsPerPage
      - pageNumber
      - totalItems
      - totalPages
    BaseAttributeDto:
      type: object
      description: Base Attribute definition
      oneOf:
      - $ref: "#/components/schemas/BaseAttributeDtoV2"
      - $ref: "#/components/schemas/BaseAttributeDtoV3"
      properties:
        uuid:
          type: string
          description: UUID of the Attribute for unique identification
          example: b11c9be1-b619-4ef5-be1b-a1cd9ef265b7
        name:
          type: string
          description: Name of the Attribute that is used for identification
          examples:
          - Attribute
        description:
          type: string
          description: "Optional description of the Attribute, should contain helper\
            \ text on what is expected"
        type:
          $ref: "#/components/schemas/AttributeType"
          description: Type of the Attribute
      required:
      - name
      - type
      - uuid
    BaseAttributeDtoV2:
      description: Base Attribute definition
      discriminator:
        propertyName: type
        mapping:
          data: "#/components/schemas/DataAttributeV2"
          info: "#/components/schemas/InfoAttributeV2"
          group: "#/components/schemas/GroupAttributeV2"
          meta: "#/components/schemas/MetadataAttributeV2"
          custom: "#/components/schemas/CustomAttributeV2"
      oneOf:
      - $ref: "#/components/schemas/DataAttributeV2"
      - $ref: "#/components/schemas/InfoAttributeV2"
      - $ref: "#/components/schemas/GroupAttributeV2"
      - $ref: "#/components/schemas/MetadataAttributeV2"
      - $ref: "#/components/schemas/CustomAttributeV2"
    BaseAttributeDtoV3:
      type: object
      description: Base Attribute definition
      discriminator:
        propertyName: type
        mapping:
          data: "#/components/schemas/DataAttributeV3"
          info: "#/components/schemas/InfoAttributeV3"
          group: "#/components/schemas/GroupAttributeV3"
          meta: "#/components/schemas/MetadataAttributeV3"
          custom: "#/components/schemas/CustomAttributeV3"
      oneOf:
      - $ref: "#/components/schemas/DataAttributeV3"
      - $ref: "#/components/schemas/InfoAttributeV3"
      - $ref: "#/components/schemas/GroupAttributeV3"
      - $ref: "#/components/schemas/MetadataAttributeV3"
      - $ref: "#/components/schemas/CustomAttributeV3"
      required:
      - schemaVersion
    CustomAttributeProperties:
      type: object
      properties:
        label:
          type: string
          description: Friendly name of the the Attribute
          examples:
          - Attribute Name
        visible:
          type: boolean
          default: true
          description: "Boolean determining if the Attribute is visible and can be\
            \ displayed, otherwise it should be hidden to the user."
        group:
          type: string
          description: "Group of the Attribute, used for the logical grouping of the\
            \ Attribute"
          examples:
          - requiredAttributes
        required:
          type: boolean
          default: false
          description: "Boolean determining if the Attribute is required. If true,\
            \ the Attribute must be provided."
        readOnly:
          type: boolean
          default: false
          description: "Boolean determining if the Attribute is read only. If true,\
            \ the Attribute content cannot be changed."
        list:
          type: boolean
          default: false
          description: Boolean determining if the Attribute contains list of values
            in the content
        multiSelect:
          type: boolean
          default: false
          description: Boolean determining if the Attribute can have multiple values
        extensibleList:
          type: boolean
          default: false
          description: Boolean determining if a list Attribute can have values other
            than predefined options
        protectionLevel:
          $ref: "#/components/schemas/ProtectionLevel"
          default: none
          description: Protection level of the attribute content
      required:
      - extensibleList
      - label
      - list
      - multiSelect
      - readOnly
      - required
      - visible
    CustomAttributeV2:
      type: object
      description: Custom attribute allows to store and transfer dynamic data. Its
        content can be edited and send in requests to store.
      properties:
        uuid:
          type: string
          description: UUID of the Attribute for unique identification
          example: b11c9be1-b619-4ef5-be1b-a1cd9ef265b7
        name:
          type: string
          description: Name of the Attribute that is used for identification
          examples:
          - Attribute
        description:
          type: string
          description: "Optional description of the Attribute, should contain helper\
            \ text on what is expected"
        version:
          type: integer
          format: int32
          description: Version of the attribute
        type:
          $ref: "#/components/schemas/AttributeType"
          description: Type of the Attribute
        content:
          type: array
          description: Content of the Attribute
          items:
            $ref: "#/components/schemas/BaseAttributeContentDtoV2"
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Type of the Content
        properties:
          $ref: "#/components/schemas/CustomAttributeProperties"
          description: Properties of the Attributes
      required:
      - contentType
      - name
      - properties
      - type
      - uuid
      - version
    CustomAttributeV3:
      type: object
      description: Custom attribute allows to store and transfer dynamic data. Its
        content can be edited and send in requests to store.
      properties:
        uuid:
          type: string
          description: UUID of the Attribute for unique identification
          example: b11c9be1-b619-4ef5-be1b-a1cd9ef265b7
        name:
          type: string
          description: Name of the Attribute that is used for identification
          examples:
          - Attribute
        description:
          type: string
          description: "Optional description of the Attribute, should contain helper\
            \ text on what is expected"
        version:
          type: integer
          format: int32
          description: Version of the attribute
        type:
          $ref: "#/components/schemas/AttributeType"
          description: Type of the Attribute
        content:
          type: array
          description: Content of the Attribute
          items:
            $ref: "#/components/schemas/BaseAttributeContentDtoV3"
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Type of the Content
        properties:
          $ref: "#/components/schemas/CustomAttributeProperties"
          description: Properties of the Attributes
        schemaVersion:
          $ref: "#/components/schemas/AttributeVersion"
          description: Schema version of the Attribute
      required:
      - contentType
      - name
      - properties
      - schemaVersion
      - type
      - uuid
      - version
    DataAttributeV3:
      type: object
      description: Data attribute allows to store and transfer dynamic data. Its content
        can be edited and send in requests to store.
      properties:
        uuid:
          type: string
          description: UUID of the Attribute for unique identification
          example: b11c9be1-b619-4ef5-be1b-a1cd9ef265b7
        name:
          type: string
          description: Name of the Attribute that is used for identification
          examples:
          - Attribute
        description:
          type: string
          description: "Optional description of the Attribute, should contain helper\
            \ text on what is expected"
        version:
          type: integer
          format: int32
          description: Version of the attribute
        type:
          $ref: "#/components/schemas/AttributeType"
          description: Type of the Attribute
        content:
          type: array
          description: Content of the Attribute
          items:
            $ref: "#/components/schemas/BaseAttributeContentDtoV3"
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Type of the Content
        properties:
          $ref: "#/components/schemas/DataAttributeProperties"
          description: Properties of the Attributes
        constraints:
          type: array
          description: Optional constraints used for validating the Attribute content
          items:
            $ref: "#/components/schemas/BaseAttributeConstraint"
        attributeCallback:
          $ref: "#/components/schemas/AttributeCallback"
          description: Optional definition of callback for getting the content of
            the Attribute based on the action
        schemaVersion:
          $ref: "#/components/schemas/AttributeVersion"
          description: Schema version of the Attribute
        fieldMapping:
          $ref: "#/components/schemas/FieldMapping"
          description: Declares which certificate (or other object) fields this attribute's
            value projects into; presence marks this attribute as a certificate request
            attribute
        valueSource:
          $ref: "#/components/schemas/ValueSource"
          description: Declares how Core resolves the content of this attribute; orthogonal
            to fieldMapping
      required:
      - contentType
      - name
      - properties
      - schemaVersion
      - type
      - uuid
      - version
    ExtendedKeyUsageMappedField:
      allOf:
      - $ref: "#/components/schemas/MappedField"
      description: "Maps an attribute to the Extended Key Usage extension; the permitted\
        \ purposes are the attribute's content, resolved against the EXTENDED_KEY_USAGE\
        \ OID registry"
      required:
      - fieldType
    ExtensionMappedField:
      allOf:
      - $ref: "#/components/schemas/MappedField"
      - type: object
        properties:
          extensionOid:
            type: string
            description: OID of the X.509 extension (dotted-decimal)
            minLength: 1
          criticalOverridable:
            type: boolean
            description: Whether the requester may override the default criticality
              of the extension
      description: Maps an attribute value to an X.509 extension
      required:
      - extensionOid
      - fieldType
    ExtensionValueEncoding:
      type: string
      enum:
      - UTF8String
      - IA5String
      - PrintableString
      - OctetString
      - BitString
      - DER
    FieldMapping:
      type: object
      description: Declares which certificate (or other object) fields an attribute
        value projects into
      properties:
        objectType:
          $ref: "#/components/schemas/ObjectType"
          description: Object type this mapping applies to
        fields:
          type: array
          description: "One or more target fields (supports 1-to-many, e.g. CN + dNSName\
            \ from a single attribute)"
          items:
            oneOf:
            - $ref: "#/components/schemas/ExtendedKeyUsageMappedField"
            - $ref: "#/components/schemas/ExtensionMappedField"
            - $ref: "#/components/schemas/KeyUsageMappedField"
            - $ref: "#/components/schemas/RdnMappedField"
            - $ref: "#/components/schemas/SanMappedField"
          minItems: 1
      required:
      - fields
      - objectType
    FieldSource:
      type: string
      enum:
      - csr
      - platform
      - csrThenPlatform
    FieldType:
      type: string
      enum:
      - rdn
      - san
      - extension
      - keyUsage
      - extendedKeyUsage
    GeneralNameType:
      type: string
      enum:
      - dns
      - email
      - ip
      - uri
      - otherName
      - directoryName
      - registeredId
    GroupAttributeV2:
      type: object
      description: Group attribute and its content represents dynamic list of additional
        attributes retrieved by callback. Its content can not be edited and is not
        send in requests to store.
      properties:
        uuid:
          type: string
          description: UUID of the Attribute for unique identification
          example: b11c9be1-b619-4ef5-be1b-a1cd9ef265b7
        name:
          type: string
          description: Name of the Attribute that is used for identification
          examples:
          - Attribute
        description:
          type: string
          description: "Optional description of the Attribute, should contain helper\
            \ text on what is expected"
        version:
          type: integer
          format: int32
          description: Version of the attribute
        content:
          type: array
          description: List of all different types of attributes
          items:
            $ref: "#/components/schemas/BaseAttributeDtoV2"
            description: Base Attribute definition
        type:
          $ref: "#/components/schemas/AttributeType"
          description: Type of the Attribute
        attributeCallback:
          $ref: "#/components/schemas/AttributeCallback"
          description: Optional definition of callback for getting the content of
            the Attribute based on the action
      required:
      - name
      - type
      - uuid
      - version
    GroupAttributeV3:
      type: object
      description: Group attribute and its content represents dynamic list of additional
        attributes retrieved by callback. Its content can not be edited and is not
        send in requests to store.
      properties:
        schemaVersion:
          $ref: "#/components/schemas/AttributeVersion"
          description: Version of the Attribute
          example: 3
        uuid:
          type: string
          description: UUID of the Attribute for unique identification
          example: b11c9be1-b619-4ef5-be1b-a1cd9ef265b7
        name:
          type: string
          description: Name of the Attribute that is used for identification
          examples:
          - Attribute
        description:
          type: string
          description: "Optional description of the Attribute, should contain helper\
            \ text on what is expected"
        content:
          type: array
          description: List of all different types of attributes
          items:
            $ref: "#/components/schemas/BaseAttributeDto"
        version:
          type: integer
          format: int32
        type:
          $ref: "#/components/schemas/AttributeType"
          description: Type of the Attribute
        attributeCallback:
          $ref: "#/components/schemas/AttributeCallback"
          description: Optional definition of callback for getting the content of
            the Attribute based on the action
      required:
      - name
      - schemaVersion
      - type
      - uuid
    InfoAttributeProperties:
      type: object
      properties:
        label:
          type: string
          description: Friendly name of the the Attribute
          examples:
          - Attribute Name
        visible:
          type: boolean
          default: true
          description: "Boolean determining if the Attribute is visible and can be\
            \ displayed, otherwise it should be hidden to the user."
        group:
          type: string
          description: "Group of the Attribute, used for the logical grouping of the\
            \ Attribute"
          examples:
          - requiredAttributes
      required:
      - label
      - visible
    InfoAttributeV2:
      type: object
      description: Info attribute contains content that is for information purpose
        or represents additional information for object (metadata). Its content can
        not be edited and is not send in requests to store.
      properties:
        uuid:
          type: string
          description: UUID of the Attribute for unique identification
          example: b11c9be1-b619-4ef5-be1b-a1cd9ef265b7
        name:
          type: string
          description: Name of the Attribute that is used for identification
          examples:
          - Attribute
        description:
          type: string
          description: "Optional description of the Attribute, should contain helper\
            \ text on what is expected"
        version:
          type: integer
          format: int32
          description: Version of the attribute
        content:
          type: array
          description: Content of the Attribute
          items:
            $ref: "#/components/schemas/BaseAttributeContentDtoV2"
        type:
          $ref: "#/components/schemas/AttributeType"
          description: Type of the Attribute
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Type of the Content
        properties:
          $ref: "#/components/schemas/InfoAttributeProperties"
          description: Properties of the Attributes
      required:
      - content
      - contentType
      - name
      - properties
      - type
      - uuid
      - version
    InfoAttributeV3:
      type: object
      description: Info attribute contains content that is for information purpose
        or represents additional information for object (metadata). Its content can
        not be edited and is not send in requests to store.
      properties:
        schemaVersion:
          $ref: "#/components/schemas/AttributeVersion"
          description: Version of the Attribute
          example: 3
        uuid:
          type: string
          description: UUID of the Attribute for unique identification
          example: b11c9be1-b619-4ef5-be1b-a1cd9ef265b7
        name:
          type: string
          description: Name of the Attribute that is used for identification
          examples:
          - Attribute
        description:
          type: string
          description: "Optional description of the Attribute, should contain helper\
            \ text on what is expected"
        content:
          type: array
          description: Content of the Attribute
          items:
            $ref: "#/components/schemas/BaseAttributeContentDtoV3"
        version:
          type: integer
          format: int32
        type:
          $ref: "#/components/schemas/AttributeType"
          description: Type of the Attribute
        contentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Type of the Content
        properties:
          $ref: "#/components/schemas/InfoAttributeProperties"
          description: Properties of the Attributes
      required:
      - content
      - contentType
      - name
      - properties
      - schemaVersion
      - type
      - uuid
    KeyUsageMappedField:
      allOf:
      - $ref: "#/components/schemas/MappedField"
      description: "Maps an attribute to the Key Usage extension; the permitted bits\
        \ are the attribute's content, taken from CertificateKeyUsage"
      required:
      - fieldType
    MappedField:
      type: object
      description: Describes a single target field within an object; concrete type
        is determined by fieldType
      discriminator:
        propertyName: fieldType
        mapping:
          rdn: "#/components/schemas/RdnMappedField"
          san: "#/components/schemas/SanMappedField"
          extension: "#/components/schemas/ExtensionMappedField"
          keyUsage: "#/components/schemas/KeyUsageMappedField"
          extendedKeyUsage: "#/components/schemas/ExtendedKeyUsageMappedField"
      properties:
        fieldType:
          $ref: "#/components/schemas/FieldType"
          description: "Field type, determines the concrete subtype"
        order:
          type: integer
          format: int32
          description: Ordering index for fields of the same type (e.g. RDN components);
            ascending
          minimum: 1
        source:
          $ref: "#/components/schemas/FieldSource"
          description: Provenance of the value when reconciling CSR vs platform-projected
            values
      required:
      - fieldType
    ObjectType:
      type: string
      enum:
      - x509Certificate
      - sshCertificate
      - key
      - secret
    RdnMappedField:
      allOf:
      - $ref: "#/components/schemas/MappedField"
      - type: object
        properties:
          rdn:
            type: string
            description: RDN code (e.g. "CN") or dotted-decimal OID; resolved via
              the OID registry
            minLength: 1
      description: Maps an attribute value to an X.509 RDN component
      required:
      - fieldType
      - rdn
    SanMappedField:
      allOf:
      - $ref: "#/components/schemas/MappedField"
      - type: object
        properties:
          generalNameType:
            $ref: "#/components/schemas/GeneralNameType"
            description: SAN type
          otherNameOid:
            type: string
            description: OID of the otherName type; required when generalNameType
              is OTHER_NAME
          otherNameValueEncoding:
            $ref: "#/components/schemas/ExtensionValueEncoding"
            description: ASN.1 encoding for the otherName value; required when generalNameType
              is OTHER_NAME because different OtherName OIDs carry differently-typed
              values (e.g. UPN → UTF8String)
      description: Maps an attribute value to a Subject Alternative Name entry
      required:
      - fieldType
      - generalNameType
    SourceParam:
      type: object
      description: Dependency filter that scopes a value source by another attribute's
        value
      properties:
        attributeUuid:
          type: string
          description: UUID of the attribute whose value is used as a filter parameter
        attributeName:
          type: string
          description: Name of the attribute; used as fallback when attributeUuid
            is not matched
    ValueSource:
      type: object
      description: Declares how Core resolves the content of an attribute; orthogonal
        to fieldMapping
      properties:
        kind:
          $ref: "#/components/schemas/ValueSourceType"
          description: How the attribute value is resolved
        params:
          type: array
          description: Optional dependency filters that scope the source by other
            attributes' values
          items:
            $ref: "#/components/schemas/SourceParam"
      required:
      - kind
    ValueSourceType:
      type: string
      enum:
      - none
      - connectorCallback
      - staticList
    DiscoverySupportedResourceDto:
      type: object
      properties:
        resource:
          $ref: "#/components/schemas/Resource"
      required:
      - resource
    FilterFieldType:
      type: string
      enum:
      - string
      - number
      - list
      - date
      - datetime
      - boolean
    PlatformEnum:
      type: string
      enum:
      - Resource
      - ResourceAction
      - FilterConditionOperator
      - FilterFieldType
      - FilterFieldSource
      - SortDirection
      - SettingsSection
      - JwkSetLoadFailure
      - AuthType
      - HealthStatus
      - ConnectorStatus
      - FunctionGroupCode
      - ConnectorVersion
      - ConnectorInterface
      - FeatureFlag
      - CertificateType
      - CertificateState
      - CertificateValidationStatus
      - CertificateFormat
      - CertificateFormatEncoding
      - CertificateValidationCheck
      - CertificateRevocationReason
      - CertificateRequestFormat
      - DiscoveryStatus
      - DiscoveryMessageSeverity
      - CertificateProtocol
      - CertificateSubjectType
      - CertificateKeyUsage
      - CertificateRelationType
      - OidCategory
      - KeyAlgorithm
      - KeyFormat
      - KeyState
      - KeyType
      - KeyUsage
      - KeyRequestType
      - KeyCompromiseReason
      - TokenInstanceStatus
      - DigestAlgorithm
      - RsaSignatureScheme
      - RsaEncryptionScheme
      - ComplianceStatus
      - ComplianceRuleStatus
      - AccountStatus
      - ProtectionMethod
      - CmpProfileVariant
      - ProtocolChallengeSource
      - AcmeIdentifierMatchType
      - AcmeIdentifierAuthorizationMode
      - AttributeType
      - AttributeContentType
      - AttributeConstraintType
      - AttributeValueTarget
      - ProgrammingLanguageEnum
      - AttributeVersion
      - ProtectionLevel
      - SchedulerJobExecutionStatus
      - ScheduledJobScheduleState
      - RecipientType
      - NotificationDataCategory
      - TriggerType
      - ConditionType
      - ExecutionType
      - ResourceEvent
      - Module
      - ActorType
      - AuthMethod
      - Operation
      - OperationResult
      - ApprovalStatusEnum
      - SecretType
      - KeyStoreType
      - SecretState
      - ManagedSigningType
      - QcType
      - SignatureFamily
      - SignatureLevel
      - SigningProtocol
      - SigningScheme
      - SigningWorkflowType
      - TimestampSourceType
      - TspAuthenticationMethod
      - CbomAssetSyncState
      - CbomSyncSkipState
      - CryptographicAssetType
      - PqcVerdict
      - PqcExplanationStepOutcome
    SearchFieldDataByGroupDto:
      type: object
      properties:
        filterFieldSource:
          $ref: "#/components/schemas/FilterFieldSource"
          description: Search group
        searchFieldData:
          type: array
          description: List of search fields for specified search group
          items:
            $ref: "#/components/schemas/SearchFieldDataDto"
      required:
      - filterFieldSource
    SearchFieldDataDto:
      type: object
      properties:
        fieldIdentifier:
          type: string
          description: Identifier of field to search
        fieldLabel:
          type: string
          description: Label for the field
        type:
          $ref: "#/components/schemas/FilterFieldType"
          description: Type of the field
        conditions:
          type: array
          description: List of available conditions for the field
          items:
            $ref: "#/components/schemas/FilterConditionOperator"
        platformEnum:
          $ref: "#/components/schemas/PlatformEnum"
          description: Platform enum of the field values
        attributeContentType:
          $ref: "#/components/schemas/AttributeContentType"
          description: Attribute filter field content type
        value:
          description: Available values for the field
        multiValue:
          type: boolean
          description: "Multivalue flag. true = yes, false = no"
        displayable:
          type: boolean
          description: "Whether the field may be requested as a column of the listing.\
            \ true = yes, false = no"
        sortable:
          type: boolean
          description: "Whether the listing may be ordered by the field. true = yes,\
            \ false = no"
      required:
      - conditions
      - fieldIdentifier
      - fieldLabel
      - type
  securitySchemes:
    SessionAuth:
      type: apiKey
      description: Session-based authentication with session ID stored in 'session-id'
        cookie
      name: session-id
      in: cookie
    CertificateAuth:
      type: apiKey
      description: Base64 encoded X.509 certificate passed in header
      name: ssl-client-cert
      in: header
    BearerJWTAuth:
      type: http
      scheme: Bearer
      bearerFormat: JWT
