openapi: 3.1.0
info:
  title: CZERTAINLY Entity API
  description: REST API for managing Entities in the platform
  contact:
    name: CZERTAINLY
    url: https://www.czertainly.com
    email: info@czertainly.com
  license:
    name: MIT License
    url: https://github.com/CZERTAINLY/CZERTAINLY/blob/develop/LICENSE.md
  version: 2.16.1
  x-logo:
    url: images/czertainly_color_H.svg
externalDocs:
  description: CZERTAINLY Documentation
  url: https://docs.czertainly.com
servers:
- url: https://demo.czertainly.online/api
  description: CZERTAINLY Demo server
tags:
- name: Entity Management
  description: Entity Management API
paths:
  /v1/entities/{entityUuid}:
    get:
      tags:
      - Entity Management
      summary: Get Entity instance details
      operationId: getEntityInstance
      parameters:
      - name: entityUuid
        in: path
        description: Entity instance UUID
        required: true
        schema:
          type: string
      responses:
        "200":
          description: Authority instance details retrieved
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EntityInstanceDto"
        "404":
          description: Entity 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:
      - BearerJWTAuth: []
      - CertificateAuth: []
      - SessionAuth: []
    put:
      tags:
      - Entity Management
      summary: Edit Entity instance
      operationId: editEntityInstance
      parameters:
      - name: entityUuid
        in: path
        description: Entity instance UUID
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EntityInstanceUpdateRequestDto"
        required: true
      responses:
        "200":
          description: Authority instance details updated
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EntityInstanceDto"
        "422":
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
              example:
              - Error Message 1
              - Error Message 2
        "404":
          description: Entity or 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:
      - BearerJWTAuth: []
      - CertificateAuth: []
      - SessionAuth: []
    delete:
      tags:
      - Entity Management
      summary: Delete Entity instance
      operationId: deleteEntityInstance
      parameters:
      - name: entityUuid
        in: path
        description: Entity instance UUID
        required: true
        schema:
          type: string
      responses:
        "204":
          description: Entity instance deleted
        "404":
          description: Entity not found
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "400":
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/AuthenticationServiceExceptionDto"
        "500":
          description: Internal Server Error
        "502":
          description: Connector Error
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "503":
          description: Connector Communication Error
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
      security:
      - BearerJWTAuth: []
      - CertificateAuth: []
      - SessionAuth: []
  /v1/entities:
    post:
      tags:
      - Entity Management
      summary: Add Entity instance
      operationId: createEntityInstance
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EntityInstanceRequestDto"
        required: true
      responses:
        "201":
          description: Entity instance created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UuidDto"
        "422":
          description: Unprocessable Entity
          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"
        "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:
      - BearerJWTAuth: []
      - CertificateAuth: []
      - SessionAuth: []
  /v1/entities/{entityUuid}/attributes/location/validate:
    post:
      tags:
      - Entity Management
      summary: Validate Location Attributes
      operationId: validateLocationAttributes
      parameters:
      - name: entityUuid
        in: path
        description: Entity instance UUID
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: "#/components/schemas/RequestAttributeDto"
        required: true
      responses:
        "200":
          description: Attributes validated
        "422":
          description: Unprocessable Entity
          content:
            '*/*':
              schema:
                type: array
                items:
                  type: string
              example:
              - Error Message 1
              - Error Message 2
        "404":
          description: Entity not found
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "400":
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/AuthenticationServiceExceptionDto"
        "500":
          description: Internal Server Error
        "502":
          description: Connector Error
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "503":
          description: Connector Communication Error
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/ErrorMessageDto"
        "204":
          description: No Content
      security:
      - BearerJWTAuth: []
      - CertificateAuth: []
      - SessionAuth: []
  /v1/entities/list:
    post:
      tags:
      - Entity Management
      summary: List Entity instances
      operationId: listEntityInstances
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SearchRequestDto"
        required: true
      responses:
        "200":
          description: List of Entity instances
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EntityInstanceResponseDto"
        "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:
      - BearerJWTAuth: []
      - CertificateAuth: []
      - SessionAuth: []
  /v1/entities/{entityUuid}/attributes/location:
    get:
      tags:
      - Entity Management
      summary: List Location Attributes
      operationId: listLocationAttributes
      parameters:
      - name: entityUuid
        in: path
        description: Entity instance UUID
        required: true
        schema:
          type: string
      responses:
        "200":
          description: Location attributes retrieved
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/BaseAttributeDto"
        "404":
          description: Entity 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:
      - BearerJWTAuth: []
      - CertificateAuth: []
      - SessionAuth: []
  /v1/entities/search:
    get:
      tags:
      - Entity Management
      summary: Get Entities searchable fields information
      operationId: getSearchableFieldInformation
      responses:
        "200":
          description: Entity 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:
      - BearerJWTAuth: []
      - CertificateAuth: []
      - SessionAuth: []
components:
  schemas:
    AttributeCallback:
      type: object
      properties:
        callbackContext:
          type: string
          description: Context part of callback URL
        callbackMethod:
          type: string
          description: HTTP method of the callback
        mappings:
          type: array
          description: Mappings for the callback method
          items:
            $ref: "#/components/schemas/AttributeCallbackMapping"
          uniqueItems: true
      required:
      - callbackContext
      - callbackMethod
      - 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
    AttributeContentType:
      type: string
      enum:
      - string
      - text
      - integer
      - boolean
      - float
      - date
      - time
      - datetime
      - secret
      - file
      - credential
      - codeblock
      - object
    AttributeType:
      type: string
      enum:
      - data
      - group
      - info
      - meta
      - custom
    AttributeValueTarget:
      type: string
      enum:
      - pathVariable
      - requestParameter
      - body
    BaseAttributeConstraintDto:
      type: object
      description: Base Attribute Constraint definition
      discriminator:
        propertyName: type
        mapping:
          regExp: "#/components/schemas/RegexpAttributeConstraint"
          range: "#/components/schemas/RangeAttributeConstraint"
          dateTime: "#/components/schemas/DateTimeAttributeConstraint"
      oneOf:
      - $ref: "#/components/schemas/RegexpAttributeConstraint"
      - $ref: "#/components/schemas/RangeAttributeConstraint"
      - $ref: "#/components/schemas/DateTimeAttributeConstraint"
      properties:
        type:
          $ref: "#/components/schemas/AttributeConstraintType"
          description: Attribute Constraint Type
        errorMessage:
          type: string
          description: Error message to be displayed for wrong data
        description:
          type: string
          description: Description of the constraint
      required:
      - type
    BaseAttributeContentDto:
      type: object
      description: Base Attribute content definition
      oneOf:
      - $ref: "#/components/schemas/BooleanAttributeContent"
      - $ref: "#/components/schemas/CodeBlockAttributeContent"
      - $ref: "#/components/schemas/CredentialAttributeContent"
      - $ref: "#/components/schemas/DateAttributeContent"
      - $ref: "#/components/schemas/DateTimeAttributeContent"
      - $ref: "#/components/schemas/FileAttributeContent"
      - $ref: "#/components/schemas/FloatAttributeContent"
      - $ref: "#/components/schemas/IntegerAttributeContent"
      - $ref: "#/components/schemas/ObjectAttributeContent"
      - $ref: "#/components/schemas/SecretAttributeContent"
      - $ref: "#/components/schemas/StringAttributeContent"
      - $ref: "#/components/schemas/TextAttributeContent"
      - $ref: "#/components/schemas/TimeAttributeContent"
      properties:
        reference:
          type: string
          description: Content Reference
    BooleanAttributeContent:
      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
      required:
      - data
    CodeBlockAttributeContent:
      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
      required:
      - data
    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
    CredentialAttributeContent:
      type: object
      description: Credential attribute content carrying information about credential
        to use
      properties:
        reference:
          type: string
          description: Content Reference
        data:
          $ref: "#/components/schemas/CredentialAttributeContentData"
          description: Credential attribute content data
      required:
      - 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/DataAttribute"
      required:
      - attributes
      - kind
      - name
      - uuid
    DataAttribute:
      type: object
      description: Data attribute allows to store and transfer dynamic data. Its content
        can be edited and send in requests to store.
      properties:
        version:
          type: integer
          format: int32
          default: 2
          description: Version of the Attribute
          example: 2
        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/BaseAttributeContentDto"
        type:
          $ref: "#/components/schemas/AttributeType"
          default: data
          description: Type of the Attribute
        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/BaseAttributeConstraintDto"
        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
    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
      required:
      - label
      - list
      - multiSelect
      - readOnly
      - required
      - visible
    DateAttributeContent:
      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
      required:
      - 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
    DateTimeAttributeContent:
      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
      required:
      - data
    EntityInstanceUpdateRequestDto:
      type: object
      properties:
        attributes:
          type: array
          description: List of Entity instance Attributes
          items:
            $ref: "#/components/schemas/RequestAttributeDto"
        customAttributes:
          type: array
          description: List of Custom Attributes
          items:
            $ref: "#/components/schemas/RequestAttributeDto"
      required:
      - attributes
    FileAttributeContent:
      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
      required:
      - data
    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
    FloatAttributeContent:
      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
      required:
      - data
    IntegerAttributeContent:
      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
      required:
      - data
    ObjectAttributeContent:
      type: object
      description: Object attribute content for data with custom structure
      properties:
        reference:
          type: string
          description: Content Reference
        data:
          description: Object attribute content data
      required:
      - data
    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
    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
    RequestAttributeDto:
      type: object
      description: Request attribute to send attribute content for object
      properties:
        uuid:
          type: string
          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
          description: Content of the Attribute
          items:
            $ref: "#/components/schemas/BaseAttributeContentDto"
      required:
      - content
      - contentType
      - name
      - uuid
    SecretAttributeContent:
      type: object
      description: Secret attribute content carrying secrets with defined protection
        level
      properties:
        reference:
          type: string
          description: Content Reference
        data:
          $ref: "#/components/schemas/SecretAttributeContentData"
          description: Secret attribute content data
      required:
      - data
    SecretAttributeContentData:
      type: object
      properties:
        secret:
          type: string
          description: Secret attribute data
        protectionLevel:
          type: string
          description: Level of protection of the data
    StringAttributeContent:
      type: object
      description: String attribute content
      properties:
        reference:
          type: string
          description: Content Reference
        data:
          type: string
          description: String attribute value
      required:
      - data
    TextAttributeContent:
      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
      required:
      - data
    TimeAttributeContent:
      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
      required:
      - data
    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
    EntityInstanceDto:
      type: object
      properties:
        uuid:
          type: string
          description: Object identifier
          examples:
          - 7b55ge1c-844f-11dc-a8a3-0242ac120002
        name:
          type: string
          description: Object Name
          examples:
          - Name
        attributes:
          type: array
          description: List of Entity instance Attributes
          items:
            $ref: "#/components/schemas/ResponseAttributeDto"
        customAttributes:
          type: array
          description: List of Custom Attributes
          items:
            $ref: "#/components/schemas/ResponseAttributeDto"
        status:
          type: string
          description: Status of Entity instance
        connectorUuid:
          type: string
          description: UUID of Entity Provider
        connectorName:
          type: string
          description: Name of Entity Provider
        kind:
          type: string
          description: Entity instance Kind
          examples:
          - "Keystore, etc."
      required:
      - attributes
      - kind
      - name
      - uuid
    ResponseAttributeDto:
      type: object
      description: Response attribute with content for object it belongs to
      properties:
        uuid:
          type: string
          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
          description: Content of the Attribute
          items:
            $ref: "#/components/schemas/BaseAttributeContentDto"
      required:
      - contentType
      - label
      - name
      - type
    EntityInstanceRequestDto:
      type: object
      properties:
        name:
          type: string
          description: Entity instance name
        attributes:
          type: array
          description: List of Entity instance Attributes
          items:
            $ref: "#/components/schemas/RequestAttributeDto"
        customAttributes:
          type: array
          description: List of Custom Attributes
          items:
            $ref: "#/components/schemas/RequestAttributeDto"
        connectorUuid:
          type: string
          description: UUID of Entity Provider
        kind:
          type: string
          description: Entity instance Kind
          examples:
          - "Keystore, etc."
      required:
      - attributes
      - connectorUuid
      - kind
      - name
    UuidDto:
      type: object
      properties:
        uuid:
          type: string
          description: Object identifier
      required:
      - uuid
    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
    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 corresponding endpoint\
            \ `GET /v1/{resource}/search`, e.g.: [**GET /v1/certificates/search**](../core-certificate/#tag/Certificate-Inventory/operation/getSearchableFieldInformation)"
        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
    EntityInstanceResponseDto:
      type: object
      properties:
        entities:
          type: array
          description: Entities
          items:
            $ref: "#/components/schemas/EntityInstanceDto"
        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:
      - entities
      - itemsPerPage
      - pageNumber
      - totalItems
      - totalPages
    BaseAttributeDto:
      type: object
      description: Base Attribute definition
      discriminator:
        propertyName: type
        mapping:
          data: "#/components/schemas/DataAttribute"
          info: "#/components/schemas/InfoAttribute"
          group: "#/components/schemas/GroupAttribute"
          meta: "#/components/schemas/MetadataAttribute"
          custom: "#/components/schemas/CustomAttribute"
      oneOf:
      - $ref: "#/components/schemas/DataAttribute"
      - $ref: "#/components/schemas/InfoAttribute"
      - $ref: "#/components/schemas/GroupAttribute"
      - $ref: "#/components/schemas/MetadataAttribute"
      - $ref: "#/components/schemas/CustomAttribute"
      required:
      - name
      - type
      - uuid
    CustomAttribute:
      type: object
      description: Custom attribute allows to store and transfer dynamic data. Its
        content can be edited and send in requests to store.
      properties:
        version:
          type: integer
          format: int32
          default: 2
          description: Version of the Attribute
          example: 2
        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/BaseAttributeContentDto"
        type:
          $ref: "#/components/schemas/AttributeType"
          default: data
          description: Type of the Attribute
        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
    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
      required:
      - label
      - list
      - multiSelect
      - readOnly
      - required
      - visible
    GroupAttribute:
      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:
        version:
          type: integer
          format: int32
          default: 2
          description: Version of the Attribute
          example: 2
        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"
        type:
          $ref: "#/components/schemas/AttributeType"
          default: data
          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
    InfoAttribute:
      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:
        version:
          type: integer
          format: int32
          default: 2
          description: Version of the Attribute
          example: 2
        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/BaseAttributeContentDto"
        type:
          $ref: "#/components/schemas/AttributeType"
          default: data
          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
    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
    MetadataAttribute:
      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:
        version:
          type: integer
          format: int32
          default: 2
          description: Version of the Attribute
          example: 2
        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/BaseAttributeContentDto"
        type:
          $ref: "#/components/schemas/AttributeType"
          default: data
          description: Type of the Attribute
        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
    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.
      required:
      - label
      - visible
    FilterFieldType:
      type: string
      enum:
      - string
      - number
      - list
      - date
      - datetime
      - boolean
    PlatformEnum:
      type: string
      enum:
      - Resource
      - ResourceAction
      - FilterConditionOperator
      - FilterFieldType
      - FilterFieldSource
      - SettingsSection
      - AuthType
      - HealthStatus
      - ConnectorStatus
      - FunctionGroupCode
      - CertificateType
      - CertificateState
      - CertificateValidationStatus
      - CertificateFormat
      - CertificateFormatEncoding
      - CertificateValidationCheck
      - CertificateRevocationReason
      - CertificateRequestFormat
      - DiscoveryStatus
      - CertificateProtocol
      - CertificateSubjectType
      - CertificateKeyUsage
      - CertificateRelationType
      - OidCategory
      - KeyAlgorithm
      - KeyFormat
      - KeyState
      - KeyType
      - KeyUsage
      - KeyRequestType
      - KeyCompromiseReason
      - TokenInstanceStatus
      - DigestAlgorithm
      - RsaSignatureScheme
      - RsaEncryptionScheme
      - ComplianceStatus
      - ComplianceRuleStatus
      - AccountStatus
      - ProtectionMethod
      - CmpProfileVariant
      - AttributeType
      - AttributeContentType
      - AttributeConstraintType
      - AttributeValueTarget
      - ProgrammingLanguageEnum
      - SchedulerJobExecutionStatus
      - RecipientType
      - TriggerType
      - ConditionType
      - ExecutionType
      - ResourceEvent
      - Module
      - ActorType
      - AuthMethod
      - Operation
      - OperationResult
      - ApprovalStatusEnum
    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"
      required:
      - conditions
      - fieldIdentifier
      - fieldLabel
      - type
  securitySchemes:
    ConnectorAPIKeyAuth:
      type: apiKey
      description: API Key in header configured for connector
      name: X-API-KEY
      in: header
    BasicAuth:
      type: http
      scheme: Basic
    SessionAuth:
      type: apiKey
      description: Session-based authentication with session ID stored in 'czertainly-session'
        cookie
      name: czertainly-session
      in: cookie
    CertificateAuth:
      type: apiKey
      description: Base64 encoded X.509 certificate passed in header
      name: X-APP-CERTIFICATE
      in: header
    CertificateTLSAuth:
      type: mutualTLS
      description: Client certificate authentication
    NoAuth:
      type: http
      description: No authentication
      scheme: none
    BearerJWTAuth:
      type: http
      scheme: Bearer
      bearerFormat: JWT
