openapi: 3.0.0
paths:
  /accounts/session:
    get:
      description: Returns current user session.
      operationId: AccountApi_getSession
      parameters: []
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountsSessionResponseDTO'
              examples:
                authorizedWithHederaId:
                  summary: Authorized user with Hedera ID
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    username: StandardRegistry
                    did: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    hederaAccountId: 0.0.6046379
                    role: STANDARD_REGISTRY
                    permissions:
                      - ACCOUNTS_STANDARD_REGISTRY_READ
                      - DEMO_KEY_CREATE
                      - IPFS_FILE_READ
                      - IPFS_FILE_CREATE
                      - PROFILES_USER_READ
                      - PROFILES_USER_UPDATE
                      - PROFILES_BALANCE_READ
                      - ACCOUNTS_ACCOUNT_READ
                      - ANALYTIC_POLICY_READ
                      - ANALYTIC_MODULE_READ
                      - ANALYTIC_TOOL_READ
                      - ANALYTIC_SCHEMA_READ
                      - ANALYTIC_DOCUMENT_READ
                      - ARTIFACTS_FILE_READ
                      - ARTIFACTS_FILE_CREATE
                      - ARTIFACTS_FILE_DELETE
                      - BRANDING_CONFIG_UPDATE
                      - CONTRACTS_CONTRACT_READ
                      - CONTRACTS_CONTRACT_CREATE
                      - CONTRACTS_CONTRACT_DELETE
                      - CONTRACTS_CONTRACT_MANAGE
                      - CONTRACTS_WIPE_REQUEST_READ
                      - CONTRACTS_WIPE_REQUEST_UPDATE
                      - CONTRACTS_WIPE_REQUEST_DELETE
                      - CONTRACTS_WIPE_REQUEST_REVIEW
                      - CONTRACTS_WIPE_ADMIN_CREATE
                      - CONTRACTS_WIPE_ADMIN_DELETE
                      - CONTRACTS_WIPE_MANAGER_CREATE
                      - CONTRACTS_WIPE_MANAGER_DELETE
                      - CONTRACTS_WIPER_CREATE
                      - CONTRACTS_WIPER_DELETE
                      - CONTRACTS_POOL_READ
                      - CONTRACTS_POOL_UPDATE
                      - CONTRACTS_POOL_DELETE
                      - CONTRACTS_RETIRE_REQUEST_READ
                      - CONTRACTS_RETIRE_REQUEST_CREATE
                      - CONTRACTS_RETIRE_REQUEST_DELETE
                      - CONTRACTS_RETIRE_REQUEST_REVIEW
                      - CONTRACTS_RETIRE_ADMIN_CREATE
                      - CONTRACTS_RETIRE_ADMIN_DELETE
                      - CONTRACTS_PERMISSIONS_READ
                      - CONTRACTS_DOCUMENT_READ
                      - LOG_LOG_READ
                      - MODULES_MODULE_READ
                      - MODULES_MODULE_CREATE
                      - MODULES_MODULE_UPDATE
                      - MODULES_MODULE_DELETE
                      - MODULES_MODULE_REVIEW
                      - POLICIES_POLICY_READ
                      - POLICIES_POLICY_CREATE
                      - POLICIES_POLICY_UPDATE
                      - POLICIES_POLICY_DELETE
                      - POLICIES_POLICY_REVIEW
                      - POLICIES_POLICY_EXECUTE
                      - POLICIES_POLICY_MANAGE
                      - POLICIES_MIGRATION_CREATE
                      - POLICIES_RECORD_ALL
                      - SCHEMAS_SCHEMA_READ
                      - SCHEMAS_SCHEMA_CREATE
                      - SCHEMAS_SCHEMA_UPDATE
                      - SCHEMAS_SCHEMA_DELETE
                      - SCHEMAS_SCHEMA_REVIEW
                      - SCHEMAS_SYSTEM_SCHEMA_READ
                      - SCHEMAS_SYSTEM_SCHEMA_CREATE
                      - SCHEMAS_SYSTEM_SCHEMA_UPDATE
                      - SCHEMAS_SYSTEM_SCHEMA_DELETE
                      - SCHEMAS_SYSTEM_SCHEMA_REVIEW
                      - TOOLS_TOOL_READ
                      - TOOLS_TOOL_CREATE
                      - TOOLS_TOOL_UPDATE
                      - TOOLS_TOOL_DELETE
                      - TOOLS_TOOL_REVIEW
                      - TOOL_MIGRATION_CREATE
                      - TOKENS_TOKEN_READ
                      - TOKENS_TOKEN_CREATE
                      - TOKENS_TOKEN_UPDATE
                      - TOKENS_TOKEN_DELETE
                      - TOKENS_TOKEN_MANAGE
                      - TAGS_TAG_READ
                      - TAGS_TAG_CREATE
                      - PROFILES_RESTORE_ALL
                      - SUGGESTIONS_SUGGESTIONS_READ
                      - SUGGESTIONS_SUGGESTIONS_UPDATE
                      - SETTINGS_SETTINGS_READ
                      - SETTINGS_SETTINGS_UPDATE
                      - SETTINGS_THEME_READ
                      - SETTINGS_THEME_CREATE
                      - SETTINGS_THEME_UPDATE
                      - SETTINGS_THEME_DELETE
                      - PERMISSIONS_ROLE_READ
                      - PERMISSIONS_ROLE_CREATE
                      - PERMISSIONS_ROLE_UPDATE
                      - PERMISSIONS_ROLE_DELETE
                      - PERMISSIONS_ROLE_MANAGE
                      - ACCESS_POLICY_ALL
                      - SCHEMAS_RULE_CREATE
                      - SCHEMAS_RULE_READ
                      - SCHEMAS_RULE_EXECUTE
                      - FORMULAS_FORMULA_CREATE
                      - FORMULAS_FORMULA_READ
                      - POLICIES_EXTERNAL_POLICY_READ
                      - POLICIES_EXTERNAL_POLICY_CREATE
                      - POLICIES_EXTERNAL_POLICY_UPDATE
                      - POLICIES_EXTERNAL_POLICY_DELETE
                      - LOG_LOG_READ
                      - LOG_SYSTEM_READ
                    location: local
                authorizedWithoutHederaId:
                  summary: Authorized user without Hedera ID
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    username: StandardRegistry
                    role: STANDARD_REGISTRY
                    permissions:
                      - ACCOUNTS_STANDARD_REGISTRY_READ
                      - DEMO_KEY_CREATE
                      - IPFS_FILE_READ
                      - IPFS_FILE_CREATE
                      - PROFILES_USER_READ
                      - PROFILES_USER_UPDATE
                      - PROFILES_BALANCE_READ
                      - ACCOUNTS_ACCOUNT_READ
                      - ANALYTIC_POLICY_READ
                      - ANALYTIC_MODULE_READ
                      - ANALYTIC_TOOL_READ
                      - ANALYTIC_SCHEMA_READ
                      - ANALYTIC_DOCUMENT_READ
                      - ARTIFACTS_FILE_READ
                      - ARTIFACTS_FILE_CREATE
                      - ARTIFACTS_FILE_DELETE
                      - BRANDING_CONFIG_UPDATE
                      - CONTRACTS_CONTRACT_READ
                      - CONTRACTS_CONTRACT_CREATE
                      - CONTRACTS_CONTRACT_DELETE
                      - CONTRACTS_CONTRACT_MANAGE
                      - CONTRACTS_WIPE_REQUEST_READ
                      - CONTRACTS_WIPE_REQUEST_UPDATE
                      - CONTRACTS_WIPE_REQUEST_DELETE
                      - CONTRACTS_WIPE_REQUEST_REVIEW
                      - CONTRACTS_WIPE_ADMIN_CREATE
                      - CONTRACTS_WIPE_ADMIN_DELETE
                      - CONTRACTS_WIPE_MANAGER_CREATE
                      - CONTRACTS_WIPE_MANAGER_DELETE
                      - CONTRACTS_WIPER_CREATE
                      - CONTRACTS_WIPER_DELETE
                      - CONTRACTS_POOL_READ
                      - CONTRACTS_POOL_UPDATE
                      - CONTRACTS_POOL_DELETE
                      - CONTRACTS_RETIRE_REQUEST_READ
                      - CONTRACTS_RETIRE_REQUEST_CREATE
                      - CONTRACTS_RETIRE_REQUEST_DELETE
                      - CONTRACTS_RETIRE_REQUEST_REVIEW
                      - CONTRACTS_RETIRE_ADMIN_CREATE
                      - CONTRACTS_RETIRE_ADMIN_DELETE
                      - CONTRACTS_PERMISSIONS_READ
                      - CONTRACTS_DOCUMENT_READ
                      - LOG_LOG_READ
                      - MODULES_MODULE_READ
                      - MODULES_MODULE_CREATE
                      - MODULES_MODULE_UPDATE
                      - MODULES_MODULE_DELETE
                      - MODULES_MODULE_REVIEW
                      - POLICIES_POLICY_READ
                      - POLICIES_POLICY_CREATE
                      - POLICIES_POLICY_UPDATE
                      - POLICIES_POLICY_DELETE
                      - POLICIES_POLICY_REVIEW
                      - POLICIES_POLICY_EXECUTE
                      - POLICIES_POLICY_MANAGE
                      - POLICIES_MIGRATION_CREATE
                      - POLICIES_RECORD_ALL
                      - SCHEMAS_SCHEMA_READ
                      - SCHEMAS_SCHEMA_CREATE
                      - SCHEMAS_SCHEMA_UPDATE
                      - SCHEMAS_SCHEMA_DELETE
                      - SCHEMAS_SCHEMA_REVIEW
                      - SCHEMAS_SYSTEM_SCHEMA_READ
                      - SCHEMAS_SYSTEM_SCHEMA_CREATE
                      - SCHEMAS_SYSTEM_SCHEMA_UPDATE
                      - SCHEMAS_SYSTEM_SCHEMA_DELETE
                      - SCHEMAS_SYSTEM_SCHEMA_REVIEW
                      - TOOLS_TOOL_READ
                      - TOOLS_TOOL_CREATE
                      - TOOLS_TOOL_UPDATE
                      - TOOLS_TOOL_DELETE
                      - TOOLS_TOOL_REVIEW
                      - TOOL_MIGRATION_CREATE
                      - TOKENS_TOKEN_READ
                      - TOKENS_TOKEN_CREATE
                      - TOKENS_TOKEN_UPDATE
                      - TOKENS_TOKEN_DELETE
                      - TOKENS_TOKEN_MANAGE
                      - TAGS_TAG_READ
                      - TAGS_TAG_CREATE
                      - PROFILES_RESTORE_ALL
                      - SUGGESTIONS_SUGGESTIONS_READ
                      - SUGGESTIONS_SUGGESTIONS_UPDATE
                      - SETTINGS_SETTINGS_READ
                      - SETTINGS_SETTINGS_UPDATE
                      - SETTINGS_THEME_READ
                      - SETTINGS_THEME_CREATE
                      - SETTINGS_THEME_UPDATE
                      - SETTINGS_THEME_DELETE
                      - PERMISSIONS_ROLE_READ
                      - PERMISSIONS_ROLE_CREATE
                      - PERMISSIONS_ROLE_UPDATE
                      - PERMISSIONS_ROLE_DELETE
                      - PERMISSIONS_ROLE_MANAGE
                      - ACCESS_POLICY_ALL
                      - SCHEMAS_RULE_CREATE
                      - SCHEMAS_RULE_READ
                      - SCHEMAS_RULE_EXECUTE
                      - FORMULAS_FORMULA_CREATE
                      - FORMULAS_FORMULA_READ
                      - POLICIES_EXTERNAL_POLICY_READ
                      - POLICIES_EXTERNAL_POLICY_CREATE
                      - POLICIES_EXTERNAL_POLICY_UPDATE
                      - POLICIES_EXTERNAL_POLICY_DELETE
                      - LOG_LOG_READ
                      - LOG_SYSTEM_READ
                    location: local
                Unauthorized:
                  summary: Unauthorized request
                  value: null
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Returns current session of the user.
      tags:
        - accounts
  /accounts/register:
    post:
      description: Object that contain username, password and role fields.
      operationId: AccountApi_register
      parameters: []
      requestBody:
        required: true
        description: Register payload.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterUserDTO'
            examples:
              registerBody:
                value:
                  username: StandardRegistry
                  password: StrongPassword3#
                  password_confirmation: StrongPassword3#
                  role: STANDARD_REGISTRY
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountsResponseDTO'
              example:
                id: 69aeb71ef8c5b278e3bab4e5
                username: StandardRegistry
                role: STANDARD_REGISTRY
                permissions:
                  - ACCOUNTS_STANDARD_REGISTRY_READ
                  - DEMO_KEY_CREATE
                  - IPFS_FILE_READ
                  - IPFS_FILE_CREATE
                  - PROFILES_USER_READ
                  - PROFILES_USER_UPDATE
                  - PROFILES_BALANCE_READ
                  - ACCOUNTS_ACCOUNT_READ
                  - ANALYTIC_POLICY_READ
                  - ANALYTIC_MODULE_READ
                  - ANALYTIC_TOOL_READ
                  - ANALYTIC_SCHEMA_READ
                  - ANALYTIC_DOCUMENT_READ
                  - ARTIFACTS_FILE_READ
                  - ARTIFACTS_FILE_CREATE
                  - ARTIFACTS_FILE_DELETE
                  - BRANDING_CONFIG_UPDATE
                  - CONTRACTS_CONTRACT_READ
                  - CONTRACTS_CONTRACT_CREATE
                  - CONTRACTS_CONTRACT_DELETE
                  - CONTRACTS_CONTRACT_MANAGE
                  - CONTRACTS_WIPE_REQUEST_READ
                  - CONTRACTS_WIPE_REQUEST_UPDATE
                  - CONTRACTS_WIPE_REQUEST_DELETE
                  - CONTRACTS_WIPE_REQUEST_REVIEW
                  - CONTRACTS_WIPE_ADMIN_CREATE
                  - CONTRACTS_WIPE_ADMIN_DELETE
                  - CONTRACTS_WIPE_MANAGER_CREATE
                  - CONTRACTS_WIPE_MANAGER_DELETE
                  - CONTRACTS_WIPER_CREATE
                  - CONTRACTS_WIPER_DELETE
                  - CONTRACTS_POOL_READ
                  - CONTRACTS_POOL_UPDATE
                  - CONTRACTS_POOL_DELETE
                  - CONTRACTS_RETIRE_REQUEST_READ
                  - CONTRACTS_RETIRE_REQUEST_CREATE
                  - CONTRACTS_RETIRE_REQUEST_DELETE
                  - CONTRACTS_RETIRE_REQUEST_REVIEW
                  - CONTRACTS_RETIRE_ADMIN_CREATE
                  - CONTRACTS_RETIRE_ADMIN_DELETE
                  - CONTRACTS_PERMISSIONS_READ
                  - CONTRACTS_DOCUMENT_READ
                  - LOG_LOG_READ
                  - MODULES_MODULE_READ
                  - MODULES_MODULE_CREATE
                  - MODULES_MODULE_UPDATE
                  - MODULES_MODULE_DELETE
                  - MODULES_MODULE_REVIEW
                  - POLICIES_POLICY_READ
                  - POLICIES_POLICY_CREATE
                  - POLICIES_POLICY_UPDATE
                  - POLICIES_POLICY_DELETE
                  - POLICIES_POLICY_REVIEW
                  - POLICIES_POLICY_EXECUTE
                  - POLICIES_POLICY_MANAGE
                  - POLICIES_MIGRATION_CREATE
                  - POLICIES_RECORD_ALL
                  - SCHEMAS_SCHEMA_READ
                  - SCHEMAS_SCHEMA_CREATE
                  - SCHEMAS_SCHEMA_UPDATE
                  - SCHEMAS_SCHEMA_DELETE
                  - SCHEMAS_SCHEMA_REVIEW
                  - SCHEMAS_SYSTEM_SCHEMA_READ
                  - SCHEMAS_SYSTEM_SCHEMA_CREATE
                  - SCHEMAS_SYSTEM_SCHEMA_UPDATE
                  - SCHEMAS_SYSTEM_SCHEMA_DELETE
                  - SCHEMAS_SYSTEM_SCHEMA_REVIEW
                  - TOOLS_TOOL_READ
                  - TOOLS_TOOL_CREATE
                  - TOOLS_TOOL_UPDATE
                  - TOOLS_TOOL_DELETE
                  - TOOLS_TOOL_REVIEW
                  - TOOL_MIGRATION_CREATE
                  - TOKENS_TOKEN_READ
                  - TOKENS_TOKEN_CREATE
                  - TOKENS_TOKEN_UPDATE
                  - TOKENS_TOKEN_DELETE
                  - TOKENS_TOKEN_MANAGE
                  - TAGS_TAG_READ
                  - TAGS_TAG_CREATE
                  - PROFILES_RESTORE_ALL
                  - SUGGESTIONS_SUGGESTIONS_READ
                  - SUGGESTIONS_SUGGESTIONS_UPDATE
                  - SETTINGS_SETTINGS_READ
                  - SETTINGS_SETTINGS_UPDATE
                  - SETTINGS_THEME_READ
                  - SETTINGS_THEME_CREATE
                  - SETTINGS_THEME_UPDATE
                  - SETTINGS_THEME_DELETE
                  - PERMISSIONS_ROLE_READ
                  - PERMISSIONS_ROLE_CREATE
                  - PERMISSIONS_ROLE_UPDATE
                  - PERMISSIONS_ROLE_DELETE
                  - PERMISSIONS_ROLE_MANAGE
                  - ACCESS_POLICY_ALL
                  - SCHEMAS_RULE_CREATE
                  - SCHEMAS_RULE_READ
                  - SCHEMAS_RULE_EXECUTE
                  - FORMULAS_FORMULA_CREATE
                  - FORMULAS_FORMULA_READ
                  - POLICIES_EXTERNAL_POLICY_READ
                  - POLICIES_EXTERNAL_POLICY_CREATE
                  - POLICIES_EXTERNAL_POLICY_UPDATE
                  - POLICIES_EXTERNAL_POLICY_DELETE
                  - LOG_LOG_READ
                  - LOG_SYSTEM_READ
                permissionsGroup:
                  - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    roleId: 69a814bfca21314a0a25040f
                    roleName: Default policy user
                    owner: null
                location: local
        '409':
          description: Conflict.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictErrorDTO'
              example:
                statusCode: 409
                message: An account with the same name already exists.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                message:
                  - password should not be empty
                  - password must be a string
                  - Passwords must match
                error: Unprocessable Entity
                statusCode: 422
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      summary: Registers a new user account.
      tags:
        - accounts
  /accounts/push/onboard:
    post:
      description: >-
        Creates a user account, Hedera account, DID, and cryptographic keys on
        behalf of the user. If hederaAccountId / hederaAccountKey are omitted
        the platform generates them. 
      operationId: AccountApi_registerAndOnboard
      parameters: []
      requestBody:
        required: true
        description: Registration and optional Hedera / DID credentials.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnboardingDTO'
      responses:
        '202':
          description: Task created — poll for completion.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      summary: Registers and fully onboards a new user account.
      tags:
        - accounts
  /accounts/login:
    post:
      operationId: AccountApi_login
      parameters: []
      requestBody:
        required: true
        description: Login payload.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoginUserDTO'
            examples:
              loginBody:
                value:
                  username: StandardRegistry
                  password: test
      responses:
        '200':
          description: Successful operation.
          schema:
            oneOf:
              - $ref: '#/components/schemas/LoginSuccessResponseDTO'
              - $ref: '#/components/schemas/LoginOTPRequiredResponseDTO'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountsLoginResponseDTO'
              examples:
                success:
                  summary: Successful response
                  value:
                    did: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    refreshToken: >-
                      eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImYwNmY2MzIyLTk2NGYtNGIwMC05ZjgwLTljM2Y1OTdjYTYyYSIsIm5hbWUiOiJTdGFuZGFyZFJlZ2lzdHJ5IiwiZXhwaXJlQXQiOjE4MDQ3MDAzOTczMzgsImlhdCI6MTc3MzE2NDM5N30.ODc0_ktbl5xPRn4Ub1Kuj-xrjlho2_oyohucLdgMUqFGrI2SD_T3A96OaV2cKx7NQwsxc-QFBpBnrGSriJ9qPUcDm9rYmQYSqwpRJT0uSuL7xwu4TiPlVzghCd5xlLTw_uA6uJR7CG7HrDphPQI6zMGSxKXcn2S9xIZ6z5uBuWU
                    role: STANDARD_REGISTRY
                    username: StandardRegistry
                    weakPassword: false
                otpRequired:
                  summary: OTP required
                  value:
                    success: false
                    otprequired: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                message:
                  - password should not be empty
                  - password must be a string
                error: Unprocessable Entity
                statusCode: 422
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      summary: Logs user into the system.
      tags:
        - accounts
  /accounts/change-password:
    post:
      operationId: AccountApi_changePassword
      parameters: []
      requestBody:
        required: true
        description: User credentials.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChangePasswordDTO'
            examples:
              changePasswordBody:
                value:
                  username: StandardRegistry
                  oldPassword: test
                  newPassword: AnotherStrongPassword3#
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountsLoginResponseDTO'
              example:
                username: StandardRegistry
                did: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                role: STANDARD_REGISTRY
                refreshToken: >-
                  eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImYwNmY2MzIyLTk2NGYtNGIwMC05ZjgwLTljM2Y1OTdjYTYyYSIsIm5hbWUiOiJTdGFuZGFyZFJlZ2lzdHJ5IiwiZXhwaXJlQXQiOjE4MDQ3MDAzOTczMzgsImlhdCI6MTc3MzE2NDM5N30.ODc0_ktbl5xPRn4Ub1Kuj-xrjlho2_oyohucLdgMUqFGrI2SD_T3A96OaV2cKx7NQwsxc-QFBpBnrGSriJ9qPUcDm9rYmQYSqwpRJT0uSuL7xwu4TiPlVzghCd5xlLTw_uA6uJR7CG7HrDphPQI6zMGSxKXcn2S9xIZ6z5uBuWU
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                message:
                  - Password must be at least 4 characters long.
                statusCode: 422
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Change user password.
      tags:
        - accounts
  /accounts/access-token:
    post:
      description: Returns access token.
      operationId: AccountApi_getAccessToken
      parameters: []
      requestBody:
        required: true
        description: Object that contains a refresh token.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccessTokenRequestDTO'
            examples:
              accessTokenBody:
                value:
                  refreshToken: >-
                    eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImYwNmY2MzIyLTk2NGYtNGIwMC05ZjgwLTljM2Y1OTdjYTYyYSIsIm5hbWUiOiJTdGFuZGFyZFJlZ2lzdHJ5IiwiZXhwaXJlQXQiOjE4MDQ3MDAzOTczMzgsImlhdCI6MTc3MzE2NDM5N30.ODc0_ktbl5xPRn4Ub1Kuj-xrjlho2_oyohucLdgMUqFGrI2SD_T3A96OaV2cKx7NQwsxc-QFBpBnrGSriJ9qPUcDm9rYmQYSqwpRJT0uSuL7xwu4TiPlVzghCd5xlLTw_uA6uJR7CG7HrDphPQI6zMGSxKXcn2S9xIZ6z5uBuWU
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessTokenResponseDTO'
              example:
                accessToken: >-
                  eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IlN0YW5kYXJkUmVnaXN0cnkiLCJkaWQiOiJkaWQ6aGVkZXJhOnRlc3RuZXQ6Q3Z6cDVrS1ZVdWlwQkNRamNGNTRmQmpkaWN2YUtzQjh6SGVRNlFxMjJVMlpfMC4wLjgxNDUzNDgiLCJyb2xlIjoiU1RBTkRBUkRfUkVHSVNUUlkiLCJleHBpcmVBdCI6MTc3MzgzNzIwNDYzOSwiaWF0IjoxNzczMjM3MjA0fQ.R9F3os4r4BdVpIXO1WhMq9GYp4qiAzBESMqVwM4NacCht4oRyR2X62t2VVckHyb8ElN4Igwy9C7CHdkSL3kpGlRHrN8haDbDfWxtMWw3bpRNUc8Wyvx8p8-N_aSOBZMgoWJQo-K6hB4MgXP2lPT0MQ-JDP01eG8Xn6MtQF4dctA
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      summary: Returns access token.
      tags:
        - accounts
  /accounts:
    get:
      description: >-
        Returns all users except those with role Standard Registry. Only users
        with the Standard Registry role are allowed to make the request.
      operationId: AccountApi_getAllAccounts
      parameters: []
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserAccountDTO'
              example:
                - username: Installer
                  parent: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                  did: >-
                    did:hedera:testnet:EthnLQfQnh8x6vKyegyekhy72oSAok6cH59pfVssKLDw_0.0.8200599
                - username: Installer2
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Returns a list of users, excluding Standard Registry.
      tags:
        - accounts
  /accounts/standard-registries:
    get:
      description: Returns all Standard Registries.
      operationId: AccountApi_getStandardRegistries
      parameters: []
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StandardRegistryAccountDTO'
              example:
                - username: StandardRegistry
                  did: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                - username: Verra
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Returns all Standard Registries.
      tags:
        - accounts
  /accounts/standard-registries/aggregated:
    get:
      description: Returns all Standard Registries aggregated with polices and vcDocuments
      operationId: AccountApi_getAggregatedStandardRegistries
      parameters: []
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AggregatedDTOItem'
              example:
                - did: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                  vcDocument:
                    createDate: '2026-03-13T09:26:55.610Z'
                    updateDate: '2026-03-13T09:27:09.653Z'
                    hash: 74RwXshVfxSkWFkNhDWdHHMqHhAFMbZ6pR4sepB4pJz2
                    hederaStatus: ISSUE
                    signature: 0
                    type: STANDARD_REGISTRY
                    option:
                      status: NEW
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    topicId: 0.0.8200599
                    messageId: '1773394029.513409000'
                    document:
                      id: urn:uuid:962aa166-7da1-4fab-ad88-6681ac55f770
                      type:
                        - VerifiableCredential
                      issuer: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      issuanceDate: '2026-03-13T09:26:55.502Z'
                      '@context':
                        - https://www.w3.org/2018/credentials/v1
                        - >-
                          ipfs://bafkreihj7gclc4qgem27tre5je6a3t7tpdrk4li6oamdl6bnflwnoyfs5i
                      credentialSubject:
                        - OrganizationName: Organization name
                          Website: https://google.com
                          Tags: Tag
                          '@context':
                            - >-
                              ipfs://bafkreihj7gclc4qgem27tre5je6a3t7tpdrk4li6oamdl6bnflwnoyfs5i
                          id: >-
                            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                          type: StandardRegistry
                      proof:
                        type: Ed25519Signature2018
                        created: '2026-03-13T09:26:55Z'
                        verificationMethod: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599#did-root-key
                        proofPurpose: assertionMethod
                        jws: >-
                          eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..Uc6RaUnv_zC4xc9j3mBqdd8Ew3z6lZITofdoJUYpxDot-fZhQEtiDjPAj5Au6UwApAfTnXy_el-uv5iOdzOyCg
                    documentFileId: 69b3d86d0b1c848021821bf9
                    tableFileIds: []
                    id: 69b3d85f0b1c848021821bf2
                  policies:
                    - createDate: '2026-03-13T13:32:08.119Z'
                      uuid: 595d65e6-1fc6-42ec-a72d-a12fb2313218
                      name: VM0044_1741272604219
                      version: '1'
                      description: VM0044
                      status: PUBLISH
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      policyRoles:
                        - Project_Proponent
                        - VVB
                      policyGroups: []
                      topicId: 0.0.8204101
                      instanceTopicId: 0.0.8204176
                      policyTag: Tag_1773408686116
                      messageId: '1773409092.761373000'
                      codeVersion: 1.5.1
                      tools:
                        - name: Tool 05
                          version: null
                          topicId: 0.0.3418637
                          messageId: '1707833182.503204122'
                        - name: Tool 07
                          version: null
                          topicId: 0.0.2175383
                          messageId: '1706867530.884259218'
                        - name: Tool 12
                          version: null
                          topicId: 0.0.3625013
                          messageId: '1709106946.913157840'
                        - name: Tool 03
                          version: null
                          topicId: 0.0.2182119
                          messageId: '1706867833.676387003'
                      userRoles:
                        - Administrator
                      userGroups: []
                      userRole: Administrator
                      userGroup: null
                      tests: []
                      id: 69b411d8b23f3b6a77d12742
                    - createDate: '2026-03-13T13:24:21.116Z'
                      uuid: ef137508-3e02-4ee3-92fa-8847ca1687cf
                      name: CDM AMS-III.AR Policy
                      version: '1'
                      description: >-
                        Substituting fossil fuel-based lighting with LED/CFL
                        lighting systems
                      status: PUBLISH
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      policyRoles:
                        - Project Participant
                        - VVB
                      policyGroups: []
                      topicId: 0.0.8204020
                      instanceTopicId: 0.0.8204046
                      policyTag: Tag_1773408218292
                      messageId: '1773408455.836215124'
                      codeVersion: 1.5.1
                      tools:
                        - name: Tool 33
                          version: null
                          topicId: 0.0.4865949
                          messageId: '1726593517.484578000'
                        - name: Tool 19
                          version: null
                          topicId: 0.0.2196124
                          messageId: '1706869798.177938003'
                        - name: Tool 21
                          version: null
                          topicId: 0.0.2203279
                          messageId: '1706873385.455822873'
                        - name: Tool 07
                          version: null
                          topicId: 0.0.2175383
                          messageId: '1706867530.884259218'
                      userRoles:
                        - Administrator
                      userGroups: []
                      userRole: Administrator
                      userGroup: null
                      tests: []
                      id: 69b41005b23f3b6a77d125ed
                  username: StandardRegistry
                  hederaAccountId: 0.0.6046379
                - did: >-
                    did:hedera:testnet:AacaQZTo8bEEecUXTZMar5BvZjAkvsEAFcD6NmzgXt5K_0.0.8148963
                  vcDocument:
                    createDate: '2026-03-13T13:34:33.856Z'
                    updateDate: '2026-03-13T13:34:47.849Z'
                    hash: 2L9fzuBnQpQnnZeSXXQi3NTuXDsJG5YjeeDRj4wWomhi
                    hederaStatus: ISSUE
                    signature: 0
                    type: STANDARD_REGISTRY
                    option:
                      status: NEW
                    owner: >-
                      did:hedera:testnet:DtFfFAkJo9QLV8dqsMfWF2BEC5VFkVn4BzGqaAjkjpic_0.0.8204128
                    topicId: 0.0.8204128
                    messageId: '1773408887.187315595'
                    document:
                      id: urn:uuid:af79517f-940f-4e7a-b895-2f2f1682b493
                      type:
                        - VerifiableCredential
                      issuer: >-
                        did:hedera:testnet:DtFfFAkJo9QLV8dqsMfWF2BEC5VFkVn4BzGqaAjkjpic_0.0.8204128
                      issuanceDate: '2026-03-13T13:34:33.794Z'
                      '@context':
                        - https://www.w3.org/2018/credentials/v1
                        - >-
                          ipfs://bafkreihj7gclc4qgem27tre5je6a3t7tpdrk4li6oamdl6bnflwnoyfs5i
                      credentialSubject:
                        - OrganizationName: Some orgname
                          Website: https://test.test
                          Tags: test
                          '@context':
                            - >-
                              ipfs://bafkreihj7gclc4qgem27tre5je6a3t7tpdrk4li6oamdl6bnflwnoyfs5i
                          id: >-
                            did:hedera:testnet:DtFfFAkJo9QLV8dqsMfWF2BEC5VFkVn4BzGqaAjkjpic_0.0.8204128
                          type: StandardRegistry
                      proof:
                        type: Ed25519Signature2018
                        created: '2026-03-13T13:34:33Z'
                        verificationMethod: >-
                          did:hedera:testnet:DtFfFAkJo9QLV8dqsMfWF2BEC5VFkVn4BzGqaAjkjpic_0.0.8204128#did-root-key
                        proofPurpose: assertionMethod
                        jws: >-
                          eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..9eDfxnIaEfkx17NwOsVJK6JrWu4zXgz1tYPhE5g-O1zlFaWO3a6KLv0UtrgHcob-yDFx4k9avcJJmFN3aowSCg
                    documentFileId: 69b41277b23f3b6a77d127a5
                    tableFileIds: []
                    id: 69b41269b23f3b6a77d1279e
                  policies: []
                  username: Verra
                  hederaAccountId: 0.0.8148961
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Returns all Standard Registries aggregated with polices and vcDocuments.
      tags:
        - accounts
  /accounts/balance:
    get:
      description: Requests current Hedera account balance.
      operationId: AccountApi_getBalance
      parameters: []
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BalanceResponseDTO'
              examples:
                authorizedWithHederaId:
                  summary: Authorized user with Hedera ID
                  value:
                    balance: 833.88244301 ℏ
                    unit: Hbar
                    user:
                      username: StandardRegistry
                      did: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                authorizedWithoutHederaId:
                  summary: Authorized user without Hedera ID
                  value: null
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Returns user's Hedera account balance.
      tags:
        - accounts
  /accounts/otp/generate:
    post:
      description: Generate an OTP secret for 2FA setup.
      operationId: AccountApi_generateOtp
      parameters: []
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateOPTResponseDTO'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: Generate an OTP secret for 2FA setup.
      tags:
        - accounts
  /accounts/otp/confirm:
    post:
      description: Confirm OTP setup by OTP token.
      operationId: AccountApi_confirmOtp
      parameters: []
      requestBody:
        required: true
        description: Configuration.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OTPConfirmDTO'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OTPConfirmResponseDTO'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: Confirm OTP setup.
      tags:
        - accounts
  /accounts/otp/status:
    get:
      description: Get OTP status for the current user.
      operationId: AccountApi_getOtpStatus
      parameters: []
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OTPStatusResponseDTO'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: Get OTP status.
      tags:
        - accounts
  /accounts/otp/deactivate:
    post:
      description: Deactivate 2FA.
      operationId: AccountApi_deactivateOtp
      parameters: []
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponseDTO'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: Deactivate 2FA.
      tags:
        - accounts
  /analytics/search/policies:
    post:
      description: >-
        Search policies. Only users with the Standard Registry role are allowed
        to make the request.
      operationId: AnalyticsApi_searchPolicies
      parameters: []
      requestBody:
        required: true
        description: Filters.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterSearchPoliciesDTO'
            examples:
              Filter:
                value:
                  policyId: 69aeb71ef8c5b278e3bab4e5
              GlobalWithFilters:
                value:
                  threshold: 0
                  type: Global
                  owner: >-
                    did:hedera:testnet:6RM7qg4qcK68ciX3DtSMXYU7jVuvf9qvVL4ciQmTX2j8_0.0.4230990
                  minTokensCount: 5
                  minVcCount: 13
                  minVpCount: 1
                  toolMessageIds:
                    - '1741365085.279118931'
              LocalWithPolicyAndTool:
                value:
                  threshold: 0
                  policyId: 69b9719c3ac44dc8f6b5096a
                  type: Local
                  toolMessageIds:
                    - '1726593517.484578000'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchPoliciesDTO'
              examples:
                WithPolicyId:
                  summary: Response for request with policyId
                  value:
                    target:
                      type: Local
                      id: 69b7cd37a48bb15eb7afb308
                      topicId: 0.0.8245828
                      messageId: '1773653426.428090343'
                      uuid: 9d948508-4cc4-49f3-9c1e-c9fb9976c602
                      name: Remote Work GHG Policy
                      description: Remote_Work_GHG_Policy
                      version: '1'
                      status: PUBLISH
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8145348
                      vcCount: 1
                      vpCount: 0
                      tokensCount: 0
                      rate: 100
                      tags: []
                    result:
                      - type: Local
                        id: 69b7da996d2f71c7a55b1fa3
                        topicId: 0.0.8246509
                        messageId: '1773662571.607239000'
                        uuid: df23e461-c3ba-48d5-9bf6-db1f96a2f2b7
                        name: CDM AMS-III.AR Policy
                        description: >-
                          Substituting fossil fuel-based lighting with LED/CFL
                          lighting systems
                        version: '1'
                        status: PUBLISH
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8145348
                        vcCount: 1
                        vpCount: 0
                        tokensCount: 0
                        rate: 9
                        tags: []
                      - type: Local
                        id: 69b9727c3ac44dc8f6b50a8b
                        topicId: 0.0.8264658
                        messageId: '1773763808.323660342'
                        uuid: e8e70f1c-fc6f-48cd-a0f1-6de39f6efb02
                        name: CDM AMS-II.G Policy
                        description: >-
                          Energy efficiency measures in thermal applications of
                          non-renewable biomass
                        version: '1'
                        status: PUBLISH
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8145348
                        vcCount: 1
                        vpCount: 0
                        tokensCount: 0
                        rate: 9
                        tags: []
                      - type: Local
                        id: 69b9719c3ac44dc8f6b5096a
                        topicId: 0.0.8264592
                        messageId: '1773761007.292762801'
                        uuid: a57b4e28-2b81-4d43-83a6-8c85d7983b0f
                        name: CDM AMS-III.BB
                        description: CDM AMS-III.BB. policy
                        version: '1'
                        status: PUBLISH
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8145348
                        vcCount: 1
                        vpCount: 0
                        tokensCount: 0
                        rate: 8
                        tags: []
                GlobalWithFilters:
                  summary: Global search response with filters
                  value:
                    target: null
                    result:
                      - type: Global
                        topicId: 0.0.4230993
                        messageId: '1713278598.610141122'
                        uuid: c4db13c6-7c04-490a-881a-e41cfdb435d0
                        name: CDM AMS-III.AR Policy
                        description: >-
                          Substituting fossil fuel-based lighting with LED/CFL
                          lighting systems
                        version: '1'
                        status: PUBLISH
                        owner: >-
                          did:hedera:testnet:6RM7qg4qcK68ciX3DtSMXYU7jVuvf9qvVL4ciQmTX2j8_0.0.4230990
                        vcCount: 22
                        vpCount: 4
                        tokensCount: 6030
                        tags: []
                LocalWithPolicyAndTool:
                  summary: Local response with target and tools filter
                  value:
                    target:
                      type: Local
                      id: 69b9719c3ac44dc8f6b5096a
                      topicId: 0.0.8264592
                      messageId: '1773761007.292762801'
                      uuid: a57b4e28-2b81-4d43-83a6-8c85d7983b0f
                      name: CDM AMS-III.BB
                      description: CDM AMS-III.BB. policy
                      version: '1'
                      status: PUBLISH
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8145348
                      vcCount: 1
                      vpCount: 0
                      tokensCount: 0
                      rate: 100
                      tags: []
                    result:
                      - type: Local
                        id: 69b7da996d2f71c7a55b1fa3
                        topicId: 0.0.8246509
                        messageId: '1773662571.607239000'
                        uuid: df23e461-c3ba-48d5-9bf6-db1f96a2f2b7
                        name: CDM AMS-III.AR Policy
                        description: >-
                          Substituting fossil fuel-based lighting with LED/CFL
                          lighting systems
                        version: '1'
                        status: PUBLISH
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8145348
                        vcCount: 1
                        vpCount: 0
                        tokensCount: 0
                        rate: 63
                        tags: []
                      - type: Local
                        id: 69b9727c3ac44dc8f6b50a8b
                        topicId: 0.0.8264658
                        messageId: '1773763808.323660342'
                        uuid: e8e70f1c-fc6f-48cd-a0f1-6de39f6efb02
                        name: CDM AMS-II.G Policy
                        description: >-
                          Energy efficiency measures in thermal applications of
                          non-renewable biomass
                        version: '1'
                        status: PUBLISH
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8145348
                        vcCount: 1
                        vpCount: 0
                        tokensCount: 0
                        rate: 63
                        tags: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Search policies.
      tags:
        - analytics
  /analytics/compare/policies:
    post:
      description: >-
        Compare policies. Only users with the Standard Registry role are allowed
        to make the request.
      operationId: AnalyticsApi_comparePolicies
      parameters: []
      requestBody:
        required: true
        description: Filters.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterPoliciesDTO'
            examples:
              MixedSources:
                value:
                  policies:
                    - type: id
                      value: 69aeb71ef8c5b278e3bab4e5
                    - type: message
                      value: '1773670900.819264517'
                    - type: file
                      value:
                        id: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        name: File Name
                        value: base65...
                  eventsLvl: '0'
                  propLvl: '0'
                  childrenLvl: '0'
                  idLvl: '0'
              DatabaseOnly:
                value:
                  policyIds:
                    - 69aeb71ef8c5b278e3bab4e5
                    - 69b8115f3dc0fa022156fb89
                  eventsLvl: '0'
                  propLvl: '0'
                  childrenLvl: '0'
                  idLvl: '0'
              Legacy:
                value:
                  policyId1: 69aeb71ef8c5b278e3bab4e5
                  policyId2: 69b8115f3dc0fa022156fb89
                  eventsLvl: '0'
                  propLvl: '0'
                  childrenLvl: '0'
                  idLvl: '0'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ComparePoliciesDTO'
                  - $ref: '#/components/schemas/ComparePoliciesMultiDTO'
              examples:
                SingleCompare:
                  summary: Compare two policies
                  value:
                    left: {}
                    right: {}
                    total: 24
                    blocks:
                      columns: []
                      report: []
                    roles:
                      columns: []
                      report: []
                    groups:
                      columns: []
                      report: []
                    topics:
                      columns: []
                      report: []
                    tokens:
                      columns: []
                      report: []
                    tools:
                      columns: []
                      report: []
                MultiCompare:
                  summary: Compare one policy with many
                  value:
                    size: 3
                    left: {}
                    rights: []
                    totals:
                      - 60
                      - 99
                    blocks:
                      columns: []
                      report: []
                    roles:
                      columns: []
                      report: []
                    groups:
                      columns: []
                      report: []
                    topics:
                      columns: []
                      report: []
                    tokens:
                      columns: []
                      report: []
                    tools:
                      columns: []
                      report: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Invalid parameters
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Compare policies.
      tags:
        - analytics
  /analytics/compare/policy/original/{policyId}:
    post:
      description: >-
        Compare policies with original state. Only users with the Standard
        Registry role are allowed to make the request.
      operationId: AnalyticsApi_compareOriginalPolicy
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Filters.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CompareOriginalPolicyFilterDTO'
            examples:
              OriginalPolicyFilter:
                value:
                  eventsLvl: '1'
                  propLvl: '1'
                  childrenLvl: '0'
                  idLvl: '0'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComparePoliciesDTO'
              example:
                left: {}
                right: {}
                total: 24
                blocks:
                  columns: []
                  report: []
                roles:
                  columns: []
                  report: []
                groups:
                  columns: []
                  report: []
                topics:
                  columns: []
                  report: []
                tokens:
                  columns: []
                  report: []
                tools:
                  columns: []
                  report: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Compare policies with original state.
      tags:
        - analytics
  /analytics/compare/modules:
    post:
      description: >-
        Compare modules. Only users with the Standard Registry role are allowed
        to make the request.
      operationId: AnalyticsApi_compareModules
      parameters: []
      requestBody:
        required: true
        description: Filters.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterModulesDTO'
            examples:
              Filter:
                value:
                  eventsLvl: '2'
                  propLvl: '2'
                  childrenLvl: '2'
                  idLvl: '0'
                  moduleId1: 69baa4cf63637d350db5b59c
                  moduleId2: 69baa4b563637d350db5b594
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompareModulesDTO'
              example:
                left:
                  id: 69baa4cf63637d350db5b59c
                  name: Module_1
                  description: Description
                right:
                  id: 69baa4b563637d350db5b594
                  name: Module_2
                  description: ''
                total: 22
                blocks:
                  columns: []
                  report: []
                inputEvents:
                  columns: []
                  report: []
                outputEvents:
                  columns: []
                  report: []
                variables:
                  columns: []
                  report: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                message:
                  - moduleId2 must be a string
                error: Unprocessable Entity
                statusCode: 422
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Compare modules.
      tags:
        - analytics
  /analytics/compare/schemas:
    post:
      description: >-
        Compare schemas. Only users with the Standard Registry role are allowed
        to make the request.
      operationId: AnalyticsApi_compareSchemas
      parameters: []
      requestBody:
        required: true
        description: Filters.
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/CompareSchemasByIdsRequestDTO'
                - $ref: '#/components/schemas/CompareSchemasByListRequestDTO'
            examples:
              BySchemaIds:
                value:
                  schemaId1: 69aeb71ef8c5b278e3bab4e5
                  schemaId2: 69b8115f3dc0fa022156fb89
                  idLvl: '0'
              BySchemaList:
                value:
                  schemas:
                    - type: id
                      value: 69aeb71ef8c5b278e3bab4e5
                    - type: id
                      value: 69b8115f3dc0fa022156fb89
                  idLvl: '0'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompareSchemasDTO'
              example:
                left:
                  id: 69aeb71ef8c5b278e3bab4e5
                  name: Schema_1
                  description: Description_1
                  uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                  topicId: 0.0.6046379
                  version: 1.0.0
                  iri: '#20e0202f-bbf6-441e-97e8-b2c9af9a3a4d&1.0.0'
                  policy: CDM AMS-II.J Policy
                right:
                  id: 69b8115f3dc0fa022156fb89
                  name: Schema_2
                  description: Description_2
                  uuid: 3ec235e9-fffc-42ff-b1c3-f3ba712b8a5b
                  topicId: 0.0.8264622
                  version: 1.0.0
                  iri: '#e998578c-ef14-4c4b-96a8-3158c5a0f9ab&1.0.0'
                  policy: VM0042 V2.1
                total: 44
                fields:
                  columns: []
                  report: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                message:
                  - schemaId2 must be a string
                error: Unprocessable Entity
                statusCode: 422
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Compare schemas.
      tags:
        - analytics
  /analytics/compare/documents:
    post:
      description: >-
        Compare documents. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: AnalyticsApi_compareDocuments
      parameters: []
      requestBody:
        required: true
        description: Filters.
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/CompareDocumentsByIdsRequestDTO'
                - $ref: '#/components/schemas/CompareDocumentsByListRequestDTO'
            examples:
              ByDocumentIds:
                value:
                  eventsLvl: '0'
                  propLvl: '0'
                  childrenLvl: '0'
                  idLvl: '0'
                  documentId1: 69aeb71ef8c5b278e3bab4e5
                  documentId2: 69b8115f3dc0fa022156fb89
              ByDocumentList:
                value:
                  eventsLvl: '0'
                  propLvl: '0'
                  childrenLvl: '0'
                  idLvl: '0'
                  documentIds:
                    - 69aeb71ef8c5b278e3bab4e5
                    - 69b8115f3dc0fa022156fb89
                    - 69b7da996d2f71c7a55b1fa3
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/CompareDocumentsDTO'
                  - $ref: '#/components/schemas/CompareDocumentsMultiDTO'
              examples:
                SingleCompare:
                  summary: Compare two documents
                  value:
                    left:
                      id: 69aeb71ef8c5b278e3bab4e5
                      type: VerifiableCredential
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      policy: 69b9727c3ac44dc8f6b50a8b
                    right:
                      id: 69b8115f3dc0fa022156fb89
                      type: VerifiableCredential
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      policy: 69b7da996d2f71c7a55b1fa3
                    total: 68
                    documents:
                      columns: []
                      report: []
                MultiCompare:
                  summary: Compare one document with many
                  value:
                    size: 3
                    left:
                      id: 69aeb71ef8c5b278e3bab4e5
                      type: VerifiableCredential
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      policy: 69b9727c3ac44dc8f6b50a8b
                    rights:
                      - id: 69b8115f3dc0fa022156fb89
                        type: VerifiableCredential
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        policy: 69b7da996d2f71c7a55b1fa3
                      - id: 69b7da996d2f71c7a55b1fa3
                        type: VerifiableCredential
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        policy: 69afeab013b23cf457db9720
                    totals:
                      - 68
                      - 51
                    documents:
                      columns: []
                      report: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Invalid parameters
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Compare documents.
      tags:
        - analytics
  /analytics/compare/tools:
    post:
      description: >-
        Compare tools. Only users with the Standard Registry role are allowed to
        make the request.
      operationId: AnalyticsApi_compareTools
      parameters: []
      requestBody:
        required: true
        description: Filters.
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/CompareToolsByIdsRequestDTO'
                - $ref: '#/components/schemas/CompareToolsByListRequestDTO'
            examples:
              ByToolIds:
                value:
                  eventsLvl: '0'
                  propLvl: '0'
                  childrenLvl: '0'
                  idLvl: '0'
                  toolId1: 69aeb71ef8c5b278e3bab4e5
                  toolId2: 69b8115f3dc0fa022156fb89
              ByToolList:
                value:
                  eventsLvl: '0'
                  propLvl: '0'
                  childrenLvl: '0'
                  idLvl: '0'
                  toolIds:
                    - 69aeb71ef8c5b278e3bab4e5
                    - 69b8115f3dc0fa022156fb89
                    - 69b7da996d2f71c7a55b1fa3
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/CompareToolsDTO'
                  - $ref: '#/components/schemas/CompareToolsMultiDTO'
              examples:
                SingleCompare:
                  summary: Compare two tools
                  value:
                    left:
                      id: 69b9727a3ac44dc8f6b50a44
                      name: Tool 30
                      description: ''
                      hash: 4r7i6SXuDxDrk8dkwomzgkfFp8FqMuWSCsuWqZhhYLZ4
                      messageId: '1707417996.173398196'
                    right:
                      id: 69b7da936d2f71c7a55b1e99
                      name: Tool 21
                      description: ''
                      hash: 71ZWDSX2cUPsye4AuMUqXUhgk1XBDnpi4Ky1mtjYqYom
                      messageId: '1706873385.455822873'
                    total: 74
                    blocks:
                      columns: []
                      report: []
                    inputEvents:
                      columns: []
                      report: []
                    outputEvents:
                      columns: []
                      report: []
                    variables:
                      columns: []
                      report: []
                MultiCompare:
                  summary: Compare one tool with many
                  value:
                    size: 3
                    left:
                      id: 69b9727a3ac44dc8f6b50a44
                      name: Tool 30
                      description: ''
                      hash: 4r7i6SXuDxDrk8dkwomzgkfFp8FqMuWSCsuWqZhhYLZ4
                      messageId: '1707417996.173398196'
                    rights:
                      - id: 69b7da936d2f71c7a55b1e99
                        name: Tool 21
                        description: ''
                        hash: 71ZWDSX2cUPsye4AuMUqXUhgk1XBDnpi4Ky1mtjYqYom
                        messageId: '1706873385.455822873'
                      - id: 69b7da8d6d2f71c7a55b1e67
                        name: Tool 33
                        description: ''
                        hash: Ceo5z8VkMbYWAcgjhesqGXHzJ9Z6aEdEEGWA4Jq4XE2i
                        messageId: '1726593517.484578000'
                    totals:
                      - 74
                      - 52
                    blocks:
                      columns: []
                      report: []
                    inputEvents:
                      columns: []
                      report: []
                    outputEvents:
                      columns: []
                      report: []
                    variables:
                      columns: []
                      report: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Invalid parameters
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Compare tools.
      tags:
        - analytics
  /analytics/compare/policies/export:
    post:
      description: >-
        Compare policies. Only users with the Standard Registry role are allowed
        to make the request.
      operationId: AnalyticsApi_comparePoliciesExport
      parameters:
        - name: type
          required: true
          in: query
          description: File type
          schema:
            example: csv
            type: string
      requestBody:
        required: true
        description: Filters.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterPoliciesDTO'
            examples:
              MixedSources:
                value:
                  policies:
                    - type: id
                      value: 69aeb71ef8c5b278e3bab4e5
                    - type: message
                      value: '1773670900.819264517'
                    - type: file
                      value:
                        id: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        name: File Name
                        value: base65...
                  eventsLvl: '0'
                  propLvl: '0'
                  childrenLvl: '0'
                  idLvl: '0'
              DatabaseOnly:
                value:
                  policyIds:
                    - 69aeb71ef8c5b278e3bab4e5
                    - 69b8115f3dc0fa022156fb89
                  eventsLvl: '0'
                  propLvl: '0'
                  childrenLvl: '0'
                  idLvl: '0'
              Legacy:
                value:
                  policyId1: 69aeb71ef8c5b278e3bab4e5
                  policyId2: 69b8115f3dc0fa022156fb89
                  eventsLvl: '0'
                  propLvl: '0'
                  childrenLvl: '0'
                  idLvl: '0'
      responses:
        '200':
          description: Successful operation.
          content:
            text/csv:
              schema:
                type: string
              example: >-
                data:text/csv;charset=utf-8;"Policy 1"

                "Policy ID","Policy Name","Policy Description","Policy
                Topic","Policy Version"

                "69b98f573ac44dc8f6b50b66","Test_Policy_2","","",""


                "Policy 2"

                "Policy ID","Policy Name","Policy Description","Policy
                Topic","Policy Version"

                "69b98d6a3ac44dc8f6b50b03","Test_Policy_1","","",""


                "Policy Roles"

                "Name","Name","Total Rate"


                "Policy Groups"

                "Name","Name","Total Rate"


                "Policy Topics"

                "Name","Name","Total Rate"


                "Policy Tokens"

                "Name","Name","Total Rate"


                "Policy Tools"

                "Name","Name","Total Rate"


                "Policy Blocks"

                "Offset","Index","Type","Tag","Index","Type","Tag","Index
                Rate","Permission Rate","Prop Rate","Event Rate","Artifact
                Rate","Total Rate"

                "1","1","interfaceContainerBlock","","1","interfaceContainerBlock","","100%","100%","80%","100%","100%","95%"

                "2","1","interfaceContainerBlock","Block_1","1","interfaceContainerBlock","Block_1","100%","100%","83%","0%","100%","70%"

                "2","","","","2","interfaceContainerBlock","Block_2","-","-","-","-","-","-"


                "Total","66%"
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Invalid parameters
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Compare policies.
      tags:
        - analytics
  /analytics/compare/modules/export:
    post:
      description: >-
        Compare modules. Only users with the Standard Registry role are allowed
        to make the request.
      operationId: AnalyticsApi_compareModulesExport
      parameters:
        - name: type
          required: true
          in: query
          description: File type
          schema:
            example: csv
            type: string
      requestBody:
        required: true
        description: Filters.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterModulesDTO'
            examples:
              Filter:
                value:
                  eventsLvl: '2'
                  propLvl: '2'
                  childrenLvl: '2'
                  idLvl: '0'
                  moduleId1: 69baa4cf63637d350db5b59c
                  moduleId2: 69baa4b563637d350db5b594
      responses:
        '200':
          description: Successful operation.
          content:
            text/csv:
              schema:
                type: string
              example: >-
                data:text/csv;charset=utf-8;"Module 1"

                "Module ID","Module Name","Module Description"

                "69baa4cf63637d350db5b59c","Module_1","Some specific module for
                test purposes"


                "Module 2"

                "Module ID","Module Name","Module Description"

                "69baa4b563637d350db5b594","test",""


                "Module Input Events"

                "Name","Name","Total Rate"


                "Module Output Events"

                "Name","Name","Total Rate"

                "","VC","-"


                "Module Variables"

                "Name","Name","Total Rate"

                "","schema","-"


                "Module Blocks"

                "Offset","Index","Type","Tag","Index","Type","Tag","Index
                Rate","Permission Rate","Prop Rate","Event Rate","Artifact
                Rate","Total Rate"

                "1","1","module","Module","1","module","Module","100%","100%","20%","100%","100%","80%"

                "2","1","interfaceContainerBlock","Block_1","","","","-","-","-","-","-","-"

                "2","","","","1","requestVcDocumentBlock","Block_1","-","-","-","-","-","-"

                "2","","","","2","sendToGuardianBlock","Block_2","-","-","-","-","-","-"


                "Total","22%"
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                message:
                  - moduleId2 must be a string
                error: Unprocessable Entity
                statusCode: 422
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Compare modules.
      tags:
        - analytics
  /analytics/compare/schemas/export:
    post:
      description: >-
        Compare schemas. Only users with the Standard Registry role are allowed
        to make the request.
      operationId: AnalyticsApi_compareSchemasExport
      parameters:
        - name: type
          required: true
          in: query
          description: File type
          schema:
            example: csv
            type: string
      requestBody:
        required: true
        description: Filters.
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/CompareSchemasByIdsRequestDTO'
                - $ref: '#/components/schemas/CompareSchemasByListRequestDTO'
            examples:
              BySchemaIds:
                value:
                  schemaId1: 69aeb71ef8c5b278e3bab4e5
                  schemaId2: 69b8115f3dc0fa022156fb89
                  idLvl: '0'
              BySchemaList:
                value:
                  schemas:
                    - type: id
                      value: 69aeb71ef8c5b278e3bab4e5
                    - type: id
                      value: 69b8115f3dc0fa022156fb89
                  idLvl: '0'
      responses:
        '200':
          description: Successful operation.
          content:
            text/csv:
              schema:
                type: string
              example: >-
                data:text/csv;charset=utf-8;"Schema 1"

                "Schema ID","Schema Name","Schema Description","Schema
                Topic","Schema Version"

                "#99b759f6-462d-4d85-97bf-afeb2eedae3d","Date
                Range","","0.0.8275392","1.0.0"


                "Schema 2"

                "Schema ID","Schema Name","Schema Description","Schema
                Topic","Schema Version"

                "#32281127-d22c-4997-8821-50b33b3dbf81&1.0.0","Date
                Range","","0.0.8264592","1.0.0"


                "Schema Fields"

                "Offset","Index","Field Name","Index","Field Name","Index
                Rate","Prop Rate","Total Rate"

                "1","-1","id","-1","id","100%","100%","100%"

                "1","0","field0","0","field0","100%","88%","88%"

                "1","1","field1","1","field1","100%","88%","88%"


                "Total","92%"
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                message:
                  - schemaId2 must be a string
                error: Unprocessable Entity
                statusCode: 422
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Compare schemas.
      tags:
        - analytics
  /analytics/compare/documents/export:
    post:
      description: >-
        Compare documents. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: AnalyticsApi_compareDocumentsExport
      parameters:
        - name: type
          required: true
          in: query
          description: File type
          schema:
            example: csv
            type: string
      requestBody:
        required: true
        description: Filters.
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/CompareDocumentsByIdsRequestDTO'
                - $ref: '#/components/schemas/CompareDocumentsByListRequestDTO'
            examples:
              ByDocumentIds:
                value:
                  eventsLvl: '0'
                  propLvl: '0'
                  childrenLvl: '0'
                  idLvl: '0'
                  documentId1: 69aeb71ef8c5b278e3bab4e5
                  documentId2: 69b8115f3dc0fa022156fb89
              ByDocumentList:
                value:
                  eventsLvl: '0'
                  propLvl: '0'
                  childrenLvl: '0'
                  idLvl: '0'
                  documentIds:
                    - 69aeb71ef8c5b278e3bab4e5
                    - 69b8115f3dc0fa022156fb89
                    - 69b7da996d2f71c7a55b1fa3
      responses:
        '200':
          description: Successful operation.
          content:
            text/csv:
              schema:
                type: string
              examples:
                SingleCompare:
                  summary: Compare two documents (CSV export)
                  value: >-
                    data:text/csv;charset=utf-8;"Document 1"

                    "Document ID","Document Type","Document Owner","Policy"

                    "69bade1834a0e18a5386cb9c","VC","did:hedera:testnet:4FmP2iynDzSgmCLGec9xSWYEvda3MW6oSPxZPz11zSLZ_0.0.8145348","69b9727c3ac44dc8f6b50a8b"


                    "Document 2"

                    "Document ID","Document Type","Document Owner","Policy"

                    "69badb212b76af3f7f759084","VC","did:hedera:testnet:4FmP2iynDzSgmCLGec9xSWYEvda3MW6oSPxZPz11zSLZ_0.0.8145348","69b7da996d2f71c7a55b1fa3"


                    "Data"

                    "Offset","ID","Message","Type","Schema","Owner","ID","Message","Type","Schema","Owner","Document
                    Rate","Options Rate","Total Rate"

                    "1","69bade1834a0e18a5386cb9c","1773854231.595894000","VC","PP","did:hedera:testnet:4FmP2iynDzSgmCLGec9xSWYEvda3MW6oSPxZPz11zSLZ_0.0.8145348","69badb212b76af3f7f759084","1773853471.698871273","VC","PP","did:hedera:testnet:4FmP2iynDzSgmCLGec9xSWYEvda3MW6oSPxZPz11zSLZ_0.0.8145348","95%","100%","97%"

                    "2","69baddfe34a0e18a5386cb8b","1773854204.523907802","VC","PP","did:hedera:testnet:4FmP2iynDzSgmCLGec9xSWYEvda3MW6oSPxZPz11zSLZ_0.0.8145348","69badb092b76af3f7f759073","1773853447.748138817","VC","PP","did:hedera:testnet:4FmP2iynDzSgmCLGec9xSWYEvda3MW6oSPxZPz11zSLZ_0.0.8145348","95%","100%","97%"


                    "Total","97%"
                MultiCompare:
                  summary: Compare one document with many (CSV export)
                  value: >-
                    data:text/csv;charset=utf-8;"Document 1"

                    "Document ID","Document Type","Document Owner","Policy"

                    "69bade1834a0e18a5386cb9c","VC","did:hedera:testnet:4FmP2iynDzSgmCLGec9xSWYEvda3MW6oSPxZPz11zSLZ_0.0.8145348","69b9727c3ac44dc8f6b50a8b"


                    "Document 2"

                    "Document ID","Document Type","Document Owner","Policy"

                    "69badb212b76af3f7f759084","VC","did:hedera:testnet:4FmP2iynDzSgmCLGec9xSWYEvda3MW6oSPxZPz11zSLZ_0.0.8145348","69b7da996d2f71c7a55b1fa3"


                    "Data"

                    "Offset","ID","Message","Type","Schema","Owner","ID","Message","Type","Schema","Owner","Document
                    Rate","Options Rate","Total Rate"

                    "1","69bade1834a0e18a5386cb9c","1773854231.595894000","VC","PP","did:hedera:testnet:4FmP2iynDzSgmCLGec9xSWYEvda3MW6oSPxZPz11zSLZ_0.0.8145348","69badb212b76af3f7f759084","1773853471.698871273","VC","PP","did:hedera:testnet:4FmP2iynDzSgmCLGec9xSWYEvda3MW6oSPxZPz11zSLZ_0.0.8145348","95%","100%","97%"

                    "2","69baddfe34a0e18a5386cb8b","1773854204.523907802","VC","PP","did:hedera:testnet:4FmP2iynDzSgmCLGec9xSWYEvda3MW6oSPxZPz11zSLZ_0.0.8145348","69badb092b76af3f7f759073","1773853447.748138817","VC","PP","did:hedera:testnet:4FmP2iynDzSgmCLGec9xSWYEvda3MW6oSPxZPz11zSLZ_0.0.8145348","95%","100%","97%"


                    "Total","97%"


                    "Document 3"

                    "Document ID","Document Type","Document Owner","Policy"

                    "69b007bd9b241eae6a867179","VC","did:hedera:testnet:4Rh3aC5jNAzPJwwNtsy95Ava954Thyjk41gREjynY2D9_0.0.8145348","69afeab013b23cf457db9720"


                    "Data"

                    "Offset","ID","Message","Type","Schema","Owner","ID","Message","Type","Schema","Owner","Document
                    Rate","Options Rate","Total Rate"

                    "1","69bade1834a0e18a5386cb9c","1773854231.595894000","VC","PP","did:hedera:testnet:4FmP2iynDzSgmCLGec9xSWYEvda3MW6oSPxZPz11zSLZ_0.0.8145348","69b007bd9b241eae6a867179","1773143996.887383182","VC","I-REC
                    Registrant & Participant
                    App","did:hedera:testnet:4Rh3aC5jNAzPJwwNtsy95Ava954Thyjk41gREjynY2D9_0.0.8145348","84%","0%","42%"

                    "2","69baddfe34a0e18a5386cb8b","1773854204.523907802","VC","PP","did:hedera:testnet:4FmP2iynDzSgmCLGec9xSWYEvda3MW6oSPxZPz11zSLZ_0.0.8145348","","","","","","-","-","-"

                    "2","","","","","","69b007a59b241eae6a867166","1773143971.227034000","VC","I-REC
                    Registrant & Participant
                    App","did:hedera:testnet:4Rh3aC5jNAzPJwwNtsy95Ava954Thyjk41gREjynY2D9_0.0.8145348","-","-","-"


                    "Total","14%"
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Invalid parameters
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Compare documents.
      tags:
        - analytics
  /analytics/compare/tools/export:
    post:
      description: >-
        Compare tools. Only users with the Standard Registry role are allowed to
        make the request.
      operationId: AnalyticsApi_compareToolsExport
      parameters:
        - name: type
          required: true
          in: query
          description: File type
          schema:
            example: csv
            type: string
      requestBody:
        required: true
        description: Filters.
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/CompareToolsByIdsRequestDTO'
                - $ref: '#/components/schemas/CompareToolsByListRequestDTO'
            examples:
              ByToolIds:
                value:
                  eventsLvl: '0'
                  propLvl: '0'
                  childrenLvl: '0'
                  idLvl: '0'
                  toolId1: 69aeb71ef8c5b278e3bab4e5
                  toolId2: 69b8115f3dc0fa022156fb89
              ByToolList:
                value:
                  eventsLvl: '0'
                  propLvl: '0'
                  childrenLvl: '0'
                  idLvl: '0'
                  toolIds:
                    - 69aeb71ef8c5b278e3bab4e5
                    - 69b8115f3dc0fa022156fb89
                    - 69b7da996d2f71c7a55b1fa3
      responses:
        '200':
          description: Successful operation.
          content:
            text/csv:
              schema:
                type: string
              examples:
                SingleCompare:
                  summary: Compare two tools (CSV export)
                  value: >-
                    data:text/csv;charset=utf-8;"Tool 1"

                    "Tool ID","Tool Name","Tool Description","Tool Hash","Tool
                    Message"

                    "69b9727a3ac44dc8f6b50a44","Tool
                    30","","4r7i6SXuDxDrk8dkwomzgkfFp8FqMuWSCsuWqZhhYLZ4","1707417996.173398196"


                    "Tool 2"

                    "Tool ID","Tool Name","Tool Description","Tool Hash","Tool
                    Message"

                    "69b7da936d2f71c7a55b1e99","Tool
                    21","","71ZWDSX2cUPsye4AuMUqXUhgk1XBDnpi4Ky1mtjYqYom","1706873385.455822873"


                    "Tool Input Events"

                    "Name","Name","Total Rate"

                    "input_tool_30","","-"

                    "","input_tool_21","-"


                    "Tool Output Events"

                    "Name","Name","Total Rate"

                    "output_tool_30","","-"

                    "","output_tool_21","-"


                    "Tool Variables"

                    "Name","Name","Total Rate"

                    "Role","Role","100%"


                    "Tool Blocks"

                    "Offset","Index","Type","Tag","Index","Type","Tag","Index
                    Rate","Permission Rate","Prop Rate","Event Rate","Artifact
                    Rate","Total Rate"

                    "1","1","tool","Tool","1","tool","Tool","100%","100%","81%","0%","100%","70%"

                    "2","1","extractDataBlock","get_tool_30","1","extractDataBlock","get_tool_21","100%","100%","60%","100%","100%","90%"

                    "2","2","customLogicBlock","calc_tool_30","","","","-","-","-","-","-","-"

                    "2","3","extractDataBlock","set_tool_30","2","extractDataBlock","set_tool_21","0%","100%","60%","0%","100%","65%"


                    "Total","35%"
                MultiCompare:
                  summary: Compare one tool with many (CSV export)
                  value: >-
                    data:text/csv;charset=utf-8;"Tool 1"

                    "Tool ID","Tool Name","Tool Description","Tool Hash","Tool
                    Message"

                    "69b9727a3ac44dc8f6b50a44","Tool
                    30","","4r7i6SXuDxDrk8dkwomzgkfFp8FqMuWSCsuWqZhhYLZ4","1707417996.173398196"


                    "Tool 2"

                    "Tool ID","Tool Name","Tool Description","Tool Hash","Tool
                    Message"

                    "69b7da936d2f71c7a55b1e99","Tool
                    21","","71ZWDSX2cUPsye4AuMUqXUhgk1XBDnpi4Ky1mtjYqYom","1706873385.455822873"


                    "Tool Input Events"

                    "Name","Name","Total Rate"

                    "input_tool_30","","-"

                    "","input_tool_21","-"


                    "Tool Output Events"

                    "Name","Name","Total Rate"

                    "output_tool_30","","-"

                    "","output_tool_21","-"


                    "Tool Variables"

                    "Name","Name","Total Rate"

                    "Role","Role","100%"


                    "Tool Blocks"

                    "Offset","Index","Type","Tag","Index","Type","Tag","Index
                    Rate","Permission Rate","Prop Rate","Event Rate","Artifact
                    Rate","Total Rate"

                    "1","1","tool","Tool","1","tool","Tool","100%","100%","81%","0%","100%","70%"

                    "2","1","extractDataBlock","get_tool_30","1","extractDataBlock","get_tool_21","100%","100%","60%","100%","100%","90%"

                    "2","2","customLogicBlock","calc_tool_30","","","","-","-","-","-","-","-"

                    "2","3","extractDataBlock","set_tool_30","2","extractDataBlock","set_tool_21","0%","100%","60%","0%","100%","65%"


                    "Total","35%"


                    "Tool 3"

                    "Tool ID","Tool Name","Tool Description","Tool Hash","Tool
                    Message"

                    "69b7da8d6d2f71c7a55b1e67","Tool
                    33","","Ceo5z8VkMbYWAcgjhesqGXHzJ9Z6aEdEEGWA4Jq4XE2i","1726593517.484578000"


                    "Tool Input Events"

                    "Name","Name","Total Rate"

                    "input_tool_30","","-"

                    "","input_tool_33","-"


                    "Tool Output Events"

                    "Name","Name","Total Rate"

                    "output_tool_30","","-"

                    "","output_tool_33","-"


                    "Tool Variables"

                    "Name","Name","Total Rate"

                    "Role","Role","100%"


                    "Tool Blocks"

                    "Offset","Index","Type","Tag","Index","Type","Tag","Index
                    Rate","Permission Rate","Prop Rate","Event Rate","Artifact
                    Rate","Total Rate"

                    "1","1","tool","Tool","1","tool","Tool","100%","100%","81%","0%","100%","70%"

                    "2","1","extractDataBlock","get_tool_30","1","extractDataBlock","get_tool_33","100%","100%","60%","100%","100%","90%"

                    "2","2","customLogicBlock","calc_tool_30","2","customLogicBlock","calc_tool_33","100%","100%","66%","100%","100%","91%"

                    "2","3","extractDataBlock","set_tool_30","3","extractDataBlock","set_tool_33","100%","100%","60%","0%","100%","65%"


                    "Total","41%"
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Invalid parameters
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Compare tools.
      tags:
        - analytics
  /analytics/search/blocks:
    post:
      description: >-
        Search same blocks. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: AnalyticsApi_searchBlocks
      parameters: []
      requestBody:
        required: true
        description: Filters.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterSearchBlocksDTO'
            examples:
              Compact:
                summary: Compact request example
                value:
                  id: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                  config:
                    id: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    blockType: interfaceContainerBlock
                    uiMetaData:
                      type: blank
                    permissions:
                      - ANY_ROLE
                    defaultActive: true
                    onErrorAction: no-action
                    tag: ''
                    children:
                      - id: e9c0d9ee-fc29-4372-89e0-0a7e08516699
                        blockType: policyRolesBlock
                        defaultActive: true
                        uiMetaData:
                          title: Roles
                          description: Choose Roles
                        roles:
                          - Project Participant
                          - VVB
                        permissions:
                          - NO_ROLE
                        onErrorAction: no-action
                        tag: Choose_Roles1
                        children: []
                        events: []
                        artifacts: []
                    events: []
                    artifacts: []
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SearchBlocksDTO'
              example:
                - name: CDM AMS-III.AR Policy
                  description: >-
                    Substituting fossil fuel-based lighting with LED/CFL
                    lighting systems
                  version: '1'
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                  topicId: 0.0.6046379
                  messageId: '1773670900.819264517'
                  hash: 12099
                  chains:
                    - hash: 12099
                      target:
                        id: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        tag: pp_grid_sr
                        blockType: interfaceDocumentsSourceBlock
                        config:
                          id: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                          blockType: interfaceDocumentsSourceBlock
                          tag: pp_grid_sr
                        path:
                          - 0
                          - 1
                          - 0
                          - 0
                      pairs:
                        - hash: 100
                          source:
                            id: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                            tag: header
                            blockType: interfaceContainerBlock
                            config:
                              id: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                              blockType: interfaceContainerBlock
                              tag: header
                            path:
                              - 0
                              - 1
                          filter:
                            id: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                            tag: header
                            blockType: interfaceContainerBlock
                            config:
                              id: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                              blockType: interfaceContainerBlock
                              tag: header
                            path:
                              - 0
                              - 1
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                message:
                  - id must be a string
                error: Unprocessable Entity
                statusCode: 422
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Search same blocks.
      tags:
        - analytics
  /analytics/checkIndexer:
    get:
      description: Returns Indexer Availability (true/false).
      operationId: AnalyticsApi_checkIndexerAvailability
      parameters: []
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get Indexer Availability.
      tags:
        - analytics
  /artifacts:
    get:
      description: Returns all artifacts.
      operationId: ArtifactApi_getArtifactsV2_2
      parameters:
        - name: id
          required: false
          in: query
          description: Artifact identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: type
          required: false
          in: query
          description: Tool|Policy
          schema:
            enum:
              - tool
              - policy
            type: string
        - name: policyId
          required: false
          in: query
          description: Policy identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: toolId
          required: false
          in: query
          description: Tool identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ArtifactDTOItem'
              example:
                - createDate: '2026-03-16T09:31:27.902Z'
                  updateDate: '2026-03-16T09:31:28.042Z'
                  uuid: dcc46b7b-3bb8-4a60-8e5b-f7b17ae76d1e
                  policyId: 69b7cdefa48bb15eb7afb3e7
                  name: region_emission_factors
                  type: JSON
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8145348
                  extention: json
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8145348
                  id: 69b7cdefa48bb15eb7afb3e5
                - createDate: '2026-03-16T09:31:27.898Z'
                  updateDate: '2026-03-16T09:31:28.042Z'
                  uuid: ba6f7bc5-0f91-46a5-a681-1658f93a1b68
                  policyId: 69b7cdefa48bb15eb7afb3e7
                  name: country_emission_factors
                  type: JSON
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8145348
                  extention: json
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8145348
                  id: 69b7cdefa48bb15eb7afb3e3
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Returns all artifacts.
      tags:
        - artifacts
  /artifacts/{parentId}:
    post:
      description: Upload artifact. For users with the Standard Registry role only.
      operationId: ArtifactApi_uploadArtifacts
      parameters:
        - name: parentId
          required: true
          in: path
          description: Parent ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: |-
          Form data with artifacts.

          Default:
          - artifacts: [&lt;binary file&gt;]

          Modified:
          - artifacts: [&lt;binary file 1&gt;, &lt;binary file 2&gt;]
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UploadArtifactsDTO'
            examples:
              uploadArtifactsBody:
                value:
                  artifacts:
                    - <binary file>
              Modified:
                value:
                  artifacts:
                    - <binary file 1>
                    - <binary file 2>
      responses:
        '201':
          description: Artifacts uploaded successfully.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ArtifactDTOItem'
              examples:
                SingleUpload:
                  summary: One uploaded artifact
                  value:
                    - createDate: '2026-03-19T14:43:45.250Z'
                      updateDate: '2026-03-19T14:43:45.250Z'
                      uuid: d5fc05d5-efc8-4b00-80d7-020374361452
                      policyId: 69ba978163637d350db5b56f
                      name: 1_profile_preset
                      type: JSON
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8145348
                      extention: json
                      category: policy
                      id: 69bc0ba1f6b2fa8ae50f2ec9
                MultiUpload:
                  summary: Multiple uploaded artifacts
                  value:
                    - createDate: '2026-03-16T09:31:27.902Z'
                      updateDate: '2026-03-16T09:31:28.042Z'
                      uuid: dcc46b7b-3bb8-4a60-8e5b-f7b17ae76d1e
                      policyId: 69b7cdefa48bb15eb7afb3e7
                      name: region_emission_factors
                      type: JSON
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8145348
                      extention: json
                      category: policy
                      id: 69b7cdefa48bb15eb7afb3e5
                    - createDate: '2026-03-16T09:31:27.898Z'
                      updateDate: '2026-03-16T09:31:28.042Z'
                      uuid: ba6f7bc5-0f91-46a5-a681-1658f93a1b68
                      policyId: 69b7cdefa48bb15eb7afb3e7
                      name: country_emission_factors
                      type: JSON
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8145348
                      extention: json
                      category: policy
                      id: 69b7cdefa48bb15eb7afb3e3
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorDTO'
              example:
                statusCode: 400
                message: The request should be a form-data
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: There is no appropriate policy
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Upload artifact.
      tags:
        - artifacts
  /artifacts/{artifactId}:
    delete:
      description: Delete artifact.
      operationId: ArtifactApi_deleteArtifact
      parameters:
        - name: artifactId
          required: true
          in: path
          description: Artifact ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Delete artifact.
      tags:
        - artifacts
  /artifacts/files/{fileId}:
    get:
      description: Returns file from GridFS by its identifier.
      operationId: ArtifactApi_downloadFile
      parameters:
        - name: fileId
          required: true
          in: path
          description: File identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '201':
          description: Successful operation. Returns file content.
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          description: Unauthorized request.
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Download file by id.
      tags:
        - artifacts
    delete:
      description: Deletes file from GridFS by _id
      operationId: ArtifactApi_deleteFile
      parameters:
        - name: fileId
          required: true
          in: path
          description: File identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorDTO'
              example:
                message: fileId is required
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Delete file by id
      tags:
        - artifacts
  /artifacts/files:
    post:
      description: Uploads/overwrites file in GridFS
      operationId: ArtifactApi_upsertFile
      parameters: []
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                fileId:
                  type: string
                  description: Existing file _id to overwrite (optional)
                  example: 69aeb71ef8c5b278e3bab4e5
      responses:
        '201':
          description: File uploaded successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpsertFileResponseDTO'
              example:
                fileId: 69bc1d9df6b2fa8ae50f2edc
                filename: file
                contentType: application/json
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorDTO'
              example:
                statusCode: 400
                message: The request should be a form-data
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: There are no files to upload.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Uploads/overwrites file
      tags:
        - artifacts
  /contracts:
    get:
      description: Returns all contracts.
      operationId: ContractsApi_getContracts
      parameters:
        - name: type
          required: true
          in: query
          description: Contract type
          schema:
            enum:
              - WIPE
              - RETIRE
            type: string
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: true
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: Contracts.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ContractDTO'
              examples:
                WIPE:
                  summary: Contracts list filtered by `type=WIPE`
                  value:
                    - createDate: '2026-03-20T08:24:09.121Z'
                      updateDate: '2026-03-20T09:08:01.905Z'
                      contractId: 0.0.8300131
                      description: Wipe contract description
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                      permissions: 7
                      topicId: 0.0.8300126
                      type: WIPE
                      lastSyncEventTimeStamp: '1773997659.461000723'
                      wipeContractIds: []
                      syncDisabled: false
                      version: 1.0.1
                      wipeTokenIds: []
                      id: 69bd0429fdc2fd0bb2f9e95b
                RETIRE:
                  summary: Contracts list filtered by `type=RETIRE`
                  value:
                    - createDate: '2026-03-20T08:26:36.292Z'
                      updateDate: '2026-03-20T08:55:03.162Z'
                      contractId: 0.0.8300155
                      description: Retire Contract description
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                      permissions: 3
                      topicId: 0.0.8300142
                      type: RETIRE
                      lastSyncEventTimeStamp: '1773996847.377859483'
                      wipeContractIds: []
                      syncDisabled: false
                      version: 1.0.1
                      wipeTokenIds:
                        - 0.0.8300593
                      id: 69bd04bcfdc2fd0bb2f9e971
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Return a list of all contracts.
      tags:
        - contracts
    post:
      description: >-
        Create smart-contract. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: ContractsApi_createContractV2_2
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContractConfigDTO'
            examples:
              createContractBodyRetire:
                value:
                  type: RETIRE
                  description: Retire contract description
              createContractBodyWipe:
                value:
                  type: WIPE
                  description: Wipe contract description
      responses:
        '201':
          description: Created contract.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractDTO'
              examples:
                RETIRE:
                  summary: Created RETIRE contract
                  value:
                    createDate: '2026-03-20T09:30:28.129Z'
                    updateDate: '2026-03-20T09:30:28.129Z'
                    contractId: 0.0.8301737
                    description: Retire contract description
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                    permissions: 3
                    topicId: 0.0.8301715
                    type: RETIRE
                    wipeContractIds: []
                    syncDisabled: false
                    version: 1.0.1
                    wipeTokenIds: []
                    id: 69bd13b4fdc2fd0bb2f9eccc
                WIPE:
                  summary: Created WIPE contract
                  value:
                    createDate: '2026-03-20T09:31:11.101Z'
                    updateDate: '2026-03-20T09:31:11.101Z'
                    contractId: 0.0.8301741
                    description: Wipe contract description
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                    permissions: 7
                    topicId: 0.0.8301716
                    type: WIPE
                    wipeContractIds: []
                    syncDisabled: false
                    version: 1.0.1
                    wipeTokenIds: []
                    id: 69bd13df2a7b53526de3826b
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Create contract.
      tags:
        - contracts
  /contracts/import:
    post:
      description: >-
        Import smart-contract. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: ContractsApi_importContract
      parameters: []
      requestBody:
        required: true
        description: Contract import configuration.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportContractDTO'
            examples:
              importContractBody:
                value:
                  contractId: 0.0.8301737
                  description: Imported contract
      responses:
        '200':
          description: Imported contract.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractDTO'
              examples:
                RETIRE:
                  summary: Imported RETIRE contract
                  value:
                    createDate: '2026-03-20T09:30:28.129Z'
                    updateDate: '2026-03-20T09:30:28.129Z'
                    contractId: 0.0.8301737
                    description: Imported contract
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                    permissions: 3
                    topicId: 0.0.8301715
                    type: RETIRE
                    lastSyncEventTimeStamp: '1773997659.461000723'
                    wipeContractIds: []
                    syncDisabled: false
                    version: 1.0.1
                    wipeTokenIds: []
                    id: 69bd13b4fdc2fd0bb2f9eccc
                WIPE:
                  summary: Imported WIPE contract
                  value:
                    createDate: '2026-03-20T09:31:11.101Z'
                    updateDate: '2026-03-20T09:31:11.101Z'
                    contractId: 0.0.8301741
                    description: Imported contract
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                    permissions: 7
                    topicId: 0.0.8301716
                    type: WIPE
                    lastSyncEventTimeStamp: '1773997659.461000723'
                    wipeContractIds: []
                    syncDisabled: false
                    version: 1.0.1
                    wipeTokenIds: []
                    id: 69bd13df2a7b53526de3826b
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Import contract.
      tags:
        - contracts
  /contracts/{contractId}/permissions:
    get:
      description: >-
        Get smart-contract permissions. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: ContractsApi_contractPermissions
      parameters:
        - name: contractId
          required: true
          in: path
          description: Contract Identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
      responses:
        '200':
          description: Contract permissions.
          content:
            application/json:
              schema:
                type: number
              example: 0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get contract permissions.
      tags:
        - contracts
  /contracts/{contractId}:
    delete:
      description: >-
        Remove smart-contract. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: ContractsApi_removeContract
      parameters:
        - name: contractId
          required: true
          in: path
          description: Contract Identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Remove contract.
      tags:
        - contracts
  /contracts/wipe/requests:
    get:
      description: >-
        Returns all wipe requests. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: ContractsApi_getWipeRequests
      parameters:
        - name: contractId
          required: true
          in: query
          description: Contract identifier
          schema:
            example: 0.0.1
            type: string
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: true
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WiperRequestDTO'
              example:
                - createDate: '2026-03-20T12:55:01.614Z'
                  updateDate: '2026-03-20T12:55:01.614Z'
                  contractId: 0.0.8300131
                  user: 0.0.8300155
                  token: 0.0.8305077
                  id: 69bd43a55b864fe37954a8bb
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Return a list of all wipe requests.
      tags:
        - contracts
  /contracts/wipe/{contractId}/requests/enable:
    post:
      description: >-
        Enable wipe contract requests. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: ContractsApi_enableWipeRequests
      parameters:
        - name: contractId
          required: true
          in: path
          description: Wipe Contract Identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Enable wipe requests.
      tags:
        - contracts
  /contracts/wipe/{contractId}/requests/disable:
    post:
      description: >-
        Disable wipe contract requests. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: ContractsApi_disableWipeRequests
      parameters:
        - name: contractId
          required: true
          in: path
          description: Wipe Contract Identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Disable wipe requests.
      tags:
        - contracts
  /contracts/wipe/requests/{requestId}/approve:
    post:
      description: >-
        Approve wipe contract request. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: ContractsApi_approveWipeRequest
      parameters:
        - name: requestId
          required: true
          in: path
          description: Request identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Approve wipe request.
      tags:
        - contracts
  /contracts/wipe/requests/{requestId}/reject:
    delete:
      description: >-
        Reject wipe contract request. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: ContractsApi_rejectWipeRequest
      parameters:
        - name: requestId
          required: true
          in: path
          description: Request identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
        - name: ban
          required: false
          in: query
          description: Reject and ban
          schema:
            example: true
            type: boolean
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Reject wipe request.
      tags:
        - contracts
  /contracts/wipe/{contractId}/requests:
    delete:
      description: >-
        Clear wipe contract requests. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: ContractsApi_clearWipeRequests
      parameters:
        - name: contractId
          required: true
          in: path
          description: Wipe Contract Identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Clear wipe requests.
      tags:
        - contracts
  /contracts/wipe/{contractId}/requests/{hederaId}:
    delete:
      description: >-
        Clear wipe contract requests for specific hedera account. Only users
        with the Standard Registry role are allowed to make the request.
      operationId: ContractsApi_clearWipeRequestsWithHederaId
      parameters:
        - name: contractId
          required: true
          in: path
          description: Contract identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
        - name: hederaId
          required: true
          in: path
          description: Hedera account identifier
          schema:
            example: 0.0.1
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Clear wipe requests for hedera account.
      tags:
        - contracts
  /contracts/wipe/{contractId}/admin/{hederaId}:
    post:
      description: >-
        Add wipe contract admin. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: ContractsApi_wipeAddAdmin
      parameters:
        - name: contractId
          required: true
          in: path
          description: Contract identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
        - name: hederaId
          required: true
          in: path
          description: Hedera account identifier
          schema:
            example: 0.0.1
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Add wipe admin.
      tags:
        - contracts
    delete:
      description: >-
        Remove wipe contract admin. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: ContractsApi_wipeRemoveAdmin
      parameters:
        - name: contractId
          required: true
          in: path
          description: Contract identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
        - name: hederaId
          required: true
          in: path
          description: Hedera account identifier
          schema:
            example: 0.0.1
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Remove wipe admin.
      tags:
        - contracts
  /contracts/wipe/{contractId}/manager/{hederaId}:
    post:
      description: >-
        Add wipe contract manager. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: ContractsApi_wipeAddManager
      parameters:
        - name: contractId
          required: true
          in: path
          description: Contract identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
        - name: hederaId
          required: true
          in: path
          description: Hedera account identifier
          schema:
            example: 0.0.1
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Add wipe manager.
      tags:
        - contracts
    delete:
      description: >-
        Remove wipe contract manager. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: ContractsApi_wipeRemoveManager
      parameters:
        - name: contractId
          required: true
          in: path
          description: Contract identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
        - name: hederaId
          required: true
          in: path
          description: Hedera account identifier
          schema:
            example: 0.0.1
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Remove wipe manager.
      tags:
        - contracts
  /contracts/wipe/{contractId}/wiper/{hederaId}:
    post:
      description: >-
        Add wipe contract wiper. For Wipe contracts v1.0.0 only. For v1.0.1+ use
        the endpoint with tokenId. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: ContractsApi_wipeAddWiper
      parameters:
        - name: contractId
          required: true
          in: path
          description: Wipe Contract Identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
        - name: hederaId
          required: true
          in: path
          description: Hedera account identifier
          schema:
            example: 0.0.1
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Add wipe wiper.
      tags:
        - contracts
    delete:
      description: >-
        Remove wipe contract wiper. For Wipe contracts v1.0.0 only. For v1.0.1+
        use the endpoint with tokenId. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: ContractsApi_wipeRemoveWiper
      parameters:
        - name: contractId
          required: true
          in: path
          description: Wipe Contract Identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
        - name: hederaId
          required: true
          in: path
          description: Hedera account identifier
          schema:
            example: 0.0.1
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Remove wipe wiper.
      tags:
        - contracts
  /contracts/wipe/{contractId}/wiper/{hederaId}/{tokenId}:
    post:
      description: >-
        Add wipe contract wiper for specific token. For Wipe contracts v1.0.1+
        only. Only users with the Standard Registry role are allowed to make the
        request.
      operationId: ContractsApi_wipeAddWiperWithToken
      parameters:
        - name: contractId
          required: true
          in: path
          description: Wipe Contract Identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
        - name: hederaId
          required: true
          in: path
          description: Hedera account identifier
          schema:
            example: 0.0.1
            type: string
        - name: tokenId
          required: true
          in: path
          description: Token identifier
          schema:
            example: 0.0.1
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Add wipe wiper for token.
      tags:
        - contracts
    delete:
      description: >-
        Remove wipe contract wiper for specific token. For Wipe contracts
        v1.0.1+ only. Only users with the Standard Registry role are allowed to
        make the request.
      operationId: ContractsApi_wipeRemoveWiperWithToken
      parameters:
        - name: contractId
          required: true
          in: path
          description: Wipe Contract Identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
        - name: hederaId
          required: true
          in: path
          description: Hedera account identifier
          schema:
            example: 0.0.1
            type: string
        - name: tokenId
          required: true
          in: path
          description: Token identifier. The token the wiper was allowed to wipe.
          schema:
            example: 0.0.1
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Remove wipe wiper for token.
      tags:
        - contracts
  /contracts/retire/{contractId}/pools/sync:
    post:
      description: >-
        Sync retire contract pools. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: ContractsApi_retireSyncPools
      parameters:
        - name: contractId
          required: true
          in: path
          description: Contract identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
      responses:
        '200':
          description: Sync date in ISO 8601 format. The timestamp when pools were synced.
          content:
            application/json:
              schema:
                type: string
              example: '2026-03-20T16:45:30.000Z'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Sync retire pools.
      tags:
        - contracts
  /contracts/retire/requests:
    get:
      description: Returns all retire requests.
      operationId: ContractsApi_getRetireRequests
      parameters:
        - name: contractId
          required: true
          in: query
          description: Contract identifier
          schema:
            example: 0.0.1
            type: string
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: true
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RetireRequestDTO'
              example:
                - id: f3b2a9c1e4d5678901234567
                  contractId: f3b2a9c1e4d5678901234567
                  tokenIds:
                    - eyJhbGciOi...
                  user: string
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Return a list of all retire requests.
      tags:
        - contracts
  /contracts/retire/pools:
    get:
      description: Returns all retire pools.
      operationId: ContractsApi_getRetirePools
      parameters:
        - name: contractId
          required: true
          in: query
          description: Contract identifier
          schema:
            example: 0.0.6046379
            type: string
        - name: tokens
          required: true
          in: query
          description: Comma-separated token IDs. No spaces between tokens.
          schema:
            example: 0.0.1,0.0.2,0.0.3
            type: string
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: true
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RetirePoolDTO'
              example:
                - createDate: '2026-03-20T17:58:51.312Z'
                  updateDate: '2026-03-20T18:00:01.342Z'
                  contractId: 0.0.8308132
                  tokens:
                    - token: 0.0.8308700
                      count: 1
                      type: non-fungible
                      tokenSymbol: TT
                      decimals: '0'
                      contract: 0.0.8308101
                    - token: 0.0.8308712
                      count: 3
                      type: non-fungible
                      tokenSymbol: DD
                      decimals: '0'
                      contract: 0.0.8308101
                  tokenIds:
                    - 0.0.8308700
                    - 0.0.8308712
                  immediately: true
                  enabled: false
                  id: 69bd8adb90fe6f912cbb0d05
                - createDate: '2026-03-20T17:14:31.038Z'
                  updateDate: '2026-03-20T18:00:01.342Z'
                  contractId: 0.0.8308132
                  tokens:
                    - token: 0.0.8308361
                      count: 3
                      type: fungible
                      tokenSymbol: CER
                      decimals: '0'
                      contract: 0.0.8308101
                  tokenIds:
                    - 0.0.8308361
                  immediately: false
                  enabled: true
                  id: 69bd80773090533214e7380e
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Return a list of all retire pools.
      tags:
        - contracts
  /contracts/retire/{contractId}/requests:
    delete:
      description: >-
        Clear retire contract requests. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: ContractsApi_clearRetireRequests
      parameters:
        - name: contractId
          required: true
          in: path
          description: Contract identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Clear retire requests.
      tags:
        - contracts
  /contracts/retire/{contractId}/pools:
    delete:
      description: >-
        Clear retire contract pools. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: ContractsApi_clearRetirePools
      parameters:
        - name: contractId
          required: true
          in: path
          description: Contract identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Clear retire pools.
      tags:
        - contracts
    post:
      description: >-
        Set retire contract pool. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: ContractsApi_setRetirePool
      parameters:
        - name: contractId
          required: true
          in: path
          description: Contract identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RetirePoolTokenDTO'
            examples:
              setRetirePoolBody:
                value:
                  tokens:
                    - token: 0.0.8300593
                      count: 1
                  immediately: true
      responses:
        '200':
          description: Successful operation.
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Set retire pool.
      tags:
        - contracts
  /contracts/retire/pools/{poolId}:
    delete:
      description: >-
        Unset retire contract pool. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: ContractsApi_unsetRetirePool
      parameters:
        - name: poolId
          required: true
          in: path
          description: Pool Identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Unset retire pool.
      tags:
        - contracts
  /contracts/retire/requests/{requestId}:
    delete:
      description: >-
        Unset retire contract request. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: ContractsApi_unsetRetireRequest
      parameters:
        - name: requestId
          required: true
          in: path
          description: Request Identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Unset retire request.
      tags:
        - contracts
  /contracts/retire/pools/{poolId}/retire:
    post:
      description: Retire tokens.
      operationId: ContractsApi_retire
      parameters:
        - name: poolId
          required: true
          in: path
          description: Pool Identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                oneOf:
                  - $ref: '#/components/schemas/RetireRequestTokenFTDTO'
                  - $ref: '#/components/schemas/RetireRequestTokenNFTDTO'
            examples:
              retireTokensBodyFT:
                summary: Fungible token retirement request
                value:
                  - token: 0.0.8300593
                    count: 3
                    serials: []
              retireTokensBodyNFT:
                summary: Non-fungible token retirement request
                value:
                  - token: 0.0.8300593
                    count: 0
                    serials:
                      - 1
                      - 2
                      - 4
      responses:
        '200':
          description: >-
            Successful operation. Returns retire pool `immediately` flag: `true`
            — tokens are retired right away; `false` — retirement requires
            approval.
          content:
            application/json:
              schema:
                type: boolean
              examples:
                retireRequestWithApproval:
                  summary: Retire request with approval
                  value: false
                retireRequestWithoutApproval:
                  summary: Retire request without approval
                  value: true
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorDTO'
              example:
                message: Request body must be an array
                error: Bad Request
                statusCode: 400
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Retire tokens.
      tags:
        - contracts
  /contracts/retire/requests/{requestId}/approve:
    post:
      description: >-
        Approve retire contract request. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: ContractsApi_approveRetire
      parameters:
        - name: requestId
          required: true
          in: path
          description: Request identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Approve retire request.
      tags:
        - contracts
  /contracts/retire/requests/{requestId}/cancel:
    delete:
      description: >-
        Cancel retire contract request. Intended for regular users (not Standard
        Registry) to cancel their own retire request.
      operationId: ContractsApi_cancelRetireRequest
      parameters:
        - name: requestId
          required: true
          in: path
          description: Request identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Cancel retire request.
      tags:
        - contracts
  /contracts/retire/{contractId}/admin/{hederaId}:
    post:
      description: >-
        Add retire contract admin. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: ContractsApi_retireAddAdmin
      parameters:
        - name: contractId
          required: true
          in: path
          description: Contract identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
        - name: hederaId
          required: true
          in: path
          description: Hedera account identifier
          schema:
            example: 0.0.1
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Add retire admin.
      tags:
        - contracts
    delete:
      description: >-
        Remove retire contract admin. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: ContractsApi_retireRemoveAdmin
      parameters:
        - name: contractId
          required: true
          in: path
          description: Contract identifier
          schema:
            example: 652745597a7b53526de37c05
            type: string
        - name: hederaId
          required: true
          in: path
          description: Hedera account identifier
          schema:
            example: 0.0.1
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Remove retire admin.
      tags:
        - contracts
  /contracts/retire:
    get:
      description: Returns all retire vcs.
      operationId: ContractsApi_getRetireVCs
      parameters:
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: true
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RetireVcDocumentDTO'
              example:
                - createDate: '2026-03-20T18:36:53.698Z'
                  updateDate: '2026-03-20T18:36:53.698Z'
                  hash: 88chLeeXjKUXa13dNeEJz2tNehsjo3HQGUX5QH3kmY6b
                  hederaStatus: NEW
                  signature: 0
                  type: RETIRE
                  option:
                    status: NEW
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                  document:
                    id: urn:uuid:93328f13-cac2-49a8-9c30-fb52842093dd
                    type:
                      - VerifiableCredential
                    issuer: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                    issuanceDate: '2026-03-20T18:36:34.285Z'
                    '@context':
                      - https://www.w3.org/2018/credentials/v1
                      - >-
                        ipfs://bafkreifsj2y32io54zolo4ltcjzu45rg4ejqogpkmbkhb3llzig6dpjf64
                    credentialSubject:
                      - user: 0.0.6057669
                        contractId: 0.0.8308132
                        tokens:
                          - tokenId: 0.0.8308164
                            count: 0
                            serials:
                              - 2
                              - 3
                              - 4
                              - 10
                        '@context':
                          - >-
                            ipfs://bafkreifsj2y32io54zolo4ltcjzu45rg4ejqogpkmbkhb3llzig6dpjf64
                        id: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                        type: Retire
                    proof:
                      type: Ed25519Signature2018
                      created: '2026-03-20T18:36:34Z'
                      verificationMethod: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835#did-root-key
                      proofPurpose: assertionMethod
                      jws: >-
                        eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..f71046hE9geZXL7uPc5EIc2YsNGMWsRakFwN_iMht4O6njdQZPtKckkQ6H9P1pZBaRz-_yaAy-gmfO-I3LJDBw
                  documentFileId: 69bd93c590fe6f912cbb0d36
                  documentFields:
                    - credentialSubject.0.user
                  tableFileIds: []
                  id: 69bd93c590fe6f912cbb0d38
                - createDate: '2026-03-20T10:44:47.623Z'
                  updateDate: '2026-03-20T10:44:47.623Z'
                  hash: 7Sj7GyTA7TocoZGfVczb9jSfGhitHKZ133G7pny4nFTV
                  hederaStatus: NEW
                  signature: 0
                  type: RETIRE
                  option:
                    status: NEW
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                  document:
                    id: urn:uuid:2e122bba-2f7e-4f46-9ea6-2d790e300caa
                    type:
                      - VerifiableCredential
                    issuer: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                    issuanceDate: '2026-03-20T10:44:31.703Z'
                    '@context':
                      - https://www.w3.org/2018/credentials/v1
                      - >-
                        ipfs://bafkreifsj2y32io54zolo4ltcjzu45rg4ejqogpkmbkhb3llzig6dpjf64
                    credentialSubject:
                      - user: 0.0.6057669
                        contractId: 0.0.8300155
                        tokens:
                          - tokenId: 0.0.8302213
                            count: 6
                            serials: []
                        '@context':
                          - >-
                            ipfs://bafkreifsj2y32io54zolo4ltcjzu45rg4ejqogpkmbkhb3llzig6dpjf64
                        id: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                        type: Retire
                    proof:
                      type: Ed25519Signature2018
                      created: '2026-03-20T10:44:31Z'
                      verificationMethod: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835#did-root-key
                      proofPurpose: assertionMethod
                      jws: >-
                        eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..FHaguzWfQoSo2t9SEcAAlJUHNgjtI8_Op189piqVWj_w
                  documentFileId: 69bd251f5b864fe37954a6f9
                  documentFields:
                    - credentialSubject.0.user
                  tableFileIds: []
                  id: 69bd251f5b864fe37954a6fb
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Return a list of all retire vcs.
      tags:
        - contracts
  /contracts/retireIndexer:
    get:
      description: Returns all retire vcs from Indexer.
      operationId: ContractsApi_getRetireVCsFromIndexer
      parameters:
        - name: contractTopicId
          required: true
          in: query
          description: The topic id of contract
          schema:
            example: 0.0.4641052
            type: string
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RetireVcIndexerDocumentDTO'
              example:
                - id: 66ee387945ab8bf9448f45e2
                  lastUpdate: 0
                  topicId: 0.0.4641052
                  consensusTimestamp: '1722418989.344504535'
                  owner: 0.0.1416
                  uuid: 8494b750-eed6-4d13-82a1-5cc1a644ffae
                  status: ISSUE
                  type: VC-Document
                  action: create-vc-document
                  lang: en-US
                  responseType: str
                  options:
                    issuer: >-
                      did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.4640363
                    relationships: null
                    documentStatus: null
                    encodedData: false
                  analytics:
                    textSearch: >-
                      0.0.4641052|0.0.1416|1722418989.344504535|8494b750-eed6-4d13-82a1-5cc1a644ffae|ISSUE|VC-Document|en-US||did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.4640363|0.0.4437864|0.0.4641053|[object
                      Object]|ipfs://bafkreifsj2y32io54zolo4ltcjzu45rg4ejqogpkmbkhb3llzig6dpjf64|did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.4640363|Retire|Retire
                    schemaId: '1743436678.828522000'
                    schemaName: Retire
                  analyticsUpdate: 1773995161141
                  coordUpdate: 1756843304325
                  files:
                    - >-
                      bafkreihwnas7c7ji53iolrjkjuqevqdg2j6je2supras5vghzjq5ccnyai
                  documents:
                    - id: urn:uuid:e7c97bd5-39a3-4f98-b642-b20ec4f81aaf
                      type:
                        - VerifiableCredential
                      issuer: >-
                        did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.4640363
                      issuanceDate: '2024-07-31T09:43:02.117Z'
                      '@context':
                        - https://www.w3.org/2018/credentials/v1
                        - >-
                          ipfs://bafkreifsj2y32io54zolo4ltcjzu45rg4ejqogpkmbkhb3llzig6dpjf64
                      credentialSubject:
                        - user: 0.0.4437864
                          contractId: 0.0.4641053
                          tokens:
                            - tokenId: 0.0.4641082
                              count: 0
                              serials:
                                - 23
                                - 22
                                - 21
                                - 20
                                - 19
                              type: Token
                              '@context':
                                - >-
                                  ipfs://bafkreifsj2y32io54zolo4ltcjzu45rg4ejqogpkmbkhb3llzig6dpjf64
                          '@context':
                            - >-
                              ipfs://bafkreifsj2y32io54zolo4ltcjzu45rg4ejqogpkmbkhb3llzig6dpjf64
                          id: >-
                            did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.4640363
                          type: Retire
                      proof:
                        type: Ed25519Signature2018
                        created: '2024-07-31T09:43:02Z'
                        verificationMethod: >-
                          did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.4640363#did-root-key
                        proofPurpose: assertionMethod
                        jws: >-
                          eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..DGYzJmYogDgbByIERm8cnb_zOJsAKWLg79hW2bkp2mleb57VRaEjm8bOwj9AizlSD4zQzhmXXux7L_nhRO0yCQ
                  topics: []
                  tokens: []
                  sequenceNumber: 3
                  loaded: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Return a list of all retire vcs from Indexer.
      tags:
        - contracts
  /demo/registered-users:
    get:
      description: Returns list of registered users.
      operationId: DemoApi_registeredUsers
      parameters: []
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RegisteredUserDTO'
              example:
                - did: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                  username: StandardRegistry
                  role: STANDARD_REGISTRY
                  policyRoles: []
                - parent: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                  did: >-
                    did:hedera:testnet:4Rh3aC5jNAzPJwwNtsy95Ava954Thyjk41gREjynY2D9_0.0.8299835
                  username: Installer
                  role: USER
                  policyRoles:
                    - name: CDM AMS-III.AR Policy
                      version: 1.0.0
                      role: Project Participant
                    - name: CDM AMS-III.BB Policy
                      version: 1.0.5
                      role: Project Participant
                - parent: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                  did: >-
                    did:hedera:testnet:3asJKFx6RVPRJi1qQNuRs26yuqJ7211mWJ5hrxNkmZqA_0.0.8299835
                  username: VVB
                  role: USER
                  policyRoles:
                    - name: CDM AMS-III.AR Policy
                      version: 1.0.0
                      role: VVB
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      summary: Returns list of registered users.
      tags:
        - demo
  /demo/random-key:
    get:
      description: Generate demo key.
      operationId: DemoApi_randomKey
      parameters: []
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DemoKeyResponseDTO'
              example:
                id: 0.0.8340839
                key: >-
                  302e020100300506032b657004220420f6168da5cd88b85151e9735252419f0768b87b1a800f7e3b7908d15fa1f358a2
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Generate demo key.
      tags:
        - demo
  /demo/push/random-key:
    get:
      description: Generate demo key.
      operationId: DemoApi_pushRandomKey
      parameters: []
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DemoTaskResponseDTO'
              example:
                taskId: 405f156b-fad1-4f88-9b30-925dbeea1e39
                expectation: 3
                action: Create random key
                userId: 69bcfd91c98df6ceb05e8a79
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Generate demo key.
      tags:
        - demo
  /external/{policyId}/{blockTag}:
    post:
      description: Sends data from an external source.
      operationId: ExternalApi_receiveExternalDataCustom
      parameters:
        - name: policyId
          required: true
          in: path
          description: Target policy identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: blockTag
          required: true
          in: path
          description: Target block tag in policy
          schema:
            example: external_data_block
            type: string
      requestBody:
        required: true
        description: Object that contains a VC Document.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExternalDocumentDTO'
            examples:
              Request Body:
                value:
                  owner: string
                  policyTag: string
                  document:
                    id: 8f457a5a-c02b-4a18-a7d3-20e4def1bf7f
                    '@context':
                      - https://www.w3.org/2018/credentials/v1
                    type:
                      - VerifiableCredential
                      - a2274869-4a41-4446-8efd-dacde5a81221
                    credentialSubject:
                      - id: >-
                          did:hedera:testnet:4YZuEXk95TMt2WfuAB5UYJMQSgSfUgBNutnZioUVAxkR_0.0.1774462341919
                        field0: value0
                        field1: value1
                        policyId: 69c42569ae73da728c8d9027
                        accountId: 0.0.1774462367074
                    issuer: >-
                      did:hedera:testnet:4YZuEXk95TMt2WfuAB5UYJMQSgSfUgBNutnZioUVAxkR_0.0.1774462341919
                    issuanceDate: '2026-03-25T17:12:17.150Z'
                    proof:
                      type: Ed25519Signature2018
                      created: '2026-03-25T17:12:17.150Z'
                      verificationMethod: >-
                        did:hedera:testnet:4YZuEXk95TMt2WfuAB5UYJMQSgSfUgBNutnZioUVAxkR_0.0.1774462341919#did-root-key
                      proofPurpose: assertionMethod
                      jws: eyJhbGciOiJFZERTQSJ9..signature
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      summary: Sends data from an external source.
      tags:
        - external
  /external:
    post:
      description: Sends data from an external source.
      operationId: ExternalApi_receiveExternalData
      parameters: []
      requestBody:
        required: true
        description: Object that contains a VC Document.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExternalDocumentDTO'
            examples:
              Request Body:
                value:
                  owner: string
                  policyTag: string
                  document:
                    id: 8f457a5a-c02b-4a18-a7d3-20e4def1bf7f
                    '@context':
                      - https://www.w3.org/2018/credentials/v1
                    type:
                      - VerifiableCredential
                      - a2274869-4a41-4446-8efd-dacde5a81221
                    credentialSubject:
                      - id: >-
                          did:hedera:testnet:4YZuEXk95TMt2WfuAB5UYJMQSgSfUgBNutnZioUVAxkR_0.0.1774462341919
                        field0: value0
                        field1: value1
                        policyId: 69c42569ae73da728c8d9027
                        accountId: 0.0.1774462367074
                    issuer: >-
                      did:hedera:testnet:4YZuEXk95TMt2WfuAB5UYJMQSgSfUgBNutnZioUVAxkR_0.0.1774462341919
                    issuanceDate: '2026-03-25T17:12:17.150Z'
                    proof:
                      type: Ed25519Signature2018
                      created: '2026-03-25T17:12:17.150Z'
                      verificationMethod: >-
                        did:hedera:testnet:4YZuEXk95TMt2WfuAB5UYJMQSgSfUgBNutnZioUVAxkR_0.0.1774462341919#did-root-key
                      proofPurpose: assertionMethod
                      jws: eyJhbGciOiJFZERTQSJ9..signature
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      summary: Sends data from an external source.
      tags:
        - external
  /external/{policyId}/{blockTag}/sync-events:
    post:
      description: Sends data from an external source.
      operationId: ExternalApi_receiveExternalDataCustomWithSyncEvents
      parameters:
        - name: policyId
          required: true
          in: path
          description: Target policy identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: blockTag
          required: true
          in: path
          description: Target block tag in policy
          schema:
            example: external_data_block
            type: string
        - name: history
          required: false
          in: query
          description: Include execution history in sync events response
          schema:
            example: true
            type: boolean
      requestBody:
        required: true
        description: Object that contains a VC Document.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExternalDocumentDTO'
            examples:
              Request Body:
                value:
                  owner: string
                  policyTag: string
                  document:
                    id: 8f457a5a-c02b-4a18-a7d3-20e4def1bf7f
                    '@context':
                      - https://www.w3.org/2018/credentials/v1
                    type:
                      - VerifiableCredential
                      - a2274869-4a41-4446-8efd-dacde5a81221
                    credentialSubject:
                      - id: >-
                          did:hedera:testnet:4YZuEXk95TMt2WfuAB5UYJMQSgSfUgBNutnZioUVAxkR_0.0.1774462341919
                        field0: value0
                        field1: value1
                        policyId: 69c42569ae73da728c8d9027
                        accountId: 0.0.1774462367074
                    issuer: >-
                      did:hedera:testnet:4YZuEXk95TMt2WfuAB5UYJMQSgSfUgBNutnZioUVAxkR_0.0.1774462341919
                    issuanceDate: '2026-03-25T17:12:17.150Z'
                    proof:
                      type: Ed25519Signature2018
                      created: '2026-03-25T17:12:17.150Z'
                      verificationMethod: >-
                        did:hedera:testnet:4YZuEXk95TMt2WfuAB5UYJMQSgSfUgBNutnZioUVAxkR_0.0.1774462341919#did-root-key
                      proofPurpose: assertionMethod
                      jws: eyJhbGciOiJFZERTQSJ9..signature
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseDTOWithSyncEvents'
              example:
                response: {}
                result: null
                steps: []
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      summary: Sends data from an external source.
      tags:
        - external
  /external/sync-events:
    post:
      description: Sends data from an external source.
      operationId: ExternalApi_receiveExternalDataWithSyncEvents
      parameters:
        - name: history
          required: false
          in: query
          description: History
          schema:
            example: true
            type: boolean
      requestBody:
        required: true
        description: Object that contains a VC Document.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExternalDocumentDTO'
            examples:
              Request Body:
                value:
                  owner: string
                  policyTag: string
                  document:
                    id: 8f457a5a-c02b-4a18-a7d3-20e4def1bf7f
                    '@context':
                      - https://www.w3.org/2018/credentials/v1
                    type:
                      - VerifiableCredential
                      - a2274869-4a41-4446-8efd-dacde5a81221
                    credentialSubject:
                      - id: >-
                          did:hedera:testnet:4YZuEXk95TMt2WfuAB5UYJMQSgSfUgBNutnZioUVAxkR_0.0.1774462341919
                        field0: value0
                        field1: value1
                        policyId: 69c42569ae73da728c8d9027
                        accountId: 0.0.1774462367074
                    issuer: >-
                      did:hedera:testnet:4YZuEXk95TMt2WfuAB5UYJMQSgSfUgBNutnZioUVAxkR_0.0.1774462341919
                    issuanceDate: '2026-03-25T17:12:17.150Z'
                    proof:
                      type: Ed25519Signature2018
                      created: '2026-03-25T17:12:17.150Z'
                      verificationMethod: >-
                        did:hedera:testnet:4YZuEXk95TMt2WfuAB5UYJMQSgSfUgBNutnZioUVAxkR_0.0.1774462341919#did-root-key
                      proofPurpose: assertionMethod
                      jws: eyJhbGciOiJFZERTQSJ9..signature
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseDTOWithSyncEvents'
              example:
                response: {}
                result: null
                steps: []
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      summary: Sends data from an external source.
      tags:
        - external
  /ipfs/file:
    post:
      description: Add file to IPFS.
      operationId: IpfsApi_postFile
      parameters: []
      requestBody:
        required: true
        description: Binary data.
        content:
          binary/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '201':
          description: File added successfully.
          content:
            application/json:
              schema:
                type: string
                example: bafkreibes2bxau2me5o75cxny5mj23ckztpcumoskewz73z52cpankttnm
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorDTO'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Body content in request is empty.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 422
                message: Body content in request is empty
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Add file to IPFS.
      tags:
        - ipfs
  /ipfs/file/direct:
    post:
      description: Add file to IPFS directly.
      operationId: IpfsApi_postFileDirect
      parameters: []
      requestBody:
        required: false
        description: Binary data.
        content:
          binary/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '201':
          description: File added successfully.
          content:
            application/json:
              schema:
                type: string
                example: bafkreibes2bxau2me5o75cxny5mj23ckztpcumoskewz73z52cpankttnm
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorDTO'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Body content in request is empty.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 422
                message: Body content in request is empty
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Add file to IPFS directly.
      tags:
        - ipfs
  /ipfs/file/dry-run/{policyId}:
    post:
      description: Add file to local IPFS simulation for dry run mode.
      operationId: IpfsApi_postFileDryRun
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Binary data.
        content:
          binary/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '201':
          description: File added successfully.
          content:
            application/json:
              schema:
                type: string
                example: 69c115c3892ada2bac183377
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Body content in request is empty.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 422
                message: Body content in request is empty
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Add file to local IPFS simulation for dry run mode.
      tags:
        - ipfs
  /ipfs/file/{cid}:
    get:
      description: Get file from IPFS.
      operationId: IpfsApi_getFile
      parameters:
        - name: cid
          required: true
          in: path
          description: File cid
          schema:
            example: bafkreibes2bxau2me5o75cxny5mj23ckztpcumoskewz73z52cpankttnm
            type: string
      responses:
        '200':
          description: Successful operation. Returns file content.
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          description: Unauthorized request.
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: File is not found.
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/NotFoundErrorDTO'
              example:
                statusCode: 404
                message: File is not found
        '500':
          description: Internal server error.
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get file from IPFS.
      tags:
        - ipfs
    delete:
      description: Remove file from IPFS.
      operationId: IpfsApi_deleteFile
      parameters:
        - name: cid
          required: true
          in: path
          description: File cid
          schema:
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: object
                nullable: true
                example: null
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Remove file from IPFS.
      tags:
        - ipfs
  /ipfs/file/{cid}/dry-run:
    get:
      description: Get file from local IPFS simulation for dry-run mode
      operationId: IpfsApi_getFileDryRun
      parameters:
        - name: cid
          required: true
          in: path
          description: File cid
          schema:
            example: 69c116d7892ada2bac1833a6
            type: string
      responses:
        '200':
          description: Successful operation. Returns file content.
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          description: Unauthorized request.
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: File is not found.
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/NotFoundErrorDTO'
              example:
                statusCode: 404
                message: File is not found
        '500':
          description: Internal server error.
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get file from local IPFS simulation for dry-run mode
      tags:
        - ipfs
  /logs:
    post:
      description: >-
        Return a list of all logs. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: LoggerApi_getLogs
      parameters: []
      requestBody:
        required: true
        description: Filters.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LogFilterDTO'
            examples:
              filterExample:
                value:
                  type: WARN
                  startDate: '2026-03-19T12:56:24.000Z'
                  endDate: '2026-03-21T12:56:24.000Z'
                  attributes:
                    - a3be3319-3558-4b69-bb69-de6e107dcf01
                    - >-
                      txid: 0.0.6046379@1774020526.908989078; payer sigs: 1;
                      total sigs: 1; message size: 600; memo size: 31; 
                  message: TRANSACTION
                  pageSize: 10
                  pageIndex: 0
                  sortDirection: desc
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LogResultDTO'
              example:
                totalCount: 1
                logs:
                  - message: TopicMessageSubmitTransaction
                    type: INFO
                    datetime: '2026-03-20T15:28:53.883Z'
                    attributes:
                      - TRANSACTION
                      - COMPLETION
                      - '2026-03-20T15:28:53.883Z'
                      - _
                      - TopicMessageSubmitTransaction
                      - 9c409646-6de6-4e0a-a5b8-5010de7ded08
                      - 0.0.6046379
                      - testnet
                      - >-
                        txid: 0.0.6046379@1774020526.908989078; payer sigs: 1;
                        total sigs: 1; message size: 600; memo size: 31; 
                    userId: null
                    id: 69bd67b53090533214e731f1
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Return a list of all logs.
      tags:
        - logs
  /logs/attributes:
    get:
      description: >-
        Return a list of attributes. Only users with the Standard Registry role
        are allowed to make the request. Response is limited to 20 items.
      operationId: LoggerApi_getAttributes
      parameters:
        - name: name
          required: false
          in: query
          description: Attribute name filter
          schema:
            example: Search
            type: string
        - name: existingAttributes
          required: false
          in: query
          description: Existing attributes
          schema:
            example:
              - WORKER
            type: array
            items:
              type: string
      responses:
        '200':
          description: Successful operation. Maximum 20 attribute values.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                maxItems: 20
                example:
                  - 12142637-892d-4b1f-a046-eedff9e2a793
                  - '2026-03-20T08:26:37.248Z'
                  - '2026-03-20T08:32:37.371Z'
                  - a3be3319-3558-4b69-bb69-de6e107dcf01
                  - >-
                    txid: 0.0.6046379@1774017194.587930740; payer sigs: 1; admin
                    keys: 1; KYC keys: 1; wipe keys: 1; pause keys: 0; supply
                    keys: 1; freeze keys: 1; token name size: 2; token symbol
                    size: 2; token memo size: 11; memo size: 0; 
                  - >-
                    txid: 0.0.6046379@1774020526.908989078; payer sigs: 1; total
                    sigs: 1; message size: 600; memo size: 31; 
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Return a list of attributes.
      tags:
        - logs
  /logs/seq:
    get:
      description: >-
        Return url on seq store. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: LoggerApi_getSeqUrl
      parameters: []
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SeqUrlResponseDTO'
              example:
                seq_url: http://localhost:5341
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Return url on seq store.
      tags:
        - logs
  /map/sh:
    get:
      description: Return sentinel API key.
      operationId: MapApi_getSentinelKey
      parameters: []
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: string
              example: 46e0a5e4-6a27-46a6-adcc-a4608a4513e4
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: >-
        Get sentinel API key from Guardian service environment settings
        (.env.guardian).
      tags:
        - map
  /metrics:
    get:
      description: Returns application metrics in Prometheus exposition format.
      operationId: MetricsApi_getMetrics
      parameters: []
      responses:
        '200':
          description: Successful operation. Returns metrics in Prometheus text format.
          content:
            text/plain:
              schema:
                type: string
                example: '# HELP nodejs_eventloop_lag_seconds Event loop lag in seconds.'
        '500':
          description: Internal server error.
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      summary: Return Prometheus metrics.
      tags:
        - metrics
  /modules:
    post:
      description: >-
        Creates a new module. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: ModulesApi_postModules
      parameters: []
      requestBody:
        required: true
        description: >-
          Module configuration. Only config with blockType: "module" is
          required. Other fields (name, description) are optional. Fields like
          id, uuid, creator, owner are set by the server.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModuleDTO'
            examples:
              createModule:
                summary: Minimal create
                value:
                  name: New Module
                  description: New module description
                  menu: show
                  config:
                    blockType: module
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModuleDTO'
              example:
                createDate: '2026-03-25T12:04:14.291Z'
                updateDate: '2026-03-25T12:04:14.291Z'
                uuid: f0624944-02f0-4329-8cae-e871c1984bf4
                name: New Module
                description: New module description
                status: DRAFT
                creator: >-
                  did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734
                owner: >-
                  did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734
                codeVersion: 1.0.0
                type: CUSTOM
                config:
                  blockType: module
                  permissions: []
                  children: []
                  events: []
                  artifacts: []
                  variables: []
                  inputEvents: []
                  outputEvents: []
                  innerEvents: []
                id: 69c3cf3e462c9c1141de3052
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: >-
            Invalid module config (missing config or config.blockType !==
            "module").
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Invalid module config
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Creates a new module.
      tags:
        - modules
    get:
      description: >-
        Returns all modules. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: ModulesApi_getModulesV2_2
      parameters:
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ModuleDTO'
              example:
                - createDate: '2026-03-25T12:23:36.763Z'
                  updateDate: '2026-03-25T12:24:28.059Z'
                  uuid: 2abde099-08f6-4d75-9de3-d6f33d95bc72
                  name: New Module
                  description: New module description
                  status: PUBLISHED
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  topicId: 0.0.8370210
                  messageId: '1774441459.171929000'
                  codeVersion: 1.0.0
                  type: CUSTOM
                  contentFileId: 69c3d3e5462c9c1141de3074
                  config:
                    name: New Module
                    description: New module description
                    blockType: module
                    permissions: []
                    id: 7d25fdf6-8fc4-4d01-b635-541b996415ce
                    tag: Module
                    children: []
                    events: []
                    artifacts: []
                    variables: []
                    inputEvents: []
                    outputEvents: []
                    innerEvents: []
                  id: 69c3d3c8462c9c1141de3069
                - createDate: '2026-03-25T12:23:29.549Z'
                  updateDate: '2026-03-25T12:23:53.759Z'
                  uuid: e4ecf6f4-36fb-4872-99b8-9b592aac241d
                  name: Device configuration module
                  description: Part of devices flow
                  status: DRAFT
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  codeVersion: 1.0.0
                  type: CUSTOM
                  config:
                    name: Device configuration module
                    description: Part of devices flow
                    blockType: module
                    permissions: []
                    id: 3dc74d7b-eae8-49a5-84d5-c267c1fd8d06
                    tag: Module
                    children: []
                    events: []
                    artifacts: []
                    variables: []
                    inputEvents: []
                    outputEvents: []
                    innerEvents: []
                  id: 69c3d3c1462c9c1141de3066
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Return a list of all modules.
      tags:
        - modules
  /modules/schemas:
    get:
      description: >-
        Returns all module schemas. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: ModulesApi_getModuleSchemas
      parameters:
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
        - name: topicId
          required: false
          in: query
          description: Filter module schemas by topic id.
          schema:
            example: 0.0.6046379
            type: string
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaDTO'
              example:
                - createDate: '2026-03-25T12:40:32.586Z'
                  updateDate: '2026-03-25T12:40:59.908Z'
                  uuid: b71c8b0e-b4aa-4d0b-ab63-639e306c02ea
                  name: Module schema 3
                  description: ''
                  entity: VC
                  status: PUBLISHED
                  version: '3'
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  topicId: 0.0.8370319
                  messageId: '1774442456.657381000'
                  documentURL: >-
                    ipfs://bafkreifyyqurrnlxnhblm57qobo2ecv4wjm3o7i3axgscls3ydjn3fefaq
                  contextURL: >-
                    ipfs://bafkreid6crdhdtk3mtusl4mqcrjlsan6o7eanyetko3k5nwykcvezndepy
                  iri: '#b71c8b0e-b4aa-4d0b-ab63-639e306c02ea&3'
                  readonly: false
                  system: false
                  active: false
                  category: MODULE
                  codeVersion: 1.2.0
                  document: innerSchemaConfigurationInText
                  context: jsonLdContextInText
                  topicCount: 1
                  id: 69c3d7b9462c9c1141de309b
                - createDate: '2026-03-25T12:29:13.470Z'
                  updateDate: '2026-03-25T12:29:13.470Z'
                  uuid: 5ff2b3dd-1ea0-44c1-a84d-7c68c0d55184
                  name: Module schema 2
                  description: ''
                  entity: NONE
                  status: DRAFT
                  version: 1.0.1
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  topicId: 0.0.8370227
                  documentURL: ''
                  contextURL: schema:5ff2b3dd-1ea0-44c1-a84d-7c68c0d55184
                  iri: '#5ff2b3dd-1ea0-44c1-a84d-7c68c0d55184&1.0.1'
                  readonly: false
                  system: false
                  active: false
                  category: MODULE
                  codeVersion: 1.2.0
                  document: innerSchemaConfigurationInText
                  topicCount: 1
                  id: 69c3d513462c9c1141de3091
                - createDate: '2026-03-25T12:28:37.997Z'
                  updateDate: '2026-03-25T12:28:37.997Z'
                  uuid: de840307-57f4-423b-9216-fb6f0e1f788e
                  name: Module schema 1
                  description: ''
                  entity: VC
                  status: DRAFT
                  version: 1.0.1
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  topicId: 0.0.8370224
                  documentURL: ''
                  contextURL: schema:de840307-57f4-423b-9216-fb6f0e1f788e
                  iri: '#de840307-57f4-423b-9216-fb6f0e1f788e&1.0.1'
                  readonly: false
                  system: false
                  active: false
                  category: MODULE
                  codeVersion: 1.2.0
                  document: innerSchemaConfigurationInText
                  topicCount: 1
                  id: 69c3d4ef462c9c1141de3087
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Return a list of all module schemas.
      tags:
        - modules
    post:
      description: >-
        Creates a new module schema. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: ModulesApi_postSchemas
      parameters: []
      requestBody:
        required: true
        description: Schema config.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SchemaDTO'
            examples:
              createModuleSchema:
                summary: Create module schema
                value:
                  uuid: d26a7a31-00ba-4c30-1314-3d9eecfd7eda
                  hash: ''
                  name: Module schema example
                  description: ''
                  entity: NONE
                  status: DRAFT
                  readonly: false
                  document:
                    $id: '#d26a7a31-00ba-4c30-1314-3d9eecfd7eda'
                    $comment: >-
                      { "@id":
                      "schema:d26a7a31-00ba-4c30-1314-3d9eecfd7eda#d26a7a31-00ba-4c30-1314-3d9eecfd7eda",
                      "term": "d26a7a31-00ba-4c30-1314-3d9eecfd7eda" }
                    title: Module schema example
                    description: ''
                    type: object
                    properties:
                      '@context':
                        oneOf:
                          - type: string
                          - type: array
                            items:
                              type: string
                        readOnly: true
                      type:
                        oneOf:
                          - type: string
                          - type: array
                            items:
                              type: string
                        readOnly: true
                      id:
                        type: string
                        readOnly: true
                      field0:
                        title: field0
                        description: qweqwe
                        readOnly: false
                        type: string
                        $comment: >-
                          {"term":"field0","@id":"https://www.schema.org/text","availableOptions":[],"orderPosition":0}
                    required:
                      - '@context'
                      - type
                    additionalProperties: false
                    $defs: {}
                  context: null
                  version: ''
                  sourceVersion: ''
                  creator: ''
                  owner: ''
                  messageId: ''
                  documentURL: ''
                  contextURL: schema:d26a7a31-00ba-4c30-1314-3d9eecfd7eda
                  iri: ''
                  fields: []
                  conditions: []
                  active: false
                  system: false
                  category: MODULE
                  errors: []
                  userDID: null
                  codeVersion: ''
      responses:
        '201':
          description: Created schema.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaDTO'
              example:
                - createDate: '2026-03-25T13:43:28.481Z'
                  updateDate: '2026-03-25T13:43:28.481Z'
                  uuid: d26a7a31-00ba-4c30-1314-3d9eecfd7eda
                  name: Module schema example
                  description: ''
                  entity: NONE
                  status: DRAFT
                  version: 1.0.1
                  sourceVersion: ''
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  topicId: 0.0.8371271
                  messageId: null
                  documentURL: ''
                  contextURL: schema:d26a7a31-00ba-4c30-1314-3d9eecfd7eda
                  iri: '#d26a7a31-00ba-4c30-1314-3d9eecfd7eda&1.0.1'
                  readonly: false
                  system: false
                  active: false
                  category: MODULE
                  codeVersion: 1.2.0
                  document: innerSchemaConfigurationInText
                  id: 69c3e679ae73da728c8d8eaf
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Schema does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Schema does not exist.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Creates a new module schema.
      tags:
        - modules
  /modules/{uuid}:
    delete:
      description: >-
        Deletes the module with the provided module ID. Only users with the
        Standard Registry role are allowed to make the request.
      operationId: ModulesApi_deleteModule
      parameters:
        - name: uuid
          required: true
          in: path
          description: Module Identifier
          schema:
            example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Deletes the module.
      tags:
        - modules
    get:
      description: >-
        Retrieves module configuration for the specified module ID. Only users
        with the Standard Registry role are allowed to make the request.
      operationId: ModulesApi_getModule
      parameters:
        - name: uuid
          required: true
          in: path
          description: Module Identifier
          schema:
            example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModuleDTO'
              example:
                createDate: '2026-03-25T12:23:29.549Z'
                uuid: e4ecf6f4-36fb-4872-99b8-9b592aac241d
                name: Device configuration module
                description: Part of devices flow
                status: DRAFT
                creator: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                owner: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                codeVersion: 1.0.0
                type: CUSTOM
                config: {}
                id: 69c3d3c1462c9c1141de3066
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Invalid uuid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Invalid uuid
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Retrieves module configuration.
      tags:
        - modules
    put:
      description: >-
        Updates module configuration for the specified module ID. Only users
        with the Standard Registry role are allowed to make the request.
      operationId: ModulesApi_putModule
      parameters:
        - name: uuid
          required: true
          in: path
          description: Module Identifier
          schema:
            example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
            type: string
      requestBody:
        required: true
        description: Module config.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModuleDTO'
            examples:
              updateModule:
                summary: Update module
                value:
                  createDate: '2026-03-25T14:29:09.327Z'
                  uuid: f964f762-4e77-4f09-b98e-c1f12961ff17
                  name: UPDATED NAME
                  description: UPDATED DESCRIPTION
                  status: DRAFT
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  type: CUSTOM
                  config:
                    name: UPDATED NAME
                    description: UPDATED DESCRIPTION
                    blockType: module
                    permissions: []
                    id: 738b9162-a25c-43b9-a609-490a10af3bd6
                    tag: Module
                    children:
                      - id: 90debdfe-1f45-4704-8641-a957aef87f77
                        blockType: interfaceContainerBlock
                        defaultActive: true
                        permissions: []
                        onErrorAction: no-action
                        uiMetaData:
                          type: blank
                          title: UPDATED TITLE
                        tag: Module:UPDATED_BLOCK_NAME
                        children: []
                        events: []
                        artifacts: []
                    events: []
                    artifacts: []
                    variables: []
                    inputEvents: []
                    outputEvents: []
                    innerEvents: []
                  id: 69c3f135ae73da728c8d8f57
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModuleDTO'
              example:
                createDate: '2026-03-25T14:29:09.327Z'
                updateDate: '2026-03-25T14:33:42.812Z'
                uuid: f964f762-4e77-4f09-b98e-c1f12961ff17
                name: UPDATED NAME
                description: UPDATED DESCRIPTION
                status: DRAFT
                creator: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                owner: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                codeVersion: 1.0.0
                type: CUSTOM
                config:
                  name: UPDATED NAME
                  description: UPDATED DESCRIPTION
                  blockType: module
                  permissions: []
                  id: 738b9162-a25c-43b9-a609-490a10af3bd6
                  tag: Module
                  children:
                    - id: 90debdfe-1f45-4704-8641-a957aef87f77
                      blockType: interfaceContainerBlock
                      defaultActive: true
                      permissions: []
                      onErrorAction: no-action
                      uiMetaData:
                        type: blank
                        title: UPDATED TITLE
                      tag: Module:UPDATED_BLOCK_NAME
                      children: []
                      events: []
                      artifacts: []
                  events: []
                  artifacts: []
                  variables: []
                  inputEvents: []
                  outputEvents: []
                  innerEvents: []
                id: 69c3f135ae73da728c8d8f57
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Invalid module config.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Invalid module config
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Updates module configuration.
      tags:
        - modules
  /modules/menu:
    get:
      description: >-
        Returns modules menu. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: ModulesApi_getMenu
      parameters: []
      responses:
        '200':
          description: Modules.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ModuleDTO'
              example:
                - createDate: '2026-03-25T12:23:36.763Z'
                  updateDate: '2026-03-25T12:24:28.059Z'
                  uuid: 2abde099-08f6-4d75-9de3-d6f33d95bc72
                  name: New Module
                  description: New module description
                  status: PUBLISHED
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  topicId: 0.0.8370210
                  messageId: '1774441459.171929000'
                  codeVersion: 1.0.0
                  type: CUSTOM
                  contentFileId: 69c3d3e5462c9c1141de3074
                  config:
                    name: New Module
                    description: New module description
                    blockType: module
                    permissions: []
                    id: 7d25fdf6-8fc4-4d01-b635-541b996415ce
                    tag: Module
                    children: []
                    events: []
                    artifacts: []
                    variables: []
                    inputEvents: []
                    outputEvents: []
                    innerEvents: []
                  id: 69c3d3c8462c9c1141de3069
                - createDate: '2026-03-25T12:23:29.549Z'
                  updateDate: '2026-03-25T12:23:53.759Z'
                  uuid: e4ecf6f4-36fb-4872-99b8-9b592aac241d
                  name: Device configuration module
                  description: Part of devices flow
                  status: DRAFT
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  codeVersion: 1.0.0
                  type: CUSTOM
                  config:
                    name: Device configuration module
                    description: Part of devices flow
                    blockType: module
                    permissions: []
                    id: 3dc74d7b-eae8-49a5-84d5-c267c1fd8d06
                    tag: Module
                    children: []
                    events: []
                    artifacts: []
                    variables: []
                    inputEvents: []
                    outputEvents: []
                    innerEvents: []
                  id: 69c3d3c1462c9c1141de3066
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Return a list of modules.
      tags:
        - modules
  /modules/{uuid}/export/file:
    get:
      description: >-
        Returns a zip file containing the published module and all associated
        artifacts, i.e. schemas and VCs. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: ModulesApi_moduleExportFile
      parameters:
        - name: uuid
          required: true
          in: path
          description: Module Identifier
          schema:
            example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
            type: string
      responses:
        '200':
          description: >-
            Binary ZIP archive (`Content-Type: application/zip`,
            `Content-Disposition: attachment`). Not JSON.
          content:
            application/zip:
              schema:
                type: string
                format: binary
        '401':
          description: Unauthorized request.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: >-
        Return module and its artifacts in a zip file format for the specified
        module.
      tags:
        - modules
  /modules/{uuid}/export/message:
    get:
      description: >-
        Returns the Hedera message ID for the specified module published onto
        IPFS. Only users with the Standard Registry role are allowed to make the
        request.
      operationId: ModulesApi_moduleExportMessage
      parameters:
        - name: uuid
          required: true
          in: path
          description: Module Identifier
          schema:
            example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
            type: string
      responses:
        '200':
          description: Message.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExportMessageDTO'
              example:
                uuid: 2abde099-08f6-4d75-9de3-d6f33d95bc72
                name: New Module
                description: New module description
                messageId: '1774441459.171929000'
                owner: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Return Heder message ID for the specified published module.
      tags:
        - modules
  /modules/import/message:
    post:
      description: >-
        Imports new module and all associated artifacts from IPFS into the local
        DB. Only users with the Standard Registry role are allowed to make the
        request.
      operationId: ModulesApi_moduleImportMessage
      parameters: []
      requestBody:
        required: true
        description: Message.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportMessageDTO'
            examples:
              importModuleMessage:
                summary: Import module by message
                value:
                  messageId: '1774456966.828228000'
      responses:
        '201':
          description: Created module.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModuleDTO'
              example:
                createDate: '2026-03-25T16:48:48.711Z'
                updateDate: '2026-03-25T16:48:48.711Z'
                uuid: fd51a3a7-ad99-4699-8de8-0c0ccb300aab
                name: Test Module with two blocks
                description: Description for the test module
                status: DRAFT
                creator: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                owner: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                codeVersion: 1.0.0
                type: CUSTOM
                config:
                  name: Test Module with two blocks
                  description: Description for the test module
                  blockType: module
                  permissions: []
                  id: cd87187f-26aa-4dfb-994f-12ad810dc952
                  tag: Module
                  children:
                    - id: 4242c579-891b-437d-8cef-61696c2baf2a
                      blockType: interfaceContainerBlock
                      defaultActive: true
                      permissions: []
                      onErrorAction: no-action
                      uiMetaData:
                        type: blank
                        title: Main page
                      tag: Module:Main_container_block
                      children:
                        - id: e851686a-9cd6-4fb0-b3da-3a9e33c54af9
                          blockType: interfaceContainerBlock
                          defaultActive: true
                          permissions: []
                          onErrorAction: no-action
                          uiMetaData:
                            type: blank
                            title: Child page
                          tag: Module:Child_container_block
                          children: []
                          events: []
                          artifacts: []
                      events: []
                      artifacts: []
                  events: []
                  artifacts: []
                  variables: []
                  inputEvents: []
                  outputEvents: []
                  innerEvents: []
                id: 69c411f0ae73da728c8d8f99
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Message ID in body is empty.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Message ID in body is empty
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Imports new module from IPFS.
      tags:
        - modules
  /modules/import/file:
    post:
      description: >-
        Imports new module and all associated artifacts, such as schemas and
        VCs, from the provided zip file into the local DB. Only users with the
        Standard Registry role are allowed to make the request.
      operationId: ModulesApi_moduleImportFile
      parameters: []
      requestBody:
        required: true
        description: Module archive as raw binary request body.
        content:
          binary/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '201':
          description: Created module.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModuleDTO'
              example:
                createDate: '2026-03-25T16:34:31.456Z'
                updateDate: '2026-03-25T16:34:31.456Z'
                uuid: 70f318e1-d505-4b7b-ac9c-9184839f0072
                name: Device configuration module
                description: Part of devices flow
                status: DRAFT
                creator: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                owner: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                codeVersion: 1.0.0
                type: CUSTOM
                config:
                  name: Device configuration module
                  description: Part of devices flow
                  blockType: module
                  permissions: []
                  id: 3dc74d7b-eae8-49a5-84d5-c267c1fd8d06
                  tag: Module
                  children: []
                  events: []
                  artifacts: []
                  variables: []
                  inputEvents: []
                  outputEvents: []
                  innerEvents: []
                id: 69c40e97ae73da728c8d8f78
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Imports new module from a zip file.
      tags:
        - modules
  /modules/import/message/preview:
    post:
      description: >-
        Imports new module and all associated artifacts from IPFS into the local
        DB. Only users with the Standard Registry role are allowed to make the
        request.
      operationId: ModulesApi_moduleImportMessagePreview
      parameters: []
      requestBody:
        required: true
        description: Message.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportMessageDTO'
            examples:
              importModuleMessagePreview:
                summary: Preview module by message
                value:
                  messageId: '1774456966.828228000'
      responses:
        '200':
          description: Module preview.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModulePreviewDTO'
              example:
                module:
                  updateDate: '2026-03-25T16:42:26.445Z'
                  name: Test Module with two blocks
                  description: Description for the test module
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  codeVersion: 1.0.0
                  type: CUSTOM
                  config:
                    name: Test Module with two blocks
                    description: Description for the test module
                    blockType: module
                    permissions: []
                    id: cd87187f-26aa-4dfb-994f-12ad810dc952
                    tag: Module
                    children:
                      - id: 4242c579-891b-437d-8cef-61696c2baf2a
                        blockType: interfaceContainerBlock
                        defaultActive: true
                        permissions: []
                        onErrorAction: no-action
                        uiMetaData:
                          type: blank
                          title: Main page
                        tag: Module:Main_container_block
                        children:
                          - id: e851686a-9cd6-4fb0-b3da-3a9e33c54af9
                            blockType: interfaceContainerBlock
                            defaultActive: true
                            permissions: []
                            onErrorAction: no-action
                            uiMetaData:
                              type: blank
                              title: Child page
                            tag: Module:Child_container_block
                            children: []
                            events: []
                            artifacts: []
                        events: []
                        artifacts: []
                    events: []
                    artifacts: []
                    variables: []
                    inputEvents: []
                    outputEvents: []
                    innerEvents: []
                tags: []
                schemas: []
                messageId: '1774456966.828228000'
                moduleTopicId: 0.0.8373989
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Message ID in body is empty.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Message ID in body is empty
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Imports new module from IPFS.
      tags:
        - modules
  /modules/import/file/preview:
    post:
      description: >-
        Imports new module and all associated artifacts, such as schemas and
        VCs, from the provided zip file into the local DB. Only users with the
        Standard Registry role are allowed to make the request.
      operationId: ModulesApi_moduleImportFilePreview
      parameters: []
      requestBody:
        required: true
        description: Module archive as raw binary request body.
        content:
          binary/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: Module preview.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModuleImportFileResponseDTO'
              example:
                module:
                  updateDate: '2026-03-25T12:22:27.680Z'
                  name: Device configuration module
                  description: Part of devices flow
                  creator: >-
                    did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734
                  owner: >-
                    did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734
                  codeVersion: 1.0.0
                  type: CUSTOM
                  config: {}
                tags: []
                schemas: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Imports new module from a zip file.
      tags:
        - modules
  /modules/{uuid}/publish:
    put:
      description: >-
        Publishes the module with the specified (internal) module ID onto IPFS,
        sends a message featuring its IPFS CID into the corresponding Hedera
        topic. Only users with the Standard Registry role are allowed to make
        the request.
      operationId: ModulesApi_publishModule
      parameters:
        - name: uuid
          required: true
          in: path
          description: Module Identifier
          schema:
            example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
            type: string
      requestBody:
        required: false
        description: >-
          Ignored by the current implementation. Publish uses the `uuid` path
          parameter and the module stored in DB.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModuleDTO'
            examples:
              ignoredBody:
                summary: Body is ignored
                value: {}
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModulePublishResponseDTO'
              example:
                module:
                  createDate: '2026-03-25T17:11:30.244Z'
                  updateDate: '2026-03-25T17:12:17.150Z'
                  uuid: 8310f001-8fdc-43bb-8ad0-bcd43ca17363
                  name: Test Module with two blocks
                  description: Description for the test module
                  status: PUBLISHED
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  topicId: 0.0.8375153
                  messageId: '1774458729.161736000'
                  codeVersion: 1.0.0
                  type: CUSTOM
                  contentFileId: 69c4175cae73da728c8d8fad
                  config:
                    name: Test Module with two blocks
                    description: Description for the test module
                    blockType: module
                    permissions: []
                    id: cd87187f-26aa-4dfb-994f-12ad810dc952
                    tag: Module
                    children:
                      - id: 4242c579-891b-437d-8cef-61696c2baf2a
                        blockType: interfaceContainerBlock
                        defaultActive: true
                        permissions: []
                        onErrorAction: no-action
                        uiMetaData:
                          type: blank
                          title: Main page
                        tag: Module:Main_container_block
                        children:
                          - id: e851686a-9cd6-4fb0-b3da-3a9e33c54af9
                            blockType: interfaceContainerBlock
                            defaultActive: true
                            permissions: []
                            onErrorAction: no-action
                            uiMetaData:
                              type: blank
                              title: Child page
                            tag: Module:Child_container_block
                            children: []
                            events: []
                            artifacts: []
                        events: []
                        artifacts: []
                    events: []
                    artifacts: []
                    variables: []
                    inputEvents: []
                    outputEvents: []
                    innerEvents: []
                  id: 69c41742ae73da728c8d8fa6
                isValid: true
                errors:
                  errors: []
                  blocks:
                    - id: 4242c579-891b-437d-8cef-61696c2baf2a
                      name: interfaceContainerBlock
                      errors: []
                      warnings: []
                      infos: []
                      isValid: true
                    - id: e851686a-9cd6-4fb0-b3da-3a9e33c54af9
                      name: interfaceContainerBlock
                      errors: []
                      warnings: []
                      infos: []
                      isValid: true
                  tools: []
                  id: cd87187f-26aa-4dfb-994f-12ad810dc952
                  isValid: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Publishes the module onto IPFS.
      tags:
        - modules
  /modules/validate:
    post:
      description: >-
        Validates selected module. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: ModulesApi_validateModule
      parameters: []
      requestBody:
        required: true
        description: Module config.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModuleDTO'
            examples:
              valid:
                summary: Valid module
                value:
                  id: 69c411f0ae73da728c8d8f99
                  uuid: fd51a3a7-ad99-4699-8de8-0c0ccb300aab
                  name: Test Module with two blocks
                  description: Description for the test module
                  status: DRAFT
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  codeVersion: 1.0.0
                  createDate: '2026-03-25T16:48:48.711Z'
                  config:
                    name: Test Module with two blocks
                    description: Description for the test module
                    blockType: module
                    permissions: []
                    id: cd87187f-26aa-4dfb-994f-12ad810dc952
                    tag: Module
                    children:
                      - id: 4242c579-891b-437d-8cef-61696c2baf2a
                        blockType: interfaceContainerBlock
                        defaultActive: true
                        permissions: []
                        onErrorAction: no-action
                        uiMetaData:
                          type: blank
                          title: Main page
                        tag: Module:Main_container_block
                        children:
                          - id: e851686a-9cd6-4fb0-b3da-3a9e33c54af9
                            blockType: interfaceContainerBlock
                            defaultActive: true
                            permissions: []
                            onErrorAction: no-action
                            uiMetaData:
                              type: blank
                              title: Child page
                            tag: Module:Child_container_block
                            children: []
                            events: []
                            artifacts: []
                        events: []
                        artifacts: []
                    events: []
                    artifacts: []
                    variables: []
                    inputEvents: []
                    outputEvents: []
                    innerEvents: []
              invalid:
                summary: Invalid createTokenBlock
                value:
                  id: 69c411f0ae73da728c8d8f99
                  uuid: fd51a3a7-ad99-4699-8de8-0c0ccb300aab
                  name: Test Module with two blocks
                  description: Description for the test module
                  status: DRAFT
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  codeVersion: 1.0.0
                  createDate: '2026-03-25T16:48:48.711Z'
                  config:
                    name: Test Module with two blocks
                    description: Description for the test module
                    blockType: module
                    permissions: []
                    id: cd87187f-26aa-4dfb-994f-12ad810dc952
                    tag: Module
                    children:
                      - id: 4242c579-891b-437d-8cef-61696c2baf2a
                        blockType: interfaceContainerBlock
                        defaultActive: true
                        permissions: []
                        onErrorAction: no-action
                        uiMetaData:
                          type: blank
                          title: Main page
                        tag: Module:Main_container_block
                        children:
                          - id: e851686a-9cd6-4fb0-b3da-3a9e33c54af9
                            blockType: interfaceContainerBlock
                            defaultActive: true
                            permissions: []
                            onErrorAction: no-action
                            uiMetaData:
                              type: blank
                              title: Child page
                            tag: Module:Child_container_block
                            children: []
                            events: []
                            artifacts: []
                        events: []
                        artifacts: []
                      - id: 4237578f-1057-4aa6-bdac-4d8e11b3be30
                        blockType: createTokenBlock
                        defaultActive: true
                        permissions: []
                        tag: Block_1
                        children: []
                        events: []
                        artifacts: []
                    events: []
                    artifacts: []
                    variables: []
                    inputEvents: []
                    outputEvents: []
                    innerEvents: []
      responses:
        '200':
          description: Validation result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModuleValidationDTO'
              examples:
                valid:
                  summary: All blocks valid
                  value:
                    results:
                      errors: []
                      blocks:
                        - id: 4242c579-891b-437d-8cef-61696c2baf2a
                          name: interfaceContainerBlock
                          errors: []
                          warnings: []
                          infos: []
                          isValid: true
                        - id: e851686a-9cd6-4fb0-b3da-3a9e33c54af9
                          name: interfaceContainerBlock
                          errors: []
                          warnings: []
                          infos: []
                          isValid: true
                      tools: []
                      id: cd87187f-26aa-4dfb-994f-12ad810dc952
                      isValid: true
                    module:
                      id: 69c411f0ae73da728c8d8f99
                      uuid: fd51a3a7-ad99-4699-8de8-0c0ccb300aab
                      name: Test Module with two blocks
                      description: Description for the test module
                      status: DRAFT
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                      codeVersion: 1.0.0
                      createDate: '2026-03-25T16:48:48.711Z'
                      config:
                        name: Test Module with two blocks
                        description: Description for the test module
                        blockType: module
                        permissions: []
                        id: cd87187f-26aa-4dfb-994f-12ad810dc952
                        tag: Module
                        children:
                          - id: 4242c579-891b-437d-8cef-61696c2baf2a
                            blockType: interfaceContainerBlock
                            defaultActive: true
                            permissions: []
                            onErrorAction: no-action
                            uiMetaData:
                              type: blank
                              title: Main page
                            tag: Module:Main_container_block
                            children:
                              - id: e851686a-9cd6-4fb0-b3da-3a9e33c54af9
                                blockType: interfaceContainerBlock
                                defaultActive: true
                                permissions: []
                                onErrorAction: no-action
                                uiMetaData:
                                  type: blank
                                  title: Child page
                                tag: Module:Child_container_block
                                children: []
                                events: []
                                artifacts: []
                            events: []
                            artifacts: []
                        events: []
                        artifacts: []
                        variables: []
                        inputEvents: []
                        outputEvents: []
                        innerEvents: []
                invalid:
                  summary: createTokenBlock fails validation
                  value:
                    results:
                      errors: []
                      blocks:
                        - id: 4242c579-891b-437d-8cef-61696c2baf2a
                          name: interfaceContainerBlock
                          errors: []
                          warnings: []
                          infos: []
                          isValid: true
                        - id: e851686a-9cd6-4fb0-b3da-3a9e33c54af9
                          name: interfaceContainerBlock
                          errors: []
                          warnings: []
                          infos: []
                          isValid: true
                        - id: 4237578f-1057-4aa6-bdac-4d8e11b3be30
                          name: createTokenBlock
                          errors:
                            - Template can not be empty
                            - Token "undefined" does not exist
                          warnings: []
                          infos: []
                          isValid: false
                        - id: cd87187f-26aa-4dfb-994f-12ad810dc952
                          name: module
                          errors:
                            - Module is invalid
                          isValid: false
                      tools: []
                      id: cd87187f-26aa-4dfb-994f-12ad810dc952
                      isValid: false
                    module:
                      id: 69c411f0ae73da728c8d8f99
                      uuid: fd51a3a7-ad99-4699-8de8-0c0ccb300aab
                      name: Test Module with two blocks
                      description: Description for the test module
                      status: DRAFT
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                      codeVersion: 1.0.0
                      createDate: '2026-03-25T16:48:48.711Z'
                      config:
                        name: Test Module with two blocks
                        description: Description for the test module
                        blockType: module
                        permissions: []
                        id: cd87187f-26aa-4dfb-994f-12ad810dc952
                        tag: Module
                        children:
                          - id: 4242c579-891b-437d-8cef-61696c2baf2a
                            blockType: interfaceContainerBlock
                            defaultActive: true
                            permissions: []
                            onErrorAction: no-action
                            uiMetaData:
                              type: blank
                              title: Main page
                            tag: Module:Main_container_block
                            children:
                              - id: e851686a-9cd6-4fb0-b3da-3a9e33c54af9
                                blockType: interfaceContainerBlock
                                defaultActive: true
                                permissions: []
                                onErrorAction: no-action
                                uiMetaData:
                                  type: blank
                                  title: Child page
                                tag: Module:Child_container_block
                                children: []
                                events: []
                                artifacts: []
                            events: []
                            artifacts: []
                          - id: 4237578f-1057-4aa6-bdac-4d8e11b3be30
                            blockType: createTokenBlock
                            defaultActive: true
                            permissions: []
                            tag: Block_1
                            children: []
                            events: []
                            artifacts: []
                        events: []
                        artifacts: []
                        variables: []
                        inputEvents: []
                        outputEvents: []
                        innerEvents: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Validates selected module.
      tags:
        - modules
  /tools:
    post:
      description: >-
        Creates a new tool. Waits for completion and returns the created tool.
        Only users with the Standard Registry role are allowed to make the
        request.
      operationId: ToolsApi_createNewTool
      parameters: []
      requestBody:
        required: true
        description: >-
          Tool configuration. Only config with blockType: "tool" is required.
          Other fields (name, description) are optional. Fields like id, uuid,
          creator, owner are set by the server.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateToolDTO'
            examples:
              create:
                summary: Minimal create
                value:
                  name: Test Tool New
                  description: This is test description
                  config:
                    id: 47c1f826-88ef-46a0-b3b7-e9038108f97c
                    blockType: tool
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ToolDTO'
              example:
                id: 69c17209fb66de861cc9de3a
                createDate: '2026-03-23T17:02:01.093Z'
                updateDate: '2026-03-23T17:02:01.093Z'
                uuid: 0e2a0907-18a4-41cf-bd93-dbd5b1ad5f98
                name: Test Tool New
                description: This is test description
                configFileId: 69c17209fb66de861cc9de3b
                status: DRAFT
                creator: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                owner: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                topicId: 0.0.8346869
                codeVersion: 1.5.1
                tools: []
                config:
                  id: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                  blockType: tool
                  permissions: []
                  children: []
                  events: []
                  artifacts: []
                  variables: []
                  inputEvents: []
                  outputEvents: []
                  innerEvents: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Invalid tool config (missing config or config.blockType !== "tool").
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Invalid tool config
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Creates a new tool (sync).
      tags:
        - tools
    get:
      description: >-
        Returns all tools. Add Api-Version: 2 header to use search and tag
        filters. Only users with the Standard Registry role are allowed to make
        the request.
      operationId: ToolsApi_getToolsV2_2
      parameters:
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
        - name: search
          required: false
          in: query
          description: Search
          schema:
            example: text
            type: string
        - name: tag
          required: false
          in: query
          description: Tag
          schema:
            example: text
            type: string
        - name: Api-Version
          in: header
          description: Use "2" for this endpoint (supports search, tag)
          required: true
          schema:
            type: string
            example: '2'
      responses:
        '200':
          description: >-
            Successful operation. Example shows V2 response format (no uuid, no
            hash).
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ToolListV2ItemDTO'
              example:
                - name: Tool 06_new_edited
                  description: ''
                  status: DRAFT
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                  topicId: 0.0.8345573
                  id: 69c156a4fb66de861cc9dd8a
                - name: Tool 16
                  description: ''
                  status: PUBLISHED
                  creator: >-
                    did:hedera:testnet:8Go53QCUXZ4nzSQMyoWovWCxseogGTMLDiHg14Fkz4VN_0.0.4481265
                  owner: >-
                    did:hedera:testnet:8Go53QCUXZ4nzSQMyoWovWCxseogGTMLDiHg14Fkz4VN_0.0.4481265
                  topicId: 0.0.4496134
                  messageId: '1720000738.873798003'
                  id: 69c1502ffb66de861cc9dcef
                - name: Tool 06
                  description: ''
                  status: PUBLISHED
                  creator: >-
                    did:hedera:testnet:9pZJ9UokYbTyeb7ZWUrLWWLxFmuF3UAcLbjhwge8d3hp_0.0.2172755
                  owner: >-
                    did:hedera:testnet:9pZJ9UokYbTyeb7ZWUrLWWLxFmuF3UAcLbjhwge8d3hp_0.0.2172755
                  topicId: 0.0.2657406
                  messageId: '1707068762.886477003'
                  id: 69c1501cfb66de861cc9dc26
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Return a list of all tools.
      tags:
        - tools
  /tools/push:
    post:
      description: >-
        Creates a new tool asynchronously. Returns task ID for progress
        tracking. Only users with the Standard Registry role are allowed to make
        the request.
      operationId: ToolsApi_createNewToolAsync
      parameters: []
      requestBody:
        required: true
        description: >-
          Tool configuration. Only config with blockType: "tool" is required.
          Other fields (name, description) are optional.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateToolDTO'
            examples:
              create:
                summary: Minimal create
                value:
                  name: Test Tool New
                  description: This is test description
                  config:
                    id: 47c1f826-88ef-46a0-b3b7-e9038108f97c
                    blockType: tool
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: c2a271c0-4b6a-4893-8dd9-f23c936a747e
                expectation: 8
                action: Create tool
                userId: 69bcfd90c98df6ceb05e8a78
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Invalid tool config (missing config or config.blockType !== "tool").
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Invalid tool config
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Creates a new tool (async).
      tags:
        - tools
  /tools/{id}:
    delete:
      description: Deletes the tool.
      operationId: ToolsApi_deleteTool
      parameters:
        - name: id
          required: true
          in: path
          description: Tool ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: >-
            Invalid id (empty, "undefined", "null", or tool not found/not
            owned/published).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Invalid id
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: >-
        Deletes the tool with the provided tool ID. Only users with the Standard
        Registry role are allowed to make the request.
      tags:
        - tools
    get:
      description: >-
        Retrieves tool configuration for the specified tool ID. Only users with
        the Standard Registry role are allowed to make the request.
      operationId: ToolsApi_getToolById
      parameters:
        - name: id
          required: true
          in: path
          description: Tool ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ToolDTO'
              example:
                id: 69c1502ffb66de861cc9dcef
                createDate: '2026-03-23T14:37:35.376Z'
                updateDate: '2026-03-23T14:37:35.376Z'
                hash: 8j5UAc8s38X2qRaePqzCBj1rMuM9SXwkE3GcfXSJ7SaN
                uuid: 7d56aec4-5db3-46d3-9f3f-236fc33e0772
                name: Tool 16
                description: ''
                configFileId: 69c1502ffb66de861cc9dcf0
                status: PUBLISHED
                creator: >-
                  did:hedera:testnet:8Go53QCUXZ4nzSQMyoWovWCxseogGTMLDiHg14Fkz4VN_0.0.4481265
                owner: >-
                  did:hedera:testnet:8Go53QCUXZ4nzSQMyoWovWCxseogGTMLDiHg14Fkz4VN_0.0.4481265
                topicId: 0.0.4496134
                messageId: '1720000738.873798003'
                codeVersion: 1.5.1
                tagsTopicId: 0.0.4496152
                contentFileId: 69c1500afb66de861cc9dbca
                tools:
                  - name: Tool 01
                    version: null
                    topicId: 0.0.3418896
                    messageId: '1707834520.925981198'
                  - name: Tool 12
                    version: null
                    topicId: 0.0.3625013
                    messageId: '1709106946.913157840'
                  - name: Tool 03
                    version: null
                    topicId: 0.0.2182119
                    messageId: '1706867833.676387003'
                config:
                  id: ee7c7a73-96b0-464e-9ad9-13198b0fadf5
                  blockType: tool
                  permissions: []
                  tag: Tool
                  children:
                    - id: 0988b533-bbe2-4cf9-9f43-c041764e163b
                      blockType: tool
                      defaultActive: true
                      hash: FE2TVGaYbHkzT5xox71zRGowBh9uz7p1QZEmDd1BZbco
                      messageId: '1719310223.735760003'
                      permissions:
                        - Role
                      onErrorAction: no-action
                      tag: Tool_14
                      children: []
                      events:
                        - target: Tool_1
                          source: Tool_14
                          input: input_tool_01
                          output: output_tool_14
                          actor: ''
                          disabled: false
                      artifacts: []
                      variables:
                        - name: Role
                          description: ''
                          type: Role
                      inputEvents:
                        - name: input_tool_14
                          description: ''
                      outputEvents:
                        - name: output_tool_14
                          description: ''
                      innerEvents: []
                    - id: 52974f49-497d-403b-9616-829da32590fe
                      blockType: customLogicBlock
                      defaultActive: false
                      permissions:
                        - Role
                      onErrorAction: no-action
                      uiMetaData: {}
                      expression: |-
                        function calc_tool_16(document) {
                            document.C14 = document.tool_01?.field2?.field1 === 'Yes' ? 'Yes' : 'No';
                            // ... [calculation logic continues, hundreds of lines] ...
                            return document;
                        }
                        calc();
                      documentSigner: ''
                      idType: UUID
                      outputSchema: '#7e8f0766-996d-4715-b501-3abf55efa3ac&1.0.0'
                      unsigned: true
                      tag: calc_tool_16
                      children: []
                      events: []
                      artifacts: []
                  events:
                    - target: Tool_14
                      source: Tool
                      input: input_tool_14
                      output: input_tool_16
                      actor: ''
                      disabled: false
                  variables:
                    - name: Role
                      description: ''
                      type: Role
                  inputEvents:
                    - name: input_tool_16
                      description: ''
                  outputEvents:
                    - name: output_tool_16
                      description: ''
                  innerEvents:
                    - target: Tool_14
                      source: Tool
                      input: input_tool_14
                      output: input_tool_16
                      actor: ''
                      disabled: false
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: >-
            Invalid id (empty, "undefined", "null", or tool not found/not
            owned).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Invalid id
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Retrieves tool configuration.
      tags:
        - tools
    put:
      description: >-
        Updates tool configuration for the specified tool ID. Only users with
        the Standard Registry role are allowed to make the request.
      operationId: ToolsApi_updateTool
      parameters:
        - name: id
          required: true
          in: path
          description: Tool ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: >-
          Tool configuration. Must include config with blockType: "tool". name
          and description are updatable.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ToolDTO'
            examples:
              update:
                summary: Update tool example
                value:
                  name: Updated Tool Name
                  description: Updated Tool Description
                  config:
                    id: ee7c7a73-96b0-464e-9ad9-13198b0fadf5
                    blockType: tool
                    permissions: []
                    tag: Tool
                    children: []
                    events: []
                    variables: []
                    inputEvents: []
                    outputEvents: []
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ToolDTO'
              example:
                id: 69c168d8fb66de861cc9dda8
                createDate: '2026-03-23T16:22:48.808Z'
                updateDate: '2026-03-23T18:35:33.333Z'
                uuid: 56af783a-eddc-4969-a6a7-894694f0a3c0
                name: Updated Tool Name
                description: Updated Tool Description
                configFileId: 69c187f5fb66de861cc9de5a
                status: DRAFT
                creator: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                owner: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                topicId: 0.0.8346214
                codeVersion: 1.5.1
                tools: []
                config:
                  id: ee7c7a73-96b0-464e-9ad9-13198b0fadf5
                  blockType: tool
                  permissions: []
                  tag: Tool
                  children: []
                  events: []
                  variables: []
                  inputEvents: []
                  outputEvents: []
                  artifacts: []
                  innerEvents: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: >-
            Invalid id or invalid tool config (missing config or
            config.blockType !== "tool").
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Invalid tool config
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Updates tool configuration.
      tags:
        - tools
  /tools/{id}/publish:
    put:
      description: >-
        Publishes the tool with the specified (internal) tool ID onto IPFS,
        sends a message featuring its IPFS CID into the corresponding Hedera
        topic. Only users with the Standard Registry role are allowed to make
        the request.
      operationId: ToolsApi_publishTool
      parameters:
        - name: id
          required: true
          in: path
          description: Tool ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: 'Tool version for publish. Required: toolVersion (e.g. "1.0.0").'
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ToolVersionDTO'
            examples:
              publish:
                summary: Publish tool example
                value:
                  toolVersion: 1.0.0
      responses:
        '200':
          description: >-
            Publish result (HTTP 200). If isValid is true, the tool was
            published. If isValid is false, the tool stays DRAFT and was not
            published — see errors.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ToolPublishResponseDTO'
              examples:
                success:
                  summary: Validation passed — tool published
                  value:
                    tool:
                      createDate: '2026-03-24T07:32:07.366Z'
                      updateDate: '2026-03-24T07:53:40.891Z'
                      hash: 62zo1ujESm1SehDeQoUK4o7um73qiwqf7fQ8YNan1NGE
                      uuid: 01188757-acb8-42f3-af19-700ba073b66f
                      name: Tool 06_1774337527363
                      description: ''
                      version: 1.0.0
                      configFileId: 69c243047a442bf5c32d604f
                      status: PUBLISHED
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                      topicId: 0.0.8356129
                      messageId: '1774338819.468936917'
                      codeVersion: 1.5.1
                      tagsTopicId: 0.0.8356229
                      tools: []
                      contentFileId: 69c242f77a442bf5c32d6047
                      id: 69c23df77a442bf5c32d5ffe
                      config:
                        id: ee7c7a73-96b0-464e-9ad9-13198b0fadf5
                        blockType: tool
                        permissions: []
                        tag: Tool
                        children:
                          - id: b7984eab-893a-497f-ba73-3e6d4c0b7ce0
                            blockType: extractDataBlock
                            defaultActive: false
                            permissions:
                              - Role
                            onErrorAction: no-action
                            action: get
                            schema: '#d22a8d47-cfde-468d-b8e7-e87cbaea52f5&1.0.0'
                            tag: get_tool_06
                            children: []
                            events: []
                            artifacts: []
                          - id: 52974f49-497d-403b-9616-829da32590fe
                            blockType: customLogicBlock
                            defaultActive: false
                            permissions:
                              - Role
                            onErrorAction: no-action
                            uiMetaData: {}
                            expression: |-
                              function calc_tool_16(document) {
                                  document.C14 = document.tool_01?.field2?.field1 === 'Yes' ? 'Yes' : 'No';
                                  // ... [calculation logic continues, hundreds of lines] ...
                                  return document;
                              }
                              calc();
                            documentSigner: ''
                            idType: UUID
                            outputSchema: '#d22a8d47-cfde-468d-b8e7-e87cbaea52f5&1.0.0'
                            unsigned: true
                            tag: calc_tool_06
                            children: []
                            events: []
                            artifacts: []
                          - id: 16f57f36-48db-4989-adb1-ddb276fc23f1
                            blockType: extractDataBlock
                            defaultActive: false
                            permissions:
                              - Role
                            onErrorAction: no-action
                            action: set
                            schema: '#d22a8d47-cfde-468d-b8e7-e87cbaea52f5&1.0.0'
                            tag: set_tool_06
                            children: []
                            events:
                              - target: Tool
                                source: set_tool_06
                                input: output_tool_06
                                output: RunEvent
                                actor: ''
                                disabled: false
                            artifacts: []
                        events:
                          - target: get_tool_06
                            source: Tool
                            input: RunEvent
                            output: input_tool_06
                            actor: ''
                            disabled: false
                        artifacts: []
                        variables:
                          - name: Role
                            description: ''
                            type: Role
                        inputEvents:
                          - name: input_tool_06
                            description: ''
                        outputEvents:
                          - name: output_tool_06
                            description: ''
                        innerEvents:
                          - target: get_tool_06
                            source: Tool
                            input: RunEvent
                            output: input_tool_06
                            actor: ''
                            disabled: false
                    isValid: true
                    errors:
                      errors: []
                      blocks:
                        - id: b7984eab-893a-497f-ba73-3e6d4c0b7ce0
                          name: extractDataBlock
                          errors: []
                          warnings: []
                          infos: []
                          isValid: true
                        - id: 52974f49-497d-403b-9616-829da32590fe
                          name: customLogicBlock
                          errors: []
                          warnings: []
                          infos: []
                          isValid: true
                        - id: 16f57f36-48db-4989-adb1-ddb276fc23f1
                          name: extractDataBlock
                          errors: []
                          warnings: []
                          infos: []
                          isValid: true
                      tools: []
                      id: ee7c7a73-96b0-464e-9ad9-13198b0fadf5
                      isValid: true
                validationFailed:
                  summary: Validation failed — publish not started
                  value:
                    tool:
                      createDate: '2026-03-24T07:32:07.366Z'
                      updateDate: '2026-03-24T07:53:40.891Z'
                      uuid: 01188757-acb8-42f3-af19-700ba073b66f
                      name: Tool 06_1774337527363
                      description: ''
                      configFileId: 69c243047a442bf5c32d604f
                      status: DRAFT
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                      topicId: 0.0.8356129
                      codeVersion: 1.5.1
                      tools: []
                      id: 69c23df77a442bf5c32d5ffe
                      config:
                        id: ee7c7a73-96b0-464e-9ad9-13198b0fadf5
                        blockType: tool
                        permissions: []
                        tag: Tool
                        children:
                          - id: b7984eab-893a-497f-ba73-3e6d4c0b7ce0
                            blockType: extractDataBlock
                            defaultActive: false
                            permissions:
                              - Role
                            onErrorAction: no-action
                            action: get
                            schema: '#d22a8d47-cfde-468d-b8e7-e87cbaea52f5&1.0.0'
                            tag: get_tool_06
                            children: []
                            events: []
                            artifacts: []
                          - id: 2e2e1d55-853b-4d07-9a68-793ea88d28c9
                            blockType: createTokenBlock
                            tag: Block_1
                            children: []
                            events: []
                            artifacts: []
                          - id: 52974f49-497d-403b-9616-829da32590fe
                            blockType: customLogicBlock
                            defaultActive: false
                            permissions:
                              - Role
                            onErrorAction: no-action
                            uiMetaData: {}
                            expression: |-
                              function calc_tool_16(document) {
                                  document.C14 = document.tool_01?.field2?.field1 === 'Yes' ? 'Yes' : 'No';
                                  // ... [calculation logic continues, hundreds of lines] ...
                                  return document;
                              }
                              calc();
                            documentSigner: ''
                            idType: UUID
                            outputSchema: '#d22a8d47-cfde-468d-b8e7-e87cbaea52f5&1.0.0'
                            unsigned: true
                            tag: calc_tool_06
                            children: []
                            events: []
                            artifacts: []
                          - id: 16f57f36-48db-4989-adb1-ddb276fc23f1
                            blockType: extractDataBlock
                            defaultActive: false
                            permissions:
                              - Role
                            onErrorAction: no-action
                            action: set
                            schema: '#d22a8d47-cfde-468d-b8e7-e87cbaea52f5&1.0.0'
                            tag: set_tool_06
                            children: []
                            events:
                              - target: Tool
                                source: set_tool_06
                                input: output_tool_06
                                output: RunEvent
                                actor: ''
                                disabled: false
                            artifacts: []
                        events:
                          - target: get_tool_06
                            source: Tool
                            input: RunEvent
                            output: input_tool_06
                            actor: ''
                            disabled: false
                        artifacts: []
                        variables:
                          - name: Role
                            description: ''
                            type: Role
                        inputEvents:
                          - name: input_tool_06
                            description: ''
                        outputEvents:
                          - name: output_tool_06
                            description: ''
                        innerEvents:
                          - target: get_tool_06
                            source: Tool
                            input: RunEvent
                            output: input_tool_06
                            actor: ''
                            disabled: false
                    isValid: false
                    errors:
                      errors: []
                      blocks:
                        - id: b7984eab-893a-497f-ba73-3e6d4c0b7ce0
                          name: extractDataBlock
                          errors: []
                          warnings: []
                          infos: []
                          isValid: true
                        - id: 2e2e1d55-853b-4d07-9a68-793ea88d28c9
                          name: createTokenBlock
                          errors:
                            - Template can not be empty
                            - Token "undefined" does not exist
                          warnings: []
                          infos: []
                          isValid: false
                        - id: 52974f49-497d-403b-9616-829da32590fe
                          name: customLogicBlock
                          errors: []
                          warnings: []
                          infos: []
                          isValid: true
                        - id: 16f57f36-48db-4989-adb1-ddb276fc23f1
                          name: extractDataBlock
                          errors: []
                          warnings: []
                          infos: []
                          isValid: true
                        - id: ee7c7a73-96b0-464e-9ad9-13198b0fadf5
                          name: tool
                          errors:
                            - Tool is invalid
                          isValid: false
                      tools: []
                      id: ee7c7a73-96b0-464e-9ad9-13198b0fadf5
                      isValid: false
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Request validation failed (e.g. missing or invalid toolVersion).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                message:
                  - toolVersion must be a string
                error: Unprocessable Entity
                statusCode: 422
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Publishes the tool onto IPFS.
      tags:
        - tools
  /tools/{id}/push/publish:
    put:
      description: >-
        Publishes the tool with the specified (internal) tool ID onto IPFS,
        sends a message featuring its IPFS CID into the corresponding Hedera
        topic. Only users with the Standard Registry role are allowed to make
        the request.
      operationId: ToolsApi_publishToolAsync
      parameters:
        - name: id
          required: true
          in: path
          description: Tool ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: 'Tool version for publish. Required: toolVersion (e.g. "1.0.0").'
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ToolVersionDTO'
            examples:
              publish:
                summary: Publish tool example
                value:
                  toolVersion: 1.0.0
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: 02b66111-15f1-4834-8e31-4227f058efa0
                expectation: 2
                action: Publish tool
                userId: 69bcfd90c98df6ceb05e8a78
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Request validation failed (e.g. missing or invalid toolVersion).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                message:
                  - toolVersion must be a string
                error: Unprocessable Entity
                statusCode: 422
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Publishes the tool onto IPFS.
      tags:
        - tools
  /tools/{id}/dry-run:
    put:
      description: >-
        Validates the tool config; when valid, dry run starts (tool state
        updated server-side). Returns isValid and errors (no full tool body).
        Only users with the Standard Registry role are allowed to make the
        request.
      operationId: ToolsApi_dryRunPolicy
      parameters:
        - name: id
          required: true
          in: path
          description: Tool ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: >-
            Validation result (HTTP 200). Dry run started when isValid is true;
            dry run not started when isValid is false (see errors.blocks and
            nested messages).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ToolDryRunResponseDTO'
              examples:
                success:
                  summary: Validation passed — dry run started
                  value:
                    isValid: true
                    errors:
                      errors: []
                      blocks:
                        - id: b7984eab-893a-497f-ba73-3e6d4c0b7ce0
                          name: extractDataBlock
                          errors: []
                          warnings: []
                          infos: []
                          isValid: true
                        - id: 52974f49-497d-403b-9616-829da32590fe
                          name: customLogicBlock
                          errors: []
                          warnings: []
                          infos: []
                          isValid: true
                        - id: 16f57f36-48db-4989-adb1-ddb276fc23f1
                          name: extractDataBlock
                          errors: []
                          warnings: []
                          infos: []
                          isValid: true
                      tools: []
                      id: ee7c7a73-96b0-464e-9ad9-13198b0fadf5
                      isValid: true
                validationFailed:
                  summary: Validation failed — dry run not started
                  value:
                    isValid: false
                    errors:
                      errors: []
                      blocks:
                        - id: b7984eab-893a-497f-ba73-3e6d4c0b7ce0
                          name: extractDataBlock
                          errors: []
                          warnings: []
                          infos: []
                          isValid: true
                        - id: 8a317e5a-b462-4334-a6ea-263ca527f39a
                          name: createTokenBlock
                          errors:
                            - Template can not be empty
                            - Token "undefined" does not exist
                          warnings: []
                          infos: []
                          isValid: false
                        - id: 52974f49-497d-403b-9616-829da32590fe
                          name: customLogicBlock
                          errors: []
                          warnings: []
                          infos: []
                          isValid: true
                        - id: 16f57f36-48db-4989-adb1-ddb276fc23f1
                          name: extractDataBlock
                          errors: []
                          warnings: []
                          infos: []
                          isValid: true
                        - id: ee7c7a73-96b0-464e-9ad9-13198b0fadf5
                          name: tool
                          errors:
                            - Tool is invalid
                          isValid: false
                      tools: []
                      id: ee7c7a73-96b0-464e-9ad9-13198b0fadf5
                      isValid: false
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Invalid id (empty or missing path segment).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                message: Invalid id
                error: Unprocessable Entity
                statusCode: 422
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Dry run tool.
      tags:
        - tools
  /tools/{id}/draft:
    put:
      description: >-
        Sets the tool to DRAFT when allowed (not already DRAFT, not PUBLISHED,
        config present, not referenced by a policy in dry run). Response body is
        JSON `true`. Only users with the Standard Registry role are allowed to
        make the request.
      operationId: ToolsApi_draftPolicy
      parameters:
        - name: id
          required: true
          in: path
          description: Tool ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation. Response body is the JSON boolean `true`.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Invalid id (empty or missing path segment).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                message: Invalid id
                error: Unprocessable Entity
                statusCode: 422
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Return tool to draft (editing).
      tags:
        - tools
  /tools/validate:
    post:
      description: >-
        Validates selected tool. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: ToolsApi_validateTool
      parameters: []
      requestBody:
        required: true
        description: >-
          Full tool document (same shape as GET /tools/:id).
          `customLogicBlock.expression` in examples uses a short placeholder;
          production tools use longer scripts.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ToolDTO'
            examples:
              valid:
                summary: Valid DRAFT tool — validation passes
                value:
                  id: 69c245a07a442bf5c32d60a9
                  uuid: b03154fa-6c33-4b3a-ba14-6a24df47f5ec
                  name: Tool 06_1774339488650
                  description: ''
                  status: DRAFT
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                  topicId: 0.0.8356269
                  messageId: null
                  codeVersion: 1.5.1
                  createDate: '2026-03-24T08:04:48.653Z'
                  version: null
                  config:
                    id: ee7c7a73-96b0-464e-9ad9-13198b0fadf5
                    blockType: tool
                    permissions: []
                    tag: Tool
                    children:
                      - id: b7984eab-893a-497f-ba73-3e6d4c0b7ce0
                        blockType: extractDataBlock
                        defaultActive: false
                        permissions:
                          - Role
                        onErrorAction: no-action
                        action: get
                        schema: '#1bdad0d4-90ab-49cd-88d7-253d6b2d4ff9'
                        tag: get_tool_06
                        children: []
                        events: []
                        artifacts: []
                      - id: 52974f49-497d-403b-9616-829da32590fe
                        blockType: customLogicBlock
                        defaultActive: false
                        permissions:
                          - Role
                        onErrorAction: no-action
                        uiMetaData: {}
                        expression: |-
                          function calc_tool_16(document) {
                              document.C14 = document.tool_01?.field2?.field1 === 'Yes' ? 'Yes' : 'No';
                              // ... [calculation logic continues, hundreds of lines] ...
                              return document;
                          }
                          calc();
                        documentSigner: ''
                        idType: UUID
                        outputSchema: '#1bdad0d4-90ab-49cd-88d7-253d6b2d4ff9'
                        unsigned: true
                        tag: calc_tool_06
                        children: []
                        events: []
                        artifacts: []
                      - id: 16f57f36-48db-4989-adb1-ddb276fc23f1
                        blockType: extractDataBlock
                        defaultActive: false
                        permissions:
                          - Role
                        onErrorAction: no-action
                        action: set
                        schema: '#1bdad0d4-90ab-49cd-88d7-253d6b2d4ff9'
                        tag: set_tool_06
                        children: []
                        events:
                          - target: Tool
                            source: set_tool_06
                            input: output_tool_06
                            output: RunEvent
                            actor: ''
                            disabled: false
                        artifacts: []
                    events:
                      - target: get_tool_06
                        source: Tool
                        input: RunEvent
                        output: input_tool_06
                        actor: ''
                        disabled: false
                    artifacts: []
                    variables:
                      - name: Role
                        description: ''
                        type: Role
                    inputEvents:
                      - name: input_tool_06
                        description: ''
                    outputEvents:
                      - name: output_tool_06
                        description: ''
                    innerEvents:
                      - target: get_tool_06
                        source: Tool
                        input: RunEvent
                        output: input_tool_06
                        actor: ''
                        disabled: false
              invalid:
                summary: Invalid — createTokenBlock fails (empty template / token)
                value:
                  id: 69c245a07a442bf5c32d60a9
                  uuid: b03154fa-6c33-4b3a-ba14-6a24df47f5ec
                  name: Tool 06_1774339488650
                  description: ''
                  status: DRAFT
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                  topicId: 0.0.8356269
                  messageId: null
                  codeVersion: 1.5.1
                  createDate: '2026-03-24T08:04:48.653Z'
                  version: null
                  config:
                    id: ee7c7a73-96b0-464e-9ad9-13198b0fadf5
                    blockType: tool
                    permissions: []
                    tag: Tool
                    children:
                      - id: b7984eab-893a-497f-ba73-3e6d4c0b7ce0
                        blockType: extractDataBlock
                        defaultActive: false
                        permissions:
                          - Role
                        onErrorAction: no-action
                        action: get
                        schema: '#1bdad0d4-90ab-49cd-88d7-253d6b2d4ff9'
                        tag: get_tool_06
                        children: []
                        events: []
                        artifacts: []
                      - id: 68a86a37-e1b9-4c93-8892-624645bfd467
                        blockType: createTokenBlock
                        defaultActive: true
                        permissions: []
                        tag: Block_1
                        children: []
                        events: []
                        artifacts: []
                      - id: 52974f49-497d-403b-9616-829da32590fe
                        blockType: customLogicBlock
                        defaultActive: false
                        permissions:
                          - Role
                        onErrorAction: no-action
                        uiMetaData: {}
                        expression: |-
                          function calc_tool_16(document) {
                              document.C14 = document.tool_01?.field2?.field1 === 'Yes' ? 'Yes' : 'No';
                              // ... [calculation logic continues, hundreds of lines] ...
                              return document;
                          }
                          calc();
                        documentSigner: ''
                        idType: UUID
                        outputSchema: '#1bdad0d4-90ab-49cd-88d7-253d6b2d4ff9'
                        unsigned: true
                        tag: calc_tool_06
                        children: []
                        events: []
                        artifacts: []
                      - id: 16f57f36-48db-4989-adb1-ddb276fc23f1
                        blockType: extractDataBlock
                        defaultActive: false
                        permissions:
                          - Role
                        onErrorAction: no-action
                        action: set
                        schema: '#1bdad0d4-90ab-49cd-88d7-253d6b2d4ff9'
                        tag: set_tool_06
                        children: []
                        events:
                          - target: Tool
                            source: set_tool_06
                            input: output_tool_06
                            output: RunEvent
                            actor: ''
                            disabled: false
                        artifacts: []
                    events:
                      - target: get_tool_06
                        source: Tool
                        input: RunEvent
                        output: input_tool_06
                        actor: ''
                        disabled: false
                    artifacts: []
                    variables:
                      - name: Role
                        description: ''
                        type: Role
                    inputEvents:
                      - name: input_tool_06
                        description: ''
                    outputEvents:
                      - name: output_tool_06
                        description: ''
                    innerEvents:
                      - target: get_tool_06
                        source: Tool
                        input: RunEvent
                        output: input_tool_06
                        actor: ''
                        disabled: false
      responses:
        '200':
          description: >-
            Validation outcome (HTTP 200). `results` is ValidationErrors-style
            output (blocks, tools, common errors, aggregate isValid). `tool`
            echoes the submitted tool.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ToolValidationDTO'
              examples:
                valid:
                  summary: All blocks valid
                  value:
                    results:
                      errors: []
                      blocks:
                        - id: b7984eab-893a-497f-ba73-3e6d4c0b7ce0
                          name: extractDataBlock
                          errors: []
                          warnings: []
                          infos: []
                          isValid: true
                        - id: 52974f49-497d-403b-9616-829da32590fe
                          name: customLogicBlock
                          errors: []
                          warnings: []
                          infos: []
                          isValid: true
                        - id: 16f57f36-48db-4989-adb1-ddb276fc23f1
                          name: extractDataBlock
                          errors: []
                          warnings: []
                          infos: []
                          isValid: true
                      tools: []
                      id: ee7c7a73-96b0-464e-9ad9-13198b0fadf5
                      isValid: true
                    tool:
                      id: 69c245a07a442bf5c32d60a9
                      uuid: b03154fa-6c33-4b3a-ba14-6a24df47f5ec
                      name: Tool 06_1774339488650
                      description: ''
                      status: DRAFT
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                      topicId: 0.0.8356269
                      messageId: null
                      codeVersion: 1.5.1
                      createDate: '2026-03-24T08:04:48.653Z'
                      version: null
                      config:
                        id: ee7c7a73-96b0-464e-9ad9-13198b0fadf5
                        blockType: tool
                        permissions: []
                        tag: Tool
                        children:
                          - id: b7984eab-893a-497f-ba73-3e6d4c0b7ce0
                            blockType: extractDataBlock
                            defaultActive: false
                            permissions:
                              - Role
                            onErrorAction: no-action
                            action: get
                            schema: '#1bdad0d4-90ab-49cd-88d7-253d6b2d4ff9'
                            tag: get_tool_06
                            children: []
                            events: []
                            artifacts: []
                          - id: 52974f49-497d-403b-9616-829da32590fe
                            blockType: customLogicBlock
                            defaultActive: false
                            permissions:
                              - Role
                            onErrorAction: no-action
                            uiMetaData: {}
                            expression: |-
                              function calc_tool_16(document) {
                                  document.C14 = document.tool_01?.field2?.field1 === 'Yes' ? 'Yes' : 'No';
                                  // ... [calculation logic continues, hundreds of lines] ...
                                  return document;
                              }
                              calc();
                            documentSigner: ''
                            idType: UUID
                            outputSchema: '#1bdad0d4-90ab-49cd-88d7-253d6b2d4ff9'
                            unsigned: true
                            tag: calc_tool_06
                            children: []
                            events: []
                            artifacts: []
                          - id: 16f57f36-48db-4989-adb1-ddb276fc23f1
                            blockType: extractDataBlock
                            defaultActive: false
                            permissions:
                              - Role
                            onErrorAction: no-action
                            action: set
                            schema: '#1bdad0d4-90ab-49cd-88d7-253d6b2d4ff9'
                            tag: set_tool_06
                            children: []
                            events:
                              - target: Tool
                                source: set_tool_06
                                input: output_tool_06
                                output: RunEvent
                                actor: ''
                                disabled: false
                            artifacts: []
                        events:
                          - target: get_tool_06
                            source: Tool
                            input: RunEvent
                            output: input_tool_06
                            actor: ''
                            disabled: false
                        artifacts: []
                        variables:
                          - name: Role
                            description: ''
                            type: Role
                        inputEvents:
                          - name: input_tool_06
                            description: ''
                        outputEvents:
                          - name: output_tool_06
                            description: ''
                        innerEvents:
                          - target: get_tool_06
                            source: Tool
                            input: RunEvent
                            output: input_tool_06
                            actor: ''
                            disabled: false
                invalid:
                  summary: createTokenBlock + tool-level aggregate invalid
                  value:
                    results:
                      errors: []
                      blocks:
                        - id: b7984eab-893a-497f-ba73-3e6d4c0b7ce0
                          name: extractDataBlock
                          errors: []
                          warnings: []
                          infos: []
                          isValid: true
                        - id: 68a86a37-e1b9-4c93-8892-624645bfd467
                          name: createTokenBlock
                          errors:
                            - Template can not be empty
                            - Token "undefined" does not exist
                          warnings: []
                          infos: []
                          isValid: false
                        - id: 52974f49-497d-403b-9616-829da32590fe
                          name: customLogicBlock
                          errors: []
                          warnings: []
                          infos: []
                          isValid: true
                        - id: 16f57f36-48db-4989-adb1-ddb276fc23f1
                          name: extractDataBlock
                          errors: []
                          warnings: []
                          infos: []
                          isValid: true
                        - id: ee7c7a73-96b0-464e-9ad9-13198b0fadf5
                          name: tool
                          errors:
                            - Tool is invalid
                          isValid: false
                      tools: []
                      id: ee7c7a73-96b0-464e-9ad9-13198b0fadf5
                      isValid: false
                    tool:
                      id: 69c245a07a442bf5c32d60a9
                      uuid: b03154fa-6c33-4b3a-ba14-6a24df47f5ec
                      name: Tool 06_1774339488650
                      description: ''
                      status: DRAFT
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                      topicId: 0.0.8356269
                      messageId: null
                      codeVersion: 1.5.1
                      createDate: '2026-03-24T08:04:48.653Z'
                      version: null
                      config:
                        id: ee7c7a73-96b0-464e-9ad9-13198b0fadf5
                        blockType: tool
                        permissions: []
                        tag: Tool
                        children:
                          - id: b7984eab-893a-497f-ba73-3e6d4c0b7ce0
                            blockType: extractDataBlock
                            defaultActive: false
                            permissions:
                              - Role
                            onErrorAction: no-action
                            action: get
                            schema: '#1bdad0d4-90ab-49cd-88d7-253d6b2d4ff9'
                            tag: get_tool_06
                            children: []
                            events: []
                            artifacts: []
                          - id: 68a86a37-e1b9-4c93-8892-624645bfd467
                            blockType: createTokenBlock
                            defaultActive: true
                            permissions: []
                            tag: Block_1
                            children: []
                            events: []
                            artifacts: []
                          - id: 52974f49-497d-403b-9616-829da32590fe
                            blockType: customLogicBlock
                            defaultActive: false
                            permissions:
                              - Role
                            onErrorAction: no-action
                            uiMetaData: {}
                            expression: |-
                              function calc_tool_16(document) {
                                  document.C14 = document.tool_01?.field2?.field1 === 'Yes' ? 'Yes' : 'No';
                                  // ... [calculation logic continues, hundreds of lines] ...
                                  return document;
                              }
                              calc();
                            documentSigner: ''
                            idType: UUID
                            outputSchema: '#1bdad0d4-90ab-49cd-88d7-253d6b2d4ff9'
                            unsigned: true
                            tag: calc_tool_06
                            children: []
                            events: []
                            artifacts: []
                          - id: 16f57f36-48db-4989-adb1-ddb276fc23f1
                            blockType: extractDataBlock
                            defaultActive: false
                            permissions:
                              - Role
                            onErrorAction: no-action
                            action: set
                            schema: '#1bdad0d4-90ab-49cd-88d7-253d6b2d4ff9'
                            tag: set_tool_06
                            children: []
                            events:
                              - target: Tool
                                source: set_tool_06
                                input: output_tool_06
                                output: RunEvent
                                actor: ''
                                disabled: false
                            artifacts: []
                        events:
                          - target: get_tool_06
                            source: Tool
                            input: RunEvent
                            output: input_tool_06
                            actor: ''
                            disabled: false
                        artifacts: []
                        variables:
                          - name: Role
                            description: ''
                            type: Role
                        inputEvents:
                          - name: input_tool_06
                            description: ''
                        outputEvents:
                          - name: output_tool_06
                            description: ''
                        innerEvents:
                          - target: get_tool_06
                            source: Tool
                            input: RunEvent
                            output: input_tool_06
                            actor: ''
                            disabled: false
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Validates selected tool.
      tags:
        - tools
  /tools/{id}/export/file:
    get:
      description: >-
        Returns a zip file containing the published tool and all associated
        artifacts, i.e. schemas and VCs. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: ToolsApi_toolExportFile
      parameters:
        - name: id
          required: true
          in: path
          description: Tool ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: >-
            Binary ZIP archive (`Content-Type: application/zip`,
            `Content-Disposition: attachment`). Not JSON.
          content:
            application/zip:
              schema:
                type: string
                format: binary
        '401':
          description: Unauthorized request.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Invalid id (empty or missing path segment).
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                message: Invalid id
                error: Unprocessable Entity
                statusCode: 422
        '500':
          description: Internal server error.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: >-
        Return tool and its artifacts in a zip file format for the specified
        tool.
      tags:
        - tools
  /tools/{id}/export/message:
    get:
      description: >-
        Returns id, uuid, name, description, messageId, owner. `messageId` is
        set when the tool is published to the topic; for DRAFT / dry-run it is
        null. Only users with the Standard Registry role are allowed to make the
        request.
      operationId: ToolsApi_toolExportMessage
      parameters:
        - name: id
          required: true
          in: path
          description: Tool ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Tool export metadata (JSON).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ToolExportMessageDTO'
              examples:
                published:
                  summary: Published tool — messageId present
                  value:
                    id: 69c1502ffb66de861cc9dcef
                    uuid: 7d56aec4-5db3-46d3-9f3f-236fc33e0772
                    name: Tool 16
                    description: ''
                    messageId: '1720000738.873798003'
                    owner: >-
                      did:hedera:testnet:8Go53QCUXZ4nzSQMyoWovWCxseogGTMLDiHg14Fkz4VN_0.0.4481265
                draft:
                  summary: DRAFT / dry-run — messageId null
                  value:
                    id: 69c245a07a442bf5c32d60a9
                    uuid: b03154fa-6c33-4b3a-ba14-6a24df47f5ec
                    name: Tool 06_1774339488650
                    description: ''
                    messageId: null
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Invalid id (empty or missing path segment).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                message: Invalid id
                error: Unprocessable Entity
                statusCode: 422
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Return tool identity and Hedera message id for export.
      tags:
        - tools
  /tools/import/message/preview:
    post:
      description: >-
        Loads the tool ZIP from IPFS via `messageId`, parses `tool.json`,
        `schemas/*`, `tags/*`, `tools/*`, then adds `messageId` and
        `toolTopicId` from the message. Does not persist to the DB. Only users
        with the Standard Registry role are allowed to make the request.
      operationId: ToolsApi_toolImportMessagePreview
      parameters: []
      requestBody:
        required: true
        description: Hedera topic message id (`messageId`).
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportMessageDTO'
            examples:
              byMessageId:
                summary: Preview by Hedera message id
                value:
                  messageId: '1726593517.484578000'
      responses:
        '200':
          description: >-
            Parsed archive components plus message metadata. `schemas` entries
            are full schema records in production; the example lists all
            metadata fields with `document` and `context` as empty objects
            (omitted payload).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ToolPreviewDTO'
              example:
                tool:
                  name: Tool 33
                  description: ''
                  creator: >-
                    did:hedera:testnet:5h54ixs4SfsNJwPxtpdMcd2M1V4ddK8aRYCh44nnWxfv_0.0.4674597
                  owner: >-
                    did:hedera:testnet:5h54ixs4SfsNJwPxtpdMcd2M1V4ddK8aRYCh44nnWxfv_0.0.4674597
                  codeVersion: 1.5.1
                  tagsTopicId: 0.0.4865958
                  tools: []
                  config:
                    id: ee7c7a73-96b0-464e-9ad9-13198b0fadf5
                    blockType: tool
                    permissions: []
                    tag: Tool
                    children:
                      - id: b7984eab-893a-497f-ba73-3e6d4c0b7ce0
                        blockType: extractDataBlock
                        defaultActive: false
                        permissions:
                          - Role
                        onErrorAction: no-action
                        action: get
                        schema: '#073bdaf5-68d1-4bfd-9290-2c4f40a98034&1.0.0'
                        tag: get_tool_33
                        children: []
                        events: []
                        artifacts: []
                      - id: 52974f49-497d-403b-9616-829da32590fe
                        blockType: customLogicBlock
                        defaultActive: false
                        permissions:
                          - Role
                        onErrorAction: no-action
                        uiMetaData: {}
                        expression: |-
                          function calc_tool_16(document) {
                              document.C14 = document.tool_01?.field2?.field1 === 'Yes' ? 'Yes' : 'No';
                              // ... [calculation logic continues, hundreds of lines] ...
                              return document;
                          }
                          calc();
                        documentSigner: ''
                        idType: UUID
                        outputSchema: '#073bdaf5-68d1-4bfd-9290-2c4f40a98034&1.0.0'
                        unsigned: true
                        tag: calc_tool_33
                        children: []
                        events: []
                        artifacts: []
                      - id: 16f57f36-48db-4989-adb1-ddb276fc23f1
                        blockType: extractDataBlock
                        defaultActive: false
                        permissions:
                          - Role
                        onErrorAction: no-action
                        action: set
                        schema: '#073bdaf5-68d1-4bfd-9290-2c4f40a98034&1.0.0'
                        tag: set_tool_33
                        children: []
                        events:
                          - target: Tool
                            source: set_tool_33
                            input: output_tool_33
                            output: RunEvent
                            actor: ''
                            disabled: false
                        artifacts: []
                    events:
                      - target: get_tool_33
                        source: Tool
                        input: RunEvent
                        output: input_tool_33
                        actor: ''
                        disabled: false
                    artifacts: []
                    variables:
                      - name: Role
                        description: ''
                        type: Role
                    inputEvents:
                      - name: input_tool_33
                        description: ''
                    outputEvents:
                      - name: output_tool_33
                        description: ''
                    innerEvents:
                      - target: get_tool_33
                        source: Tool
                        input: RunEvent
                        output: input_tool_33
                        actor: ''
                        disabled: false
                tags: []
                schemas:
                  - id: 66e9b98854cf4ebe299cb399
                    createDate: '2024-09-17T17:17:00.224Z'
                    updateDate: '2024-09-17T17:18:28.695Z'
                    uuid: 073bdaf5-68d1-4bfd-9290-2c4f40a98034
                    hash: ''
                    name: Tool 33
                    description: ''
                    entity: VC
                    documentFileId: 66e9b9e454cf4ebe299cb3c9
                    contextFileId: 66e9b9e454cf4ebe299cb3cb
                    version: 1.0.0
                    sourceVersion: ''
                    creator: >-
                      did:hedera:testnet:5h54ixs4SfsNJwPxtpdMcd2M1V4ddK8aRYCh44nnWxfv_0.0.4674597
                    owner: >-
                      did:hedera:testnet:5h54ixs4SfsNJwPxtpdMcd2M1V4ddK8aRYCh44nnWxfv_0.0.4674597
                    topicId: 0.0.4865949
                    messageId: '1726593505.353812000'
                    documentURL: >-
                      ipfs://bafkreiflnxkizsxsmtyiraojvykwj7s4y3i3twsytelw6egboutawr7xta
                    contextURL: >-
                      ipfs://bafkreic4mekxeq3p5es7bacfdswkae3rxlmka5hirtlnxmr63ukdn7l6ki
                    iri: '#073bdaf5-68d1-4bfd-9290-2c4f40a98034&1.0.0'
                    system: false
                    active: false
                    category: TOOL
                    codeVersion: 1.1.0
                    defs:
                      - '#64d676db-cd55-41f7-87ed-71d8e7a582dc&1.0.0'
                    errors: []
                    document: {}
                    context: {}
                  - id: 66e9b98c54cf4ebe299cb3a2
                    createDate: '2024-09-17T17:17:03.328Z'
                    updateDate: '2024-09-17T17:18:21.063Z'
                    uuid: 64d676db-cd55-41f7-87ed-71d8e7a582dc
                    hash: ''
                    name: >-
                      Tool 33. Carbon dioxide emission factor for diesel
                      generating system used for offgrid power generation
                      purposes | Carbon dioxide emission factor for kerosene
                      used for lighting applications
                    description: ''
                    entity: VC
                    documentFileId: 66e9b9dd54cf4ebe299cb3bb
                    contextFileId: 66e9b9dd54cf4ebe299cb3bd
                    version: 1.0.0
                    sourceVersion: ''
                    creator: >-
                      did:hedera:testnet:5h54ixs4SfsNJwPxtpdMcd2M1V4ddK8aRYCh44nnWxfv_0.0.4674597
                    owner: >-
                      did:hedera:testnet:5h54ixs4SfsNJwPxtpdMcd2M1V4ddK8aRYCh44nnWxfv_0.0.4674597
                    topicId: 0.0.4865949
                    messageId: '1726593498.351403305'
                    documentURL: >-
                      ipfs://bafkreifkfy6ft5bpoudp2oruy5zfwicfycrikcx473vgm7tm7kau6x4raq
                    contextURL: >-
                      ipfs://bafkreifxxqtc4nku6x5y7bu2przweee2flnbhskij35igfhc2xnb5fwutq
                    iri: '#64d676db-cd55-41f7-87ed-71d8e7a582dc&1.0.0'
                    system: false
                    active: false
                    category: TOOL
                    codeVersion: 1.1.0
                    defs: []
                    errors: []
                    document: {}
                    context: {}
                tools: []
                messageId: '1726593517.484578000'
                toolTopicId: 0.0.4865949
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: >-
            Missing or empty `messageId` in the body (gateway throws before
            calling guardian), or global request validation failure.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                message: Message ID in body is empty
                error: Unprocessable Entity
                statusCode: 422
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Preview tool package from a Hedera message (IPFS ZIP).
      tags:
        - tools
  /tools/import/message:
    post:
      description: >-
        Imports new tool and all associated artifacts from IPFS into the local
        DB. Only users with the Standard Registry role are allowed to make the
        request.
      operationId: ToolsApi_toolImportMessage
      parameters: []
      requestBody:
        required: true
        description: Message.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportMessageDTO'
            examples:
              byMessageId:
                summary: Import by Hedera message id
                value:
                  messageId: '1726593517.484578000'
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ToolImportResponseDTO'
              example:
                tool:
                  createDate: '2026-03-24T13:31:34.959Z'
                  updateDate: '2026-03-24T13:31:34.959Z'
                  hash: Ceo5z8VkMbYWAcgjhesqGXHzJ9Z6aEdEEGWA4Jq4XE2i
                  uuid: 8772ca4b-4efe-4517-93ae-6c63a4281257
                  name: Tool 33
                  description: ''
                  configFileId: 69c292367a442bf5c32d6157
                  status: PUBLISHED
                  creator: >-
                    did:hedera:testnet:5h54ixs4SfsNJwPxtpdMcd2M1V4ddK8aRYCh44nnWxfv_0.0.4674597
                  owner: >-
                    did:hedera:testnet:5h54ixs4SfsNJwPxtpdMcd2M1V4ddK8aRYCh44nnWxfv_0.0.4674597
                  topicId: 0.0.4865949
                  messageId: '1726593517.484578000'
                  codeVersion: 1.5.1
                  tagsTopicId: 0.0.4865958
                  tools: []
                  contentFileId: 69c292367a442bf5c32d6154
                  id: 69c292367a442bf5c32d6156
                  config:
                    id: ee7c7a73-96b0-464e-9ad9-13198b0fadf5
                    blockType: tool
                    permissions: []
                    tag: Tool
                    children:
                      - id: b7984eab-893a-497f-ba73-3e6d4c0b7ce0
                        blockType: extractDataBlock
                        defaultActive: false
                        permissions:
                          - Role
                        onErrorAction: no-action
                        action: get
                        schema: '#073bdaf5-68d1-4bfd-9290-2c4f40a98034&1.0.0'
                        tag: get_tool_33
                        children: []
                        events: []
                        artifacts: []
                      - id: 52974f49-497d-403b-9616-829da32590fe
                        blockType: customLogicBlock
                        defaultActive: false
                        permissions:
                          - Role
                        onErrorAction: no-action
                        uiMetaData: {}
                        expression: |-
                          function calc_tool_16(document) {
                              document.C14 = document.tool_01?.field2?.field1 === 'Yes' ? 'Yes' : 'No';
                              // ... [calculation logic continues, hundreds of lines] ...
                              return document;
                          }
                          calc();
                        documentSigner: ''
                        idType: UUID
                        outputSchema: '#073bdaf5-68d1-4bfd-9290-2c4f40a98034&1.0.0'
                        unsigned: true
                        tag: calc_tool_33
                        children: []
                        events: []
                        artifacts: []
                      - id: 16f57f36-48db-4989-adb1-ddb276fc23f1
                        blockType: extractDataBlock
                        defaultActive: false
                        permissions:
                          - Role
                        onErrorAction: no-action
                        action: set
                        schema: '#073bdaf5-68d1-4bfd-9290-2c4f40a98034&1.0.0'
                        tag: set_tool_33
                        children: []
                        events:
                          - target: Tool
                            source: set_tool_33
                            input: output_tool_33
                            output: RunEvent
                            actor: ''
                            disabled: false
                        artifacts: []
                    events:
                      - target: get_tool_33
                        source: Tool
                        input: RunEvent
                        output: input_tool_33
                        actor: ''
                        disabled: false
                    artifacts: []
                    variables:
                      - name: Role
                        description: ''
                        type: Role
                    inputEvents:
                      - name: input_tool_33
                        description: ''
                    outputEvents:
                      - name: output_tool_33
                        description: ''
                    innerEvents:
                      - target: get_tool_33
                        source: Tool
                        input: RunEvent
                        output: input_tool_33
                        actor: ''
                        disabled: false
                errors: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Message ID in body is empty
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Imports new tool from IPFS.
      tags:
        - tools
  /tools/import/file/preview:
    post:
      description: >-
        Parses the uploaded tool archive (`*.tool`, ZIP format; `tool.json`,
        `schemas/*`, `tags/*`, `tools/*`) without persisting. Shape matches
        message preview; `messageId` / `toolTopicId` may be absent when not
        sourced from a Hedera message. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: ToolsApi_toolImportFilePreview
      parameters: []
      requestBody:
        required: true
        description: Tool archive (`*.tool`, ZIP format) as raw binary request body.
        content:
          binary/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: >-
            Parsed archive components. Same structure as `POST
            /tools/import/message/preview`; the example matches that response
            shape (`document` / `context` empty in `schemas`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ToolPreviewDTO'
              example:
                tool:
                  name: Tool 33
                  description: ''
                  creator: >-
                    did:hedera:testnet:5h54ixs4SfsNJwPxtpdMcd2M1V4ddK8aRYCh44nnWxfv_0.0.4674597
                  owner: >-
                    did:hedera:testnet:5h54ixs4SfsNJwPxtpdMcd2M1V4ddK8aRYCh44nnWxfv_0.0.4674597
                  codeVersion: 1.5.1
                  tagsTopicId: 0.0.4865958
                  tools: []
                  config:
                    id: ee7c7a73-96b0-464e-9ad9-13198b0fadf5
                    blockType: tool
                    permissions: []
                    tag: Tool
                    children:
                      - id: b7984eab-893a-497f-ba73-3e6d4c0b7ce0
                        blockType: extractDataBlock
                        defaultActive: false
                        permissions:
                          - Role
                        onErrorAction: no-action
                        action: get
                        schema: '#073bdaf5-68d1-4bfd-9290-2c4f40a98034&1.0.0'
                        tag: get_tool_33
                        children: []
                        events: []
                        artifacts: []
                      - id: 52974f49-497d-403b-9616-829da32590fe
                        blockType: customLogicBlock
                        defaultActive: false
                        permissions:
                          - Role
                        onErrorAction: no-action
                        uiMetaData: {}
                        expression: |-
                          function calc_tool_16(document) {
                              document.C14 = document.tool_01?.field2?.field1 === 'Yes' ? 'Yes' : 'No';
                              // ... [calculation logic continues, hundreds of lines] ...
                              return document;
                          }
                          calc();
                        documentSigner: ''
                        idType: UUID
                        outputSchema: '#073bdaf5-68d1-4bfd-9290-2c4f40a98034&1.0.0'
                        unsigned: true
                        tag: calc_tool_33
                        children: []
                        events: []
                        artifacts: []
                      - id: 16f57f36-48db-4989-adb1-ddb276fc23f1
                        blockType: extractDataBlock
                        defaultActive: false
                        permissions:
                          - Role
                        onErrorAction: no-action
                        action: set
                        schema: '#073bdaf5-68d1-4bfd-9290-2c4f40a98034&1.0.0'
                        tag: set_tool_33
                        children: []
                        events:
                          - target: Tool
                            source: set_tool_33
                            input: output_tool_33
                            output: RunEvent
                            actor: ''
                            disabled: false
                        artifacts: []
                    events:
                      - target: get_tool_33
                        source: Tool
                        input: RunEvent
                        output: input_tool_33
                        actor: ''
                        disabled: false
                    artifacts: []
                    variables:
                      - name: Role
                        description: ''
                        type: Role
                    inputEvents:
                      - name: input_tool_33
                        description: ''
                    outputEvents:
                      - name: output_tool_33
                        description: ''
                    innerEvents:
                      - target: get_tool_33
                        source: Tool
                        input: RunEvent
                        output: input_tool_33
                        actor: ''
                        disabled: false
                tags: []
                schemas:
                  - id: 66e9b98854cf4ebe299cb399
                    createDate: '2024-09-17T17:17:00.224Z'
                    updateDate: '2024-09-17T17:18:28.695Z'
                    uuid: 073bdaf5-68d1-4bfd-9290-2c4f40a98034
                    hash: ''
                    name: Tool 33
                    description: ''
                    entity: VC
                    documentFileId: 66e9b9e454cf4ebe299cb3c9
                    contextFileId: 66e9b9e454cf4ebe299cb3cb
                    version: 1.0.0
                    sourceVersion: ''
                    creator: >-
                      did:hedera:testnet:5h54ixs4SfsNJwPxtpdMcd2M1V4ddK8aRYCh44nnWxfv_0.0.4674597
                    owner: >-
                      did:hedera:testnet:5h54ixs4SfsNJwPxtpdMcd2M1V4ddK8aRYCh44nnWxfv_0.0.4674597
                    topicId: 0.0.4865949
                    messageId: '1726593505.353812000'
                    documentURL: >-
                      ipfs://bafkreiflnxkizsxsmtyiraojvykwj7s4y3i3twsytelw6egboutawr7xta
                    contextURL: >-
                      ipfs://bafkreic4mekxeq3p5es7bacfdswkae3rxlmka5hirtlnxmr63ukdn7l6ki
                    iri: '#073bdaf5-68d1-4bfd-9290-2c4f40a98034&1.0.0'
                    system: false
                    active: false
                    category: TOOL
                    codeVersion: 1.1.0
                    defs:
                      - '#64d676db-cd55-41f7-87ed-71d8e7a582dc&1.0.0'
                    errors: []
                    document: {}
                    context: {}
                  - id: 66e9b98c54cf4ebe299cb3a2
                    createDate: '2024-09-17T17:17:03.328Z'
                    updateDate: '2024-09-17T17:18:21.063Z'
                    uuid: 64d676db-cd55-41f7-87ed-71d8e7a582dc
                    hash: ''
                    name: >-
                      Tool 33. Carbon dioxide emission factor for diesel
                      generating system used for offgrid power generation
                      purposes | Carbon dioxide emission factor for kerosene
                      used for lighting applications
                    description: ''
                    entity: VC
                    documentFileId: 66e9b9dd54cf4ebe299cb3bb
                    contextFileId: 66e9b9dd54cf4ebe299cb3bd
                    version: 1.0.0
                    sourceVersion: ''
                    creator: >-
                      did:hedera:testnet:5h54ixs4SfsNJwPxtpdMcd2M1V4ddK8aRYCh44nnWxfv_0.0.4674597
                    owner: >-
                      did:hedera:testnet:5h54ixs4SfsNJwPxtpdMcd2M1V4ddK8aRYCh44nnWxfv_0.0.4674597
                    topicId: 0.0.4865949
                    messageId: '1726593498.351403305'
                    documentURL: >-
                      ipfs://bafkreifkfy6ft5bpoudp2oruy5zfwicfycrikcx473vgm7tm7kau6x4raq
                    contextURL: >-
                      ipfs://bafkreifxxqtc4nku6x5y7bu2przweee2flnbhskij35igfhc2xnb5fwutq
                    iri: '#64d676db-cd55-41f7-87ed-71d8e7a582dc&1.0.0'
                    system: false
                    active: false
                    category: TOOL
                    codeVersion: 1.1.0
                    defs: []
                    errors: []
                    document: {}
                    context: {}
                tools: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Preview tool package from an uploaded *.tool file.
      tags:
        - tools
  /tools/import/file:
    post:
      description: >-
        Imports new tool and all associated artifacts, such as schemas and VCs,
        from the provided `*.tool` file (ZIP format) into the local DB. Only
        users with the Standard Registry role are allowed to make the request.
      operationId: ToolsApi_toolImportFile
      parameters: []
      requestBody:
        required: true
        description: Tool archive (`*.tool`, ZIP format) as raw binary request body.
        content:
          binary/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ToolDTO'
              example:
                createDate: '2026-03-24T13:53:21.329Z'
                updateDate: '2026-03-24T13:53:21.329Z'
                uuid: 6ae44173-e280-406b-bb64-5588bc539be3
                name: Tool 33_1774360401319
                description: ''
                configFileId: 69c297517a442bf5c32d617f
                status: DRAFT
                creator: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                owner: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                topicId: 0.0.8359424
                codeVersion: 1.5.1
                tools: []
                id: 69c297517a442bf5c32d617e
                config:
                  id: ee7c7a73-96b0-464e-9ad9-13198b0fadf5
                  blockType: tool
                  permissions: []
                  tag: Tool
                  children:
                    - id: b7984eab-893a-497f-ba73-3e6d4c0b7ce0
                      blockType: extractDataBlock
                      defaultActive: false
                      permissions:
                        - Role
                      onErrorAction: no-action
                      action: get
                      schema: '#02527932-b2ba-4f0d-be2a-563a8ab21889'
                      tag: get_tool_33
                      children: []
                      events: []
                      artifacts: []
                    - id: 52974f49-497d-403b-9616-829da32590fe
                      blockType: customLogicBlock
                      defaultActive: false
                      permissions:
                        - Role
                      onErrorAction: no-action
                      uiMetaData: {}
                      expression: |-
                        function calc_tool_16(document) {
                            document.C14 = document.tool_01?.field2?.field1 === 'Yes' ? 'Yes' : 'No';
                            // ... [calculation logic continues, hundreds of lines] ...
                            return document;
                        }
                        calc();
                      documentSigner: ''
                      idType: UUID
                      outputSchema: '#02527932-b2ba-4f0d-be2a-563a8ab21889'
                      unsigned: true
                      tag: calc_tool_33
                      children: []
                      events: []
                      artifacts: []
                    - id: 16f57f36-48db-4989-adb1-ddb276fc23f1
                      blockType: extractDataBlock
                      defaultActive: false
                      permissions:
                        - Role
                      onErrorAction: no-action
                      action: set
                      schema: '#02527932-b2ba-4f0d-be2a-563a8ab21889'
                      tag: set_tool_33
                      children: []
                      events:
                        - target: Tool
                          source: set_tool_33
                          input: output_tool_33
                          output: RunEvent
                          actor: ''
                          disabled: false
                      artifacts: []
                  events:
                    - target: get_tool_33
                      source: Tool
                      input: RunEvent
                      output: input_tool_33
                      actor: ''
                      disabled: false
                  artifacts: []
                  variables:
                    - name: Role
                      description: ''
                      type: Role
                  inputEvents:
                    - name: input_tool_33
                      description: ''
                  outputEvents:
                    - name: output_tool_33
                      description: ''
                  innerEvents:
                    - target: get_tool_33
                      source: Tool
                      input: RunEvent
                      output: input_tool_33
                      actor: ''
                      disabled: false
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Imports new tool from a *.tool file.
      tags:
        - tools
  /tools/import/file-metadata:
    post:
      description: >-
        Imports new tool and all associated artifacts, such as schemas and VCs,
        from the provided `*.tool` file (ZIP format) into the local DB. Only
        users with the Standard Registry role are allowed to make the request.
      operationId: ToolsApi_toolImportFileWithMetadata
      parameters: []
      requestBody:
        required: true
        description: >-
          Multipart form data with a tool archive (`*.tool`, ZIP format) and
          optional metadata JSON file.
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - file
              properties:
                file:
                  type: string
                  format: binary
                  description: Tool archive (`*.tool`, ZIP format).
                metadata:
                  type: string
                  format: binary
                  nullable: true
                  description: >-
                    Optional JSON file (for example `metadata.json`) with
                    content like `{ "tools": { "1706867530.884259218":
                    "1774367941.594676930" } }`.
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ToolDTO'
              example:
                createDate: '2026-03-24T17:11:34.719Z'
                updateDate: '2026-03-24T17:11:34.719Z'
                uuid: 1c04677c-0c6f-4abf-a10b-5f1a34a4efb1
                name: Tool 05
                description: ''
                configFileId: 69c2c5c693723d9b1b38c359
                status: DRAFT
                creator: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8360865
                owner: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8360865
                topicId: 0.0.8360888
                codeVersion: 1.5.1
                tools: []
                id: 69c2c5c693723d9b1b38c358
                config:
                  id: 8f3c6675-16ee-4680-ab1f-58c0f619ab82
                  blockType: tool
                  permissions: []
                  tag: Tool
                  children:
                    - id: 816f0414-286d-4d2d-ade1-6ce7768fa171
                      blockType: tool
                      defaultActive: true
                      hash: FYwXXAw2pumRVekHJbVpVrtqUGPvNGjMnNsrcZ6gagiS
                      messageId: '1706867530.884259218'
                      permissions:
                        - Role
                      onErrorAction: no-action
                      Role: Role
                      tag: tool_07
                      children: []
                      events:
                        - target: get_tool_05
                          source: tool_07
                          input: RunEvent
                          output: output_tool_07
                          actor: ''
                          disabled: false
                      artifacts: []
                      variables:
                        - name: Role
                          description: ''
                          type: Role
                      inputEvents:
                        - name: input_tool_07
                          description: ''
                      outputEvents:
                        - name: output_tool_07
                          description: ''
                      innerEvents: []
                    - id: 5119c09c-804c-4eea-9b26-7a9eb90a8394
                      blockType: extractDataBlock
                      defaultActive: false
                      permissions:
                        - Role
                      onErrorAction: no-action
                      action: get
                      schema: '#433e11e5-918d-43c1-ad05-063c9ac12d67'
                      tag: get_tool_05
                      children: []
                      events: []
                      artifacts: []
                    - id: 88cc53c2-83db-4d21-93a8-0e0cdc25ce3b
                      blockType: customLogicBlock
                      defaultActive: false
                      permissions:
                        - Role
                      onErrorAction: no-action
                      uiMetaData: {}
                      expression: |-
                        function calc_tool_16(document) {
                            document.C14 = document.tool_01?.field2?.field1 === 'Yes' ? 'Yes' : 'No';
                            // ... [calculation logic continues, hundreds of lines] ...
                            return document;
                        }
                        calc();
                      documentSigner: ''
                      idType: UUID
                      outputSchema: '#433e11e5-918d-43c1-ad05-063c9ac12d67'
                      unsigned: true
                      tag: calc_tool_05
                      children: []
                      events: []
                      artifacts: []
                    - id: 61fa5298-d71f-41e3-8d6c-df0c94052edf
                      blockType: extractDataBlock
                      defaultActive: false
                      permissions:
                        - Role
                      onErrorAction: no-action
                      action: set
                      schema: '#433e11e5-918d-43c1-ad05-063c9ac12d67'
                      tag: set_tool_05
                      children: []
                      events:
                        - target: Tool
                          source: set_tool_05
                          input: output_tool_05
                          output: RunEvent
                          actor: ''
                          disabled: false
                      artifacts: []
                  events:
                    - target: tool_07
                      source: Tool
                      input: input_tool_07
                      output: input_tool_05
                      actor: ''
                      disabled: false
                  artifacts: []
                  variables:
                    - name: Role
                      description: ''
                      type: Role
                  inputEvents:
                    - name: input_tool_05
                      description: ''
                  outputEvents:
                    - name: output_tool_05
                      description: ''
                  innerEvents:
                    - target: tool_07
                      source: Tool
                      input: input_tool_07
                      output: input_tool_05
                      actor: ''
                      disabled: false
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Imports new tool from a *.tool file.
      tags:
        - tools
  /tools/push/import/file:
    post:
      description: >-
        Imports new tool and all associated artifacts, such as schemas and VCs,
        from the provided `*.tool` file (ZIP format) into the local DB. Only
        users with the Standard Registry role are allowed to make the request.
      operationId: ToolsApi_toolImportFileAsync
      parameters: []
      requestBody:
        required: true
        description: Tool archive (`*.tool`, ZIP format) as raw binary request body.
        content:
          binary/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: object
                required:
                  - taskId
                  - expectation
                  - action
                  - userId
                properties:
                  taskId:
                    type: string
                    description: Task Id
                    example: 4c4bb402-197a-4682-a5eb-ff52e7542f28
                  expectation:
                    type: number
                    description: Expected count of task phases
                    example: 9
                  action:
                    type: string
                    description: Task action
                    example: Import tool file
                  userId:
                    type: string
                    description: User Id
                    example: 69bcfd90c98df6ceb05e8a78
              example:
                taskId: 4c4bb402-197a-4682-a5eb-ff52e7542f28
                expectation: 9
                action: Import tool file
                userId: 69bcfd90c98df6ceb05e8a78
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Imports new tool from a *.tool file.
      tags:
        - tools
  /tools/push/import/file-metadata:
    post:
      description: >-
        Imports new tool and all associated artifacts, such as schemas and VCs,
        from the provided `*.tool` file (ZIP format) into the local DB. Only
        users with the Standard Registry role are allowed to make the request.
      operationId: ToolsApi_toolImportFileWithMetadataAsync
      parameters: []
      requestBody:
        required: true
        description: >-
          Multipart form data with a tool archive (`*.tool`, ZIP format) and
          optional metadata JSON file.
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - file
              properties:
                file:
                  type: string
                  format: binary
                  description: Tool archive (`*.tool`, ZIP format).
                metadata:
                  type: string
                  format: binary
                  nullable: true
                  description: >-
                    Optional JSON file (for example `metadata.json`) with
                    content like `{ "tools": { "1706867530.884259218":
                    "1774367941.594676930" } }`.
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: object
                required:
                  - taskId
                  - expectation
                  - action
                  - userId
                properties:
                  taskId:
                    type: string
                    description: Task Id
                    example: e2869118-935c-4f13-bbed-e7868b058606
                  expectation:
                    type: number
                    description: Expected count of task phases
                    example: 9
                  action:
                    type: string
                    description: Task action
                    example: Import tool file
                  userId:
                    type: string
                    description: User Id
                    example: 69b806bbd51470fcd6ea9ba3
              example:
                taskId: e2869118-935c-4f13-bbed-e7868b058606
                expectation: 9
                action: Import tool file
                userId: 69b806bbd51470fcd6ea9ba3
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Imports new tool from a *.tool file.
      tags:
        - tools
  /tools/push/import/message:
    post:
      description: >-
        Imports new tool and all associated artifacts from IPFS into the local
        DB. Only users with the Standard Registry role are allowed to make the
        request.
      operationId: ToolsApi_toolImportMessageAsync
      parameters: []
      requestBody:
        required: true
        description: Message.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportMessageDTO'
            examples:
              byMessageId:
                summary: Import by Hedera message id
                value:
                  messageId: '1726593517.484578000'
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: object
                required:
                  - taskId
                  - expectation
                  - action
                  - userId
                properties:
                  taskId:
                    type: string
                    description: Task Id
                    example: 4c4bb402-197a-4682-a5eb-ff52e7542f28
                  expectation:
                    type: number
                    description: Expected count of task phases
                    example: 11
                  action:
                    type: string
                    description: Task action
                    example: Import tool message
                  userId:
                    type: string
                    description: User Id
                    example: 69bcfd90c98df6ceb05e8a78
              example:
                taskId: 4c4bb402-197a-4682-a5eb-ff52e7542f28
                expectation: 11
                action: Import tool message
                userId: 69bcfd90c98df6ceb05e8a78
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Message ID in body is empty
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Imports new tool from IPFS.
      tags:
        - tools
  /tools/menu/all:
    get:
      description: >-
        Returns tools menu. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: ToolsApi_getMenu
      parameters: []
      responses:
        '200':
          description: Tools menu.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ToolMenuItemDTO'
              example:
                - hash: 81PmVismGTVZGSStCGGcAuAqXi3V6JJzu8MKoHT7djQz
                  name: Tool 07_modified
                  description: ''
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8299835
                  topicId: 0.0.8360425
                  messageId: '1774367941.594676930'
                  tools: []
                  config:
                    inputEvents:
                      - name: input_tool_07
                        description: ''
                    outputEvents:
                      - name: output_tool_07
                        description: ''
                    variables:
                      - name: Role
                        description: ''
                        type: Role
                  schemas:
                    - id: 69c2b4947a442bf5c32d6c8c
                      name: Tool 07
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#31f4f114-95e6-4d3a-b0c0-8888b2ea11f7&1.0.0'
                      category: POLICY
                    - id: 69c2b4947a442bf5c32d6c91
                      name: Build Margin
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#012635cb-a876-4041-b8fe-2b5297cc86c6&1.0.0'
                      category: POLICY
                    - id: 69c2b4947a442bf5c32d6c96
                      name: Fuel Type
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#e6f79971-c19a-4317-be13-e39410f72773&1.0.0'
                      category: POLICY
                    - id: 69c2b4947a442bf5c32d6c9b
                      name: Average OM (Option A1)
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#dfdd825f-7c91-45c2-9a43-12d21da69022&1.0.0'
                      category: POLICY
                    - id: 69c2b4947a442bf5c32d6ca0
                      name: Average OM (Option A2)
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#3758fbe8-b3c2-4dac-aefd-57ddfe02e718&1.0.0'
                      category: POLICY
                    - id: 69c2b4947a442bf5c32d6ca5
                      name: Average OM (Option A3)
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#14dae990-fa84-4b98-8e11-f62c0a1a8a24&1.0.0'
                      category: POLICY
                    - id: 69c2b4947a442bf5c32d6caa
                      name: >-
                        (Average OM, Simple Adj OM) Power units serving the grid
                        in specified year
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#c6e1b179-7c88-4260-9afa-1d3b4be46a3d&1.0.0'
                      category: POLICY
                    - id: 69c2b4947a442bf5c32d6caf
                      name: >-
                        Calculation based on average efficiency and electricity 
                        generation of each plant
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#41f1e5ad-8398-47ed-826e-118a8b6d4b47&1.0.0'
                      category: POLICY
                    - id: 69c2b4947a442bf5c32d6cb4
                      name: >-
                        Calculation based on total fuel consumption and
                        electricity  generation of the system
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#c47928b5-4cef-405f-85a6-461b5d899bdb&1.0.0'
                      category: POLICY
                    - id: 69c2b4947a442bf5c32d6cb9
                      name: Average OM, Simple OM
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#267aabfe-573c-4027-b93f-f627428d2d5e&1.0.0'
                      category: POLICY
                    - id: 69c2b4947a442bf5c32d6cbe
                      name: Dispatch Data OM
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#ec4d478c-5b67-4f96-9467-af8aaba9e382&1.0.0'
                      category: POLICY
                    - id: 69c2b4947a442bf5c32d6cc3
                      name: Lambda Approach 2
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#7cb46d6d-86e2-4c3c-b7a2-98ad30e0b031&1.0.0'
                      category: POLICY
                    - id: 69c2b4947a442bf5c32d6cc8
                      name: Lambda Approach 1
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#63fa3154-e12d-4809-ab4e-d5f4e4a42b47&1.0.0'
                      category: POLICY
                    - id: 69c2b4947a442bf5c32d6ccd
                      name: Simple Adj OM
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#76ee38e8-cfcb-4d87-b5aa-69e3f83ef661&1.0.0'
                      category: POLICY
                    - id: 69c2b4947a442bf5c32d6cd2
                      name: >-
                        Do you have annual aggregated data from the grid on
                        power generation, fuel type and fuel consumption?
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#6039ed67-a1ff-49dd-af60-ae9f89898128&1.0.0'
                      category: POLICY
                    - id: 69c2b4947a442bf5c32d6cd7
                      name: Is the LASL more than one third of the HASL?
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#63f27fe2-b840-40a7-b9c9-7405497aed7f&1.0.0'
                      category: POLICY
                    - id: 69c2b4957a442bf5c32d6cdc
                      name: Are hourly loads of the grid in MW available?
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#d59ab516-2731-44f0-a7bd-7a0c8678acc3&1.0.0'
                      category: POLICY
                    - id: 69c2b4957a442bf5c32d6ce1
                      name: >-
                        Is the average load by LCMR less than the average LASL
                        over three years?
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#8f354fab-04f8-470a-8872-d19645a22120&1.0.0'
                      category: POLICY
                    - id: 69c2b4957a442bf5c32d6ce6
                      name: Is LCMR share less than 50% in recent 5 years?
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#c8c2f95b-e95c-4375-8c84-7dcbca057ccc&1.0.0'
                      category: POLICY
                    - id: 69c2b4957a442bf5c32d6ceb
                      name: Combined Margin
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#99e9128b-daab-4c58-ab10-bc025ee5de5a&1.0.0'
                      category: POLICY
                    - id: 69c2b4957a442bf5c32d6cf0
                      name: Weighted average CM
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#36c4dde5-2940-4d44-9203-0f8b64a7abc9&1.0.0'
                      category: POLICY
                    - id: 69c2b4957a442bf5c32d6cf5
                      name: Simplified CM
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#3e3e976d-bfb7-42d7-b4e7-bf77cbfebe02&1.0.0'
                      category: POLICY
                    - id: 69c2b4957a442bf5c32d6cfa
                      name: Simplified CM for Isolated Grid System
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#18b5b956-0e33-40e9-b7d6-f91c0b3b96da&1.0.0'
                      category: POLICY
                    - id: 69c2b4957a442bf5c32d6cff
                      name: >-
                        For multiple power plants, choose the option that best
                        fits your project
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#4e9cf1f2-0de5-4f1a-b670-7902cb6d0fe0&1.0.0'
                      category: POLICY
                    - id: 69c2b4957a442bf5c32d6d04
                      name: Power Unit
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#29b50d9d-5bae-424c-b5ea-628e9da9b2a7&1.0.0'
                      category: POLICY
                    - id: 69c2b4957a442bf5c32d6d09
                      name: >-
                        Combined Margin. Is grid located in LDC/SIDs/URC or an
                        isolated system.
                      description: ''
                      topicId: 0.0.8360425
                      iri: '#26f3d4d2-f2a4-45c9-9706-9be055ddafc3&1.0.0'
                      category: POLICY
                  id: 69c2d0af34d008dac2664405
                - hash: HPD7E8x2xyqDAXeMaRc9uAG4nMArdxuYSFYVKg9W18x8
                  name: Tool 05
                  description: ''
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  topicId: 0.0.8361167
                  messageId: '1774375293.192012846'
                  tools:
                    - name: Tool 07_modified
                      version: '7'
                      topicId: 0.0.8360425
                      messageId: '1774367941.594676930'
                  config:
                    inputEvents:
                      - name: input_tool_05
                        description: ''
                    outputEvents:
                      - name: output_tool_05
                        description: ''
                    variables:
                      - name: Role
                        description: ''
                        type: Role
                  schemas:
                    - id: 69c2d0b134d008dac266448c
                      name: Tool 05
                      description: ''
                      topicId: 0.0.8361167
                      iri: '#b2c91711-693c-4fd8-aed8-68ff83c0ded6&1.0.0'
                      category: POLICY
                    - id: 69c2d0b134d008dac2664491
                      name: Tool 05 Scenario C
                      description: ''
                      topicId: 0.0.8361167
                      iri: '#86d9d01e-979b-4a38-b860-857d1f26cf9b&1.0.0'
                      category: POLICY
                    - id: 69c2d0b134d008dac2664496
                      name: Tool 05 Scenario B | Generic Approach
                      description: ''
                      topicId: 0.0.8361167
                      iri: '#ab7d5541-fdca-4375-bb40-582f0168b745&1.0.0'
                      category: POLICY
                    - id: 69c2d0b134d008dac266449b
                      name: Tool 05 Power Plants
                      description: ''
                      topicId: 0.0.8361167
                      iri: '#9d4ea98d-981d-4dbf-857f-90f480e2497f&1.0.0'
                      category: POLICY
                    - id: 69c2d0b134d008dac26644a0
                      name: Tool 05 Scenario A
                      description: ''
                      topicId: 0.0.8361167
                      iri: '#1371798f-a1c2-41d7-b660-13383741f8de&1.0.0'
                      category: POLICY
                    - id: 69c2d0b134d008dac26644a5
                      name: Tool 05 Scenario A | Default Value
                      description: ''
                      topicId: 0.0.8361167
                      iri: '#0fcf8e8a-4f24-4c46-948c-76f57e5c548a&1.0.0'
                      category: POLICY
                    - id: 69c2d0b134d008dac26644aa
                      name: Tool 05 Scenario B
                      description: ''
                      topicId: 0.0.8361167
                      iri: '#2a7c2925-6956-4cf6-b3fb-66593bdc496b&1.0.0'
                      category: POLICY
                    - id: 69c2d0b134d008dac26644af
                      name: Generic Approach
                      description: ''
                      topicId: 0.0.8361167
                      iri: '#88920b11-f2c3-45d4-b762-a487076aeb35&1.0.0'
                      category: POLICY
                  id: 69c2d0b134d008dac26644b4
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Return a list of tools.
      tags:
        - tools
  /tools/check/{messageId}:
    get:
      description: >-
        Checks the availability of the tool. Only users with the Standard
        Registry role are allowed to make the request.
      operationId: ToolsApi_checkTool
      parameters:
        - name: messageId
          required: true
          in: path
          description: Tool message ID
          schema:
            example: '1709106946.913157840'
            type: string
      responses:
        '200':
          description: Availability of the tool.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Checks the availability of the tool.
      tags:
        - tools
  /profiles/{username}:
    get:
      description: >-
        Returns account information for the **currently authenticated user**
        (Bearer token). The `username` path segment is **not** used to choose
        whose profile is returned; authorization alone determines the subject.
        Clients often pass their own username in the path for URL compatibility.
        For users with the Standard Registry role the response also includes
        address book and VC document information.
      operationId: ProfileApi_getProfile
      parameters:
        - name: username
          required: true
          in: path
          description: >-
            Present for URL compatibility with existing clients. The server does
            not use this value when resolving the resource—the response is
            always the profile of the user identified by the Bearer token.
          schema:
            example: username
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProfileDTO'
              example:
                username: StandardRegistry
                role: STANDARD_REGISTRY
                permissions:
                  - ACCOUNTS_STANDARD_REGISTRY_READ
                  - DEMO_KEY_CREATE
                  - IPFS_FILE_READ
                  - IPFS_FILE_CREATE
                  - PROFILES_USER_READ
                  - PROFILES_USER_UPDATE
                  - PROFILES_BALANCE_READ
                  - ACCOUNTS_ACCOUNT_READ
                  - ANALYTIC_POLICY_READ
                  - ANALYTIC_MODULE_READ
                  - ANALYTIC_TOOL_READ
                  - ANALYTIC_SCHEMA_READ
                  - ANALYTIC_DOCUMENT_READ
                  - ARTIFACTS_FILE_READ
                  - ARTIFACTS_FILE_CREATE
                  - ARTIFACTS_FILE_DELETE
                  - BRANDING_CONFIG_UPDATE
                  - CONTRACTS_CONTRACT_READ
                  - CONTRACTS_CONTRACT_CREATE
                  - CONTRACTS_CONTRACT_DELETE
                  - CONTRACTS_CONTRACT_MANAGE
                  - CONTRACTS_WIPE_REQUEST_READ
                  - CONTRACTS_WIPE_REQUEST_UPDATE
                  - CONTRACTS_WIPE_REQUEST_DELETE
                  - CONTRACTS_WIPE_REQUEST_REVIEW
                  - CONTRACTS_WIPE_ADMIN_CREATE
                  - CONTRACTS_WIPE_ADMIN_DELETE
                  - CONTRACTS_WIPE_MANAGER_CREATE
                  - CONTRACTS_WIPE_MANAGER_DELETE
                  - CONTRACTS_WIPER_CREATE
                  - CONTRACTS_WIPER_DELETE
                  - CONTRACTS_POOL_READ
                  - CONTRACTS_POOL_UPDATE
                  - CONTRACTS_POOL_DELETE
                  - CONTRACTS_RETIRE_REQUEST_READ
                  - CONTRACTS_RETIRE_REQUEST_CREATE
                  - CONTRACTS_RETIRE_REQUEST_DELETE
                  - CONTRACTS_RETIRE_REQUEST_REVIEW
                  - CONTRACTS_RETIRE_ADMIN_CREATE
                  - CONTRACTS_RETIRE_ADMIN_DELETE
                  - CONTRACTS_PERMISSIONS_READ
                  - CONTRACTS_DOCUMENT_READ
                  - LOG_LOG_READ
                  - MODULES_MODULE_READ
                  - MODULES_MODULE_CREATE
                  - MODULES_MODULE_UPDATE
                  - MODULES_MODULE_DELETE
                  - MODULES_MODULE_REVIEW
                  - POLICIES_POLICY_READ
                  - POLICIES_POLICY_CREATE
                  - POLICIES_POLICY_UPDATE
                  - POLICIES_POLICY_DELETE
                  - POLICIES_POLICY_REVIEW
                  - POLICIES_POLICY_EXECUTE
                  - POLICIES_POLICY_MANAGE
                  - POLICIES_MIGRATION_CREATE
                  - POLICIES_RECORD_ALL
                  - SCHEMAS_SCHEMA_READ
                  - SCHEMAS_SCHEMA_CREATE
                  - SCHEMAS_SCHEMA_UPDATE
                  - SCHEMAS_SCHEMA_DELETE
                  - SCHEMAS_SCHEMA_REVIEW
                  - SCHEMAS_SYSTEM_SCHEMA_READ
                  - SCHEMAS_SYSTEM_SCHEMA_CREATE
                  - SCHEMAS_SYSTEM_SCHEMA_UPDATE
                  - SCHEMAS_SYSTEM_SCHEMA_DELETE
                  - SCHEMAS_SYSTEM_SCHEMA_REVIEW
                  - TOOLS_TOOL_READ
                  - TOOLS_TOOL_CREATE
                  - TOOLS_TOOL_UPDATE
                  - TOOLS_TOOL_DELETE
                  - TOOLS_TOOL_REVIEW
                  - TOOL_MIGRATION_CREATE
                  - TOKENS_TOKEN_READ
                  - TOKENS_TOKEN_CREATE
                  - TOKENS_TOKEN_UPDATE
                  - TOKENS_TOKEN_DELETE
                  - TOKENS_TOKEN_MANAGE
                  - TAGS_TAG_READ
                  - TAGS_TAG_CREATE
                  - PROFILES_RESTORE_ALL
                  - SUGGESTIONS_SUGGESTIONS_READ
                  - SUGGESTIONS_SUGGESTIONS_UPDATE
                  - SETTINGS_SETTINGS_READ
                  - SETTINGS_SETTINGS_UPDATE
                  - SETTINGS_THEME_READ
                  - SETTINGS_THEME_CREATE
                  - SETTINGS_THEME_UPDATE
                  - SETTINGS_THEME_DELETE
                  - PERMISSIONS_ROLE_READ
                  - PERMISSIONS_ROLE_CREATE
                  - PERMISSIONS_ROLE_UPDATE
                  - PERMISSIONS_ROLE_DELETE
                  - PERMISSIONS_ROLE_MANAGE
                  - ACCESS_POLICY_ALL
                  - SCHEMAS_RULE_CREATE
                  - SCHEMAS_RULE_READ
                  - SCHEMAS_RULE_EXECUTE
                  - FORMULAS_FORMULA_CREATE
                  - FORMULAS_FORMULA_READ
                  - WORKER_TASKS_READ
                  - WORKER_TASKS_EXECUTE
                  - WORKER_TASKS_DELETE
                  - POLICIES_EXTERNAL_POLICY_READ
                  - POLICIES_EXTERNAL_POLICY_CREATE
                  - POLICIES_EXTERNAL_POLICY_UPDATE
                  - POLICIES_EXTERNAL_POLICY_DELETE
                  - LOG_LOG_READ
                  - LOG_SYSTEM_READ
                did: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                hederaAccountId: 0.0.6046379
                location: local
                confirmed: true
                failed: false
                topicId: 0.0.8361161
                parentTopicId: 0.0.1960
                didDocument:
                  createDate: '2026-03-24T17:54:47.965Z'
                  updateDate: '2026-03-24T17:55:01.913Z'
                  did: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  document:
                    id: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                    '@context': https://www.w3.org/ns/did/v1
                    verificationMethod:
                      - id: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161#did-root-key
                        type: Ed25519VerificationKey2018
                        controller: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                        publicKeyBase58: >-
                          QDui45JN8tAZyc8aNcgbjKH8DQDzgXYpNGD7wfpeqwSAsm3FJ5TymhXz7japEGMW
                      - id: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161#did-root-key-bbs
                        type: Bls12381G2Key2020
                        controller: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                        publicKeyBase58: >-
                          sneuVgE8ZoiH9kJzG1uAZZ9Rgj1wcfWhJv2DACLzqvdPkVzgWRPKFQ2eZPZRKYoUyoZM44UXViXWQvpWAjaML739EuJXEcsanrKvKsaBUAN5GG3Zx82NP8c2pZd3rBCQnWM
                    authentication:
                      - >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161#did-root-key
                    assertionMethod:
                      - '#did-root-key'
                      - '#did-root-key-bbs'
                  status: CREATE
                  messageId: '1774374900.107419100'
                  topicId: 0.0.8361161
                  verificationMethods:
                    Ed25519VerificationKey2018: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161#did-root-key
                    Bls12381G2Key2020: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161#did-root-key-bbs
                  id: 69c2cfe734d008dac2664379
                vcDocument:
                  createDate: '2026-03-24T17:55:35.698Z'
                  updateDate: '2026-03-24T17:55:48.545Z'
                  hash: 8KKWiMe45XrgPpRsPa9bWJW5sqBNRdzH2ftYgG6TnDia
                  hederaStatus: ISSUE
                  signature: 0
                  type: STANDARD_REGISTRY
                  option:
                    status: NEW
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  topicId: 0.0.8361161
                  messageId: '1774374946.399537000'
                  document:
                    id: urn:uuid:e2b24cbd-f480-4675-8b68-b51fe72aadfd
                    type:
                      - VerifiableCredential
                    issuer: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                    issuanceDate: '2026-03-24T17:55:35.574Z'
                    '@context':
                      - https://www.w3.org/2018/credentials/v1
                      - >-
                        ipfs://bafkreihj7gclc4qgem27tre5je6a3t7tpdrk4li6oamdl6bnflwnoyfs5i
                    credentialSubject:
                      - OrganizationName: OrgName
                        Website: https://test.test
                        Tags: Tag
                        '@context':
                          - >-
                            ipfs://bafkreihj7gclc4qgem27tre5je6a3t7tpdrk4li6oamdl6bnflwnoyfs5i
                        id: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                        type: StandardRegistry
                    proof:
                      type: Ed25519Signature2018
                      created: '2026-03-24T17:55:35Z'
                      verificationMethod: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161#did-root-key
                      proofPurpose: assertionMethod
                      jws: >-
                        eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..TktKeCGVTYDA4qY67dN3Tbpy8ufbElVOcYdgAOsx1f1q50FWlMbqsTStESgDX0F-fmVWuuS_D-WSoGMBMqoLAA
                  documentFileId: 69c2d02434d008dac26643ca
                  tableFileIds: []
                  id: 69c2d01734d008dac26643c3
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Returns the authenticated user's account info.
      tags:
        - profiles
    put:
      description: >-
        Applies to the **currently authenticated user** (Bearer token). The
        `username` path segment is **not** used to choose whose profile is
        updated; authorization alone determines the subject. Clients often pass
        their own username in the path for URL compatibility. Sets Hedera
        credentials and related DID/VC data. For users with the Standard
        Registry role it also creates an address book.
      operationId: ProfileApi_setUserProfile
      parameters:
        - name: username
          required: true
          in: path
          description: >-
            Present for URL compatibility with existing clients. The server does
            not use this value when applying the update—the request always
            targets the user identified by the Bearer token.
          schema:
            example: username
            type: string
      requestBody:
        required: true
        description: >-
          Hedera account, optional DID/VC payloads, and optional Fireblocks
          signing options.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CredentialsDTO'
            examples:
              connectLocalStandardRegistry:
                summary: Local Hedera key + SR VC subject fields
                value:
                  hederaAccountId: 0.0.6059566
                  hederaAccountKey: >-
                    3030020100300706052b8104000a04220420dcfc59e2346b4f0cef1c9f11dee3af6c50be449a08badc55764498787e8a1899
                  vcDocument:
                    OrganizationName: Another Org name
                    Website: https://google.com
                    Tags: AnotherTag
                  didDocument: null
                  useFireblocksSigning: false
                  fireblocksConfig:
                    fireBlocksVaultId: ''
                    fireBlocksAssetId: ''
                    fireBlocksApiKey: ''
                    fireBlocksPrivateiKey: ''
                  didKeys: []
      responses:
        '204':
          description: ''
        '401':
          description: |-
            Unauthorized request.

            Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Sets Hedera credentials for the authenticated user.
      tags:
        - profiles
  /profiles/push/{username}:
    put:
      description: >-
        Applies to the **currently authenticated user** (Bearer token). The
        `username` path segment is **not** used to choose whose profile is
        updated; authorization alone determines the subject. Clients often pass
        their own username in the path for URL compatibility. Starts a
        background task to connect Hedera credentials, publish DID/VC documents
        as required, and for Standard Registry users create an address book.
        Returns immediately with `202 Accepted` and a **task** identifier—use
        the worker-tasks API or your client notifications to track completion or
        errors.
      operationId: ProfileApi_setUserProfileAsync
      parameters:
        - name: username
          required: true
          in: path
          description: >-
            Present for URL compatibility with existing clients. The server does
            not use this value when applying the update—the request always
            targets the user identified by the Bearer token.
          schema:
            example: username
            type: string
      requestBody:
        required: true
        description: >-
          Hedera account, optional DID/VC payloads, and optional Fireblocks
          signing options. Submission is accepted immediately; processing
          happens in the background.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CredentialsDTO'
            examples:
              connectLocalStandardRegistry:
                summary: Local Hedera key + SR VC subject fields
                value:
                  hederaAccountId: 0.0.6059566
                  hederaAccountKey: >-
                    3030020100300706052b8104000a04220420dcfc59e2346b4f0cef1c9f11dee3af6c50be449a08badc55764498787e8a1899
                  vcDocument:
                    OrganizationName: Another Org name
                    Website: https://google.com
                    Tags: AnotherTag
                  didDocument: null
                  useFireblocksSigning: false
                  fireblocksConfig:
                    fireBlocksVaultId: ''
                    fireBlocksAssetId: ''
                    fireBlocksApiKey: ''
                    fireBlocksPrivateiKey: ''
                  didKeys: []
      responses:
        '202':
          description: >-
            Task accepted for asynchronous processing. Poll or subscribe for
            task status.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: 415e6c71-7fc5-4c67-a40d-918ed0202bd4
                expectation: 9
                action: Connect user
                userId: 69c2cfc621d39e7b6d15e23f
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Sets Hedera credentials asynchronously for the authenticated user.
      tags:
        - profiles
  /profiles/{username}/balance:
    get:
      description: Requests Hedera account balance.
      operationId: ProfileApi_getUserBalance
      parameters:
        - name: username
          required: true
          in: path
          description: The name of the user for whom to fetch the balance.
          schema:
            example: username
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: string
                example: 833.88244301 ℏ
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Invalid Account
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Returns user's Hedera account balance.
      tags:
        - profiles
  /profiles/restore/{username}:
    put:
      description: >-
        Applies to the **currently authenticated user** (Bearer token). The
        `username` path segment is **not** used to choose whose data is
        restored; authorization alone determines the subject. Clients often pass
        their own username in the path for URL compatibility. Starts a
        background task to restore user data (policy, DID documents, VC
        documents). Returns immediately with `202 Accepted` and a **task**
        identifier.
      operationId: ProfileApi_restoreUserProfile
      parameters:
        - name: username
          required: true
          in: path
          description: >-
            Present for URL compatibility with existing clients. The server does
            not use this value when applying the update—the request always
            targets the user identified by the Bearer token.
          schema:
            example: username
            type: string
      requestBody:
        required: true
        description: Object that contains the Hedera account data.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CredentialsDTO'
            examples:
              restoreUserProfile:
                summary: >-
                  Topic and Hedera credentials (`didDocument` may be null;
                  `didKeys` may be empty)
                value:
                  topicId: 0.0.8310503
                  hederaAccountId: 0.0.6057669
                  hederaAccountKey: >-
                    302e020100300506032b657004220420efb6030ba3c022d16b6828a7cf826c88b1578bcf9d69fbcc4a548f5292b6068f
                  didDocument: null
                  didKeys: []
              restoreUserProfileWithDid:
                summary: Topic, Hedera credentials, full DID document, and didKeys
                value:
                  topicId: 0.0.7813042
                  hederaAccountId: 0.0.6057669
                  hederaAccountKey: >-
                    302e020100300506032b657004220420efb6030ba3c022d16b6828a7cf826c88b1578bcf9d69fbcc4a548f5292b6068f
                  didDocument:
                    id: >-
                      did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734
                    '@context': https://www.w3.org/ns/did/v1
                    verificationMethod:
                      - id: >-
                          did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key
                        type: Ed25519VerificationKey2018
                        controller: >-
                          did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734
                        publicKeyBase58: 2vKLgbwo1DoxTebvSzmz1mk1H4tJTX3FaUt4RUFPCZ6p
                      - id: >-
                          did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key-bbs
                        type: Bls12381G2Key2020
                        controller: >-
                          did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734
                        publicKeyBase58: >-
                          24LRAHd2Dc7d2qziS9D6hXHFmc5uir2TDzowcxzprCd24ynNBjz5NP1kcpGoFbHdRLZo69ZvwdcsjNGSxEyDyCpgqe2Z1ihL8Ysy8Z9KA6wJmBUjEmTYdNNMur8mxgmapoq6
                    authentication:
                      - >-
                        did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key
                    assertionMethod:
                      - '#did-root-key'
                      - '#did-root-key-bbs'
                  didKeys:
                    - id: >-
                        did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key
                      key: >-
                        4RE1RukTJFzz2JV3ccio6yupN1PEq7JD7hVEsViFDigkgj8ZdUdmjJKsq2evxM9NusXvYcPJA9bu5szma3917Q24
                    - id: >-
                        did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key-bbs
                      key: 38Rcnwc8Gw62MQYDjSHVovEuHCgXDq8WmnoxozJyzFHj
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: de64235b-939b-47e5-99ed-2dbf7c4a3e61
                expectation: 2
                action: Restore user profile
                userId: 69c3a5b08c0ae8a3b1083e95
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Restore user data (policy, DID documents, VC documents).
      tags:
        - profiles
  /profiles/restore/topics/{username}:
    put:
      description: >-
        Applies to the **currently authenticated user** (Bearer token). The
        `username` path segment is **not** used to choose whose recovery topics
        are listed; authorization alone determines the subject. Clients often
        pass their own username in the path for URL compatibility. Starts a
        background task to list available recovery topics. Returns immediately
        with `202 Accepted` and a **task** identifier.
      operationId: ProfileApi_restoreTopic
      parameters:
        - name: username
          required: true
          in: path
          description: >-
            Present for URL compatibility with existing clients. The server does
            not use this value when applying the update—the request always
            targets the user identified by the Bearer token.
          schema:
            example: username
            type: string
      requestBody:
        required: true
        description: Object that contains the Hedera account data.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CredentialsDTO'
            examples:
              restoreTopics:
                summary: Hedera credentials (didDocument may be null)
                value:
                  hederaAccountId: 0.0.6057669
                  hederaAccountKey: >-
                    302e020100300506032b657004220420efb6030ba3c022d16b6828a7cf826c88b1578bcf9d69fbcc4a548f5292b6068f
                  didDocument: null
              restoreTopicsWithDid:
                summary: Hedera credentials with full DID document
                value:
                  hederaAccountId: 0.0.6057669
                  hederaAccountKey: >-
                    302e020100300506032b657004220420efb6030ba3c022d16b6828a7cf826c88b1578bcf9d69fbcc4a548f5292b6068f
                  didDocument:
                    id: >-
                      did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734
                    '@context': https://www.w3.org/ns/did/v1
                    verificationMethod:
                      - id: >-
                          did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key
                        type: Ed25519VerificationKey2018
                        controller: >-
                          did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734
                        publicKeyBase58: 2vKLgbwo1DoxTebvSzmz1mk1H4tJTX3FaUt4RUFPCZ6p
                      - id: >-
                          did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key-bbs
                        type: Bls12381G2Key2020
                        controller: >-
                          did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734
                        publicKeyBase58: >-
                          24LRAHd2Dc7d2qziS9D6hXHFmc5uir2TDzowcxzprCd24ynNBjz5NP1kcpGoFbHdRLZo69ZvwdcsjNGSxEyDyCpgqe2Z1ihL8Ysy8Z9KA6wJmBUjEmTYdNNMur8mxgmapoq6
                    authentication:
                      - >-
                        did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key
                    assertionMethod:
                      - '#did-root-key'
                      - '#did-root-key-bbs'
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: b34f028a-16b5-4f5e-a75f-17c3da89bb7d
                expectation: 2
                action: Get user topics
                userId: 69c3a5b08c0ae8a3b1083e95
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: List of available recovery topics.
      tags:
        - profiles
  /profiles/did-document/validate:
    post:
      description: >-
        Checks the DID document and returns whether required Hedera verification
        methods (Ed25519 + BLS) are present. Response includes `keys` grouped by
        verification method type.
      operationId: ProfileApi_validateDidDocument
      parameters: []
      requestBody:
        required: true
        description: DID Document.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DidDocumentDTO'
            examples:
              validDidDocument:
                summary: Valid verification method types
                value:
                  id: >-
                    did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734
                  '@context': https://www.w3.org/ns/did/v1
                  verificationMethod:
                    - id: >-
                        did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key
                      type: Ed25519VerificationKey2018
                      controller: >-
                        did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734
                      publicKeyBase58: 2vKLgbwo1DoxTebvSzmz1mk1H4tJTX3FaUt4RUFPCZ6p
                    - id: >-
                        did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key-bbs
                      type: Bls12381G2Key2020
                      controller: >-
                        did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734
                      publicKeyBase58: >-
                        24LRAHd2Dc7d2qziS9D6hXHFmc5uir2TDzowcxzprCd24ynNBjz5NP1kcpGoFbHdRLZo69ZvwdcsjNGSxEyDyCpgqe2Z1ihL8Ysy8Z9KA6wJmBUjEmTYdNNMur8mxgmapoq6
                  authentication:
                    - >-
                      did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key
                  assertionMethod:
                    - '#did-root-key'
                    - '#did-root-key-bbs'
              invalidDidDocument:
                summary: Invalid type (e.g. wrong `verificationMethod[].type`)
                value:
                  id: >-
                    did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734
                  '@context': https://www.w3.org/ns/did/v1
                  verificationMethod:
                    - id: >-
                        did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key
                      type: noType
                      controller: >-
                        did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734
                      publicKeyBase58: 2vKLgbwo1DoxTebvSzmz1mk1H4tJTX3FaUt4RUFPCZ6p
                    - id: >-
                        did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key-bbs
                      type: Bls12381G2Key2020
                      controller: >-
                        did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734
                      publicKeyBase58: >-
                        24LRAHd2Dc7d2qziS9D6hXHFmc5uir2TDzowcxzprCd24ynNBjz5NP1kcpGoFbHdRLZo69ZvwdcsjNGSxEyDyCpgqe2Z1ihL8Ysy8Z9KA6wJmBUjEmTYdNNMur8mxgmapoq6
                  authentication:
                    - >-
                      did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key
                  assertionMethod:
                    - '#did-root-key'
                    - '#did-root-key-bbs'
      responses:
        '200':
          description: >-
            HTTP 200 for both valid and invalid documents; inspect `valid` and
            `error`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DidDocumentStatusDTO'
              examples:
                valid:
                  summary: DID document passes validation
                  value:
                    valid: true
                    error: ''
                    keys:
                      Ed25519VerificationKey2018:
                        - name: '#did-root-key'
                          id: >-
                            did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key
                      Bls12381G2Key2020:
                        - name: '#did-root-key-bbs'
                          id: >-
                            did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key-bbs
                invalid:
                  summary: Validation failed (e.g. required method type missing)
                  value:
                    valid: false
                    error: Ed25519VerificationKey2018 method not found.
                    keys:
                      Ed25519VerificationKey2018: []
                      Bls12381G2Key2020:
                        - name: '#did-root-key-bbs'
                          id: >-
                            did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key-bbs
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Body is empty
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Validate DID document format.
      tags:
        - profiles
  /profiles/did-keys/validate:
    post:
      description: >-
        For each entry in `keys`, checks that `id` matches a verification method
        in `document` and that `key` validates against it. Returns the same
        array with a `valid` flag per entry (HTTP 200 even when some keys fail).
      operationId: ProfileApi_validateDidKeys
      parameters: []
      requestBody:
        required: true
        description: >-
          DID document plus `keys`: `{ id, key }` where `id` is the full
          verification method id.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DidDocumentWithKeyDTO'
            examples:
              invalidKeys:
                summary: Placeholder keys (validation fails)
                value:
                  document:
                    id: >-
                      did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734
                    '@context': https://www.w3.org/ns/did/v1
                    verificationMethod:
                      - id: >-
                          did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key
                        type: Ed25519VerificationKey2018
                        controller: >-
                          did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734
                        publicKeyBase58: 2vKLgbwo1DoxTebvSzmz1mk1H4tJTX3FaUt4RUFPCZ6p
                      - id: >-
                          did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key-bbs
                        type: Bls12381G2Key2020
                        controller: >-
                          did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734
                        publicKeyBase58: >-
                          24LRAHd2Dc7d2qziS9D6hXHFmc5uir2TDzowcxzprCd24ynNBjz5NP1kcpGoFbHdRLZo69ZvwdcsjNGSxEyDyCpgqe2Z1ihL8Ysy8Z9KA6wJmBUjEmTYdNNMur8mxgmapoq6
                    authentication:
                      - >-
                        did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key
                    assertionMethod:
                      - '#did-root-key'
                      - '#did-root-key-bbs'
                  keys:
                    - id: >-
                        did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key
                      key: '1'
                    - id: >-
                        did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key-bbs
                      key: '1'
              validKeys:
                summary: Private keys matching verification methods
                value:
                  document:
                    id: >-
                      did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734
                    '@context': https://www.w3.org/ns/did/v1
                    verificationMethod:
                      - id: >-
                          did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key
                        type: Ed25519VerificationKey2018
                        controller: >-
                          did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734
                        publicKeyBase58: 2vKLgbwo1DoxTebvSzmz1mk1H4tJTX3FaUt4RUFPCZ6p
                      - id: >-
                          did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key-bbs
                        type: Bls12381G2Key2020
                        controller: >-
                          did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734
                        publicKeyBase58: >-
                          24LRAHd2Dc7d2qziS9D6hXHFmc5uir2TDzowcxzprCd24ynNBjz5NP1kcpGoFbHdRLZo69ZvwdcsjNGSxEyDyCpgqe2Z1ihL8Ysy8Z9KA6wJmBUjEmTYdNNMur8mxgmapoq6
                    authentication:
                      - >-
                        did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key
                    assertionMethod:
                      - '#did-root-key'
                      - '#did-root-key-bbs'
                  keys:
                    - id: >-
                        did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key
                      key: >-
                        4RE1RukTJFzz2JV3ccio6yupN1PEq7JD7hVEsViFDigkgj8ZdUdmjJKsq2evxM9NusXvYcPJA9bu5szma3917Q24
                    - id: >-
                        did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key-bbs
                      key: 38Rcnwc8Gw62MQYDjSHVovEuHCgXDq8WmnoxozJyzFHj
      responses:
        '200':
          description: Array of results in the same order as request `keys`.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DidKeyStatusDTO'
              examples:
                invalidKeys:
                  summary: 'Placeholder keys — `valid: false`'
                  value:
                    - id: >-
                        did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key
                      key: '1'
                      valid: false
                    - id: >-
                        did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key-bbs
                      key: '1'
                      valid: false
                validKeys:
                  summary: 'Matching keys — `valid: true`'
                  value:
                    - id: >-
                        did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key
                      key: >-
                        4RE1RukTJFzz2JV3ccio6yupN1PEq7JD7hVEsViFDigkgj8ZdUdmjJKsq2evxM9NusXvYcPJA9bu5szma3917Q24
                      valid: true
                    - id: >-
                        did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.3578734#did-root-key-bbs
                      key: 38Rcnwc8Gw62MQYDjSHVovEuHCgXDq8WmnoxozJyzFHj
                      valid: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Document is empty
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Validate DID document keys.
      tags:
        - profiles
  /profiles/keys:
    get:
      description: Returns the list of existing keys.
      operationId: ProfileApi_getPolicyLabels
      parameters:
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PolicyKeyDTO'
              example:
                - createDate: '2026-03-25T08:38:23.528Z'
                  updateDate: '2026-03-25T08:38:23.528Z'
                  messageId: '1774427068.001165000'
                  owner: >-
                    did:hedera:testnet:BftZd6RVk1D5yXC64g25b9TmhAvNLwki271mWgDAu7yW_0.0.8361161
                  policyName: CDM AMS-III.AR Policy
                  id: 69c39eff462c9c1141de2f7d
                - createDate: '2026-03-25T08:38:15.920Z'
                  updateDate: '2026-03-25T08:38:15.920Z'
                  messageId: '1774427841.463316056'
                  owner: >-
                    did:hedera:testnet:BftZd6RVk1D5yXC64g25b9TmhAvNLwki271mWgDAu7yW_0.0.8361161
                  policyName: CDM AMS-II.J Policy
                  id: 69c39ef7462c9c1141de2f7c
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Returns the list of existing keys.
      tags:
        - profiles
    post:
      description: >-
        Registers a **policy message key** for the authenticated user's DID.
        **Generate:** send only `messageId`—the server creates a private key for
        that policy. The owner can copy the `messageId` and returned `key` from
        the response and pass them **out of band** to another person.
        **Import:** the recipient calls this endpoint with the same `messageId`
        plus the DER-encoded private `key` they received, so their account can
        use the policy like the original owner.
      operationId: ProfileApi_generateKey
      parameters: []
      requestBody:
        required: true
        description: >-
          `messageId` is always the policy **message id**. `key` is optional:
          omit it to **generate** a new key; provide it to **import** a key that
          was shared with you.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyKeyConfigDTO'
            examples:
              generateKeyForPolicy:
                summary: Generate key for a policy message
                description: >-
                  Only `messageId` is sent; the server generates the private
                  key. Use this to obtain a key for a specific policy, then
                  share `messageId` and the private `key` from the response with
                  another user manually.
                value:
                  messageId: '1769689879.382295507'
              remoteUserImport:
                summary: Import key (remote user)
                description: >-
                  The **remote user** sends the same `messageId` and the DER
                  private `key` they received out of band so this profile can
                  use that policy.
                value:
                  messageId: '1769689879.382295507'
                  key: >-
                    302e020100300506032b6570042204200c05a906fc9f560901032fd8781d49811a82eb855baa6143f8bdb5976d0f9273
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyKeyDTO'
              example:
                createDate: '2026-03-25T07:53:00.554Z'
                updateDate: '2026-03-25T07:53:00.554Z'
                messageId: '1769689879.382295507'
                owner: >-
                  did:hedera:testnet:BftZd6RVk1D5yXC64g25b9TmhAvNLwki271mWgDAu7yW_0.0.8361161
                id: 69c3945c462c9c1141de2e06
                key: >-
                  302e020100300506032b6570042204201f7147c259331152b8f8b4772029af8cfe60385db3c5a1c1cdb8dc9bd6810a6a
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Message ID is empty
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Create or import a policy signing key.
      tags:
        - profiles
  /profiles/keys/{id}:
    delete:
      description: Deletes the key with the specified ID.
      operationId: ProfileApi_deleteKey
      parameters:
        - name: id
          required: true
          in: path
          description: Key Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Invalid id
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Deletes the key.
      tags:
        - profiles
  /policies:
    get:
      description: >-
        Returns all policies. Add Api-Version: 2 header to use status filter.
        Each item may include userGroups (all group rows for this user on that
        policy, including inactive) and userGroup (the last active group in
        server order—handy for UI labels, e.g. groupLabel or uuid). Typically,
        for Standard Registry on dry-run policies, userRole and userGroup
        reflect the last active role (often a virtual user), and userGroups
        contains the group rows for that role; when the last active role is
        Administrator, userGroups is []. For regular users, userGroups usually
        show roles on published policies.
      operationId: PolicyApi_getPoliciesV2_2
      parameters:
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
        - name: type
          required: false
          in: query
          description: Policy type
          schema:
            example: local
            type: string
        - name: status
          required: false
          in: query
          explode: false
          description: >-
            Policy status. Multiple values are passed as a comma-separated list.
            In Swagger UI, select several values from the list by holding Ctrl
            (Windows/Linux) or Command (macOS).
          schema:
            type: array
            items:
              type: string
              enum:
                - DRY-RUN
                - DRAFT
                - PUBLISH_ERROR
                - PUBLISH
                - DISCONTINUED
                - DEMO
                - VIEW
        - name: Api-Version
          in: header
          description: Use "2" for this endpoint (supports status filter).
          required: true
          schema:
            type: string
            example: '2'
      responses:
        '200':
          description: >-
            Successful operation. Two examples: regular user (userGroups usually
            reflect roles on published policies) and Standard Registry (dry-run:
            last active role and its userGroups; Administrator has userGroups
            []). Other combinations are possible depending on policy state and
            assignments.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PolicyDTO'
              examples:
                user:
                  summary: >-
                    Regular user — userGroups usually show roles on published
                    policies
                  value:
                    - uuid: b7e7d5ff-2675-4018-ac08-47609bc5a437
                      name: Verra VM0007 Policy
                      version: '1'
                      description: REDD+ Methodology Framework
                      status: PUBLISH
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                      topicId: 0.0.8381081
                      instanceTopicId: 0.0.8381318
                      messageId: '1774508369.453794000'
                      availability: private
                      userRoles:
                        - Project_Proponent
                      userGroups:
                        - uuid: d5c3ff1e-7e83-4ed9-a122-839c5843707d
                          role: VVB(manager)
                          groupName: VVBs
                          groupLabel: ''
                          active: false
                          id: 69c4d9881e6768b3a86de534
                        - uuid: 923b88ff-8ee8-429f-b32a-0a8799e6954e
                          role: Project_Proponent
                          groupName: Project_Proponent
                          groupLabel: ''
                          active: false
                          id: 69c4da1f1e6768b3a86de558
                        - uuid: 65347d9b-391e-4d2d-8758-039e3fd42490
                          role: Project_Proponent
                          groupName: Project_Proponent
                          groupLabel: AnotherProponent
                          active: true
                          id: 69c4da671e6768b3a86de55e
                      userRole: Project_Proponent
                      userGroup:
                        uuid: 65347d9b-391e-4d2d-8758-039e3fd42490
                        role: Project_Proponent
                        groupName: Project_Proponent
                        groupLabel: AnotherProponent
                        active: true
                        id: 69c4da671e6768b3a86de55e
                      tests: []
                      id: 69c4d51ac4f45966decb4710
                    - uuid: 1e95fab1-7b3e-4692-a16c-d977032be0d1
                      name: CDM AMS-III.AR Policy
                      version: '1'
                      description: >-
                        Substituting fossil fuel-based lighting with LED/CFL
                        lighting systems
                      status: PUBLISH
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                      topicId: 0.0.8366207
                      instanceTopicId: 0.0.8366841
                      messageId: '1774427068.001165000'
                      availability: private
                      userRoles:
                        - VVB
                      userGroups:
                        - uuid: 5ff7e8cc-d399-48be-ae4c-0c90e240d1d6
                          role: VVB
                          groupName: VVB
                          groupLabel: null
                          active: true
                          id: 69c4d3e0340a8cb2868e3095
                      userRole: VVB
                      userGroup:
                        uuid: 5ff7e8cc-d399-48be-ae4c-0c90e240d1d6
                        role: VVB
                        groupName: VVB
                        groupLabel: null
                        active: true
                        id: 69c4d3e0340a8cb2868e3095
                      tests: []
                      id: 69c38f81462c9c1141de2df2
                standardRegistry:
                  summary: >-
                    Standard Registry — userGroups usually show roles of virtual
                    users on dry-run policies
                  value:
                    - uuid: 9b4a5fb8-7775-4aac-8d88-8876d3ab3fc5
                      name: VM0042
                      version: Dry Run
                      description: ''
                      status: DRY-RUN
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                      topicId: 0.0.8381520
                      instanceTopicId: 0.0.1774509251971
                      availability: private
                      userRoles:
                        - Project Proponent
                      userGroups:
                        - uuid: 192d89a6-0ed8-4ebe-aa30-52c07df105ea
                          active: true
                          role: Project Proponent
                          groupName: Project Proponent
                          groupLabel: null
                          id: 69c636fd7f98ec7068519d67
                      userRole: Project Proponent
                      userGroup:
                        uuid: 192d89a6-0ed8-4ebe-aa30-52c07df105ea
                        active: true
                        role: Project Proponent
                        groupName: Project Proponent
                        groupLabel: null
                        id: 69c636fd7f98ec7068519d67
                      tests: []
                      id: 69c4dc82c4f45966decb4cdd
                    - uuid: b7e7d5ff-2675-4018-ac08-47609bc5a437
                      name: Verra VM0007 Policy
                      version: '1'
                      description: REDD+ Methodology Framework
                      status: PUBLISH
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                      topicId: 0.0.8381081
                      instanceTopicId: 0.0.8381318
                      messageId: '1774508369.453794000'
                      availability: private
                      userRoles:
                        - Administrator
                      userGroups: []
                      userRole: Administrator
                      userGroup: null
                      tests: []
                      id: 69c4d51ac4f45966decb4710
                    - uuid: 1e95fab1-7b3e-4692-a16c-d977032be0d1
                      name: CDM AMS-III.AR Policy
                      version: '1'
                      description: >-
                        Substituting fossil fuel-based lighting with LED/CFL
                        lighting systems
                      status: PUBLISH
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                      topicId: 0.0.8366207
                      instanceTopicId: 0.0.8366841
                      messageId: '1774427068.001165000'
                      availability: private
                      userRoles:
                        - Administrator
                      userGroups: []
                      userRole: Administrator
                      userGroup: null
                      tests: []
                      id: 69c38f81462c9c1141de2df2
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Return a list of all policies.
      tags:
        - policies
    post:
      description: >-
        Creates a new policy. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: PolicyApi_createPolicy
      parameters: []
      requestBody:
        required: true
        description: >-
          Policy configuration (methodology fields, category ids, etc.). Server
          fills ids, roles, tools, and other persisted fields.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyDTO'
            examples:
              create:
                summary: New policy
                value:
                  name: New policy
                  applicabilityConditions: ''
                  detailsUrl: ''
                  typicalProjects: ''
                  topicDescription: ''
                  description: Policy description
                  categories:
                    - 69c2cfc534d008dac266432c
                    - 69c2cfc534d008dac2664316
                    - ''
                  importantParameters:
                    atValidation: ''
                    monitored: ''
      responses:
        '201':
          description: >-
            Successful operation. Returns the full policy list (same as GET
            /policies) after creation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PolicyDTO'
              example:
                - createDate: '2026-03-26T08:00:30.081Z'
                  uuid: 8fe6f490-a978-4eb0-9d81-772dc62ae970
                  name: New policy
                  description: Policy description
                  status: DRAFT
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  topicId: 0.0.8381928
                  codeVersion: 1.5.1
                  tools: []
                  userRoles:
                    - Administrator
                  userGroups: []
                  userRole: Administrator
                  userGroup: null
                  tests: []
                  id: 69c4e782c4f45966decb5091
                - createDate: '2026-03-26T07:13:06.988Z'
                  uuid: 9b4a5fb8-7775-4aac-8d88-8876d3ab3fc5
                  name: VM0042
                  version: Dry Run
                  description: ''
                  status: DRY-RUN
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  policyRoles:
                    - Project Proponent
                    - VVB
                  policyGroups: []
                  topicId: 0.0.8381520
                  instanceTopicId: 0.0.1774509251971
                  policyTag: Tag_1774509146169
                  codeVersion: 1.5.1
                  tools:
                    - name: AR-AM Tool 04
                      version: null
                      topicId: 0.0.5664329
                      messageId: '1741365085.279118931'
                    - name: Tool 24
                      version: null
                      topicId: 0.0.5703543
                      messageId: '1741724529.286080000'
                    - name: AR Tool 14
                      version: null
                      topicId: 0.0.5738458
                      messageId: '1742305279.639972851'
                  userRoles:
                    - Administrator
                  userGroups: []
                  userRole: Administrator
                  userGroup: null
                  tests: []
                  id: 69c4dc82c4f45966decb4cdd
                - createDate: '2026-03-26T06:41:30.240Z'
                  uuid: b7e7d5ff-2675-4018-ac08-47609bc5a437
                  name: Verra VM0007 Policy
                  version: '1'
                  description: REDD+ Methodology Framework
                  status: PUBLISH
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  policyRoles:
                    - Project_Proponent
                    - VVB
                    - VVB(manager)
                  policyGroups:
                    - name: VVBs
                      creator: VVB(manager)
                      members:
                        - VVB
                      groupRelationshipType: Multiple
                      groupAccessType: Private
                    - name: Project_Proponent
                      creator: Project_Proponent
                      members:
                        - Project_Proponent
                      groupRelationshipType: Single
                      groupAccessType: Private
                  topicId: 0.0.8381081
                  instanceTopicId: 0.0.8381318
                  policyTag: Tag_1774507267355
                  messageId: '1774508369.453794000'
                  codeVersion: 1.5.1
                  tools: []
                  userRoles:
                    - Administrator
                  userGroups: []
                  userRole: Administrator
                  userGroup: null
                  tests: []
                  id: 69c4d51ac4f45966decb4710
                - createDate: '2026-03-25T08:34:23.327Z'
                  uuid: 42d2531a-d2e0-44fe-8601-057633c1b9bd
                  name: CDM AMS-II.J Policy
                  version: '2'
                  description: Demand-Side Activities for Efficient Lighting Technologies
                  status: PUBLISH
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  policyRoles:
                    - Project Participant
                    - VVB
                  policyGroups: []
                  topicId: 0.0.8366933
                  instanceTopicId: 0.0.8366950
                  policyTag: Tag_1774427637162
                  messageId: '1774427841.463316056'
                  codeVersion: 1.5.1
                  tools:
                    - name: Tool 07
                      version: null
                      topicId: 0.0.2175383
                      messageId: '1706867530.884259218'
                  userRoles:
                    - Administrator
                  userGroups: []
                  userRole: Administrator
                  userGroup: null
                  tests: []
                  id: 69c39e0f462c9c1141de2f0b
                - createDate: '2026-03-25T07:32:17.567Z'
                  uuid: 1e95fab1-7b3e-4692-a16c-d977032be0d1
                  name: CDM AMS-III.AR Policy
                  version: '1'
                  description: >-
                    Substituting fossil fuel-based lighting with LED/CFL
                    lighting systems
                  status: PUBLISH
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                  policyRoles:
                    - Project Participant
                    - VVB
                  policyGroups: []
                  topicId: 0.0.8366207
                  instanceTopicId: 0.0.8366841
                  policyTag: Tag_1774423895959
                  messageId: '1774427068.001165000'
                  codeVersion: 1.5.1
                  tools:
                    - name: Tool 33
                      version: null
                      topicId: 0.0.4865949
                      messageId: '1726593517.484578000'
                    - name: Tool 19
                      version: null
                      topicId: 0.0.2196124
                      messageId: '1706869798.177938003'
                    - name: Tool 21
                      version: null
                      topicId: 0.0.2203279
                      messageId: '1706873385.455822873'
                    - name: Tool 07
                      version: null
                      topicId: 0.0.2175383
                      messageId: '1706867530.884259218'
                  userRoles:
                    - Administrator
                  userGroups: []
                  userRole: Administrator
                  userGroup: null
                  tests: []
                  id: 69c38f81462c9c1141de2df2
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Creates a new policy.
      tags:
        - policies
  /policies/with-imported-records/{policyId}:
    get:
      description: >-
        Returns policies that have a records topic (draft/dry-run/demo/view),
        **excluding** the policy identified by `policyId`. There is **no request
        body**—only the path segment. The path value is used to omit that policy
        from the result (e.g. the record-import dialog so “another policy” does
        not include the one you are open on).
      operationId: PolicyApi_getPoliciesWithImportedRecords
      parameters:
        - name: policyId
          required: true
          in: path
          description: >-
            Policy id to **exclude** from the returned list. Pass the current
            policy id from the client context; the server uses this value only
            for that exclusion filter.
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BasePolicyDTO'
              example:
                - id: f3b2a9c1e4d5678901234567
                  name: Policy name
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: >-
        Return a list of all policies with imported records (excluding one
        policy).
      tags:
        - policies
  /policies/migrate-data:
    post:
      description: >-
        Migrate policy data. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: PolicyApi_migrateData
      parameters: []
      requestBody:
        required: true
        description: Migration config.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MigrationConfigDTO'
            examples:
              migrationConfig:
                summary: Typical migration (sync)
                value:
                  policies:
                    src: 69c63ecb2737af139ce96bf1
                    dst: 69c642562737af139ce96e7c
                  vcs:
                    - 69c63f5634e3e2878e651c4f
                    - 69c63f6a34e3e2878e651c62
                    - 69c63fe534e3e2878e651c71
                    - 69c63ff834e3e2878e651c7d
                    - 69c6402a34e3e2878e651c8a
                    - 69c6403d34e3e2878e651c96
                    - 69c6404c34e3e2878e651ca1
                  vps:
                    - 69c6405934e3e2878e651ca6
                  schemas:
                    '#a63f77de-b9ca-46c7-aa4c-fe8ef89fe50a&1.0.0': '#8e8198b8-86ae-477c-a996-f7fa1e229614&1.0.0'
                    '#a0f1bcdd-911d-496d-958f-01b55e01ea3b&1.0.0': '#f9fbc33a-b91f-4b9a-9ab7-9dc2ece4a756&1.0.0'
                    '#c6832572-8a62-4da0-ae0b-7f8b7abb47d4&1.0.0': '#6046253d-b414-4ea1-8d5a-c883a02e4e15&1.0.0'
                  groups: {}
                  roles:
                    Registrant: Registrant
                  migrateState: true
                  editedVCs: {}
                  blocks:
                    9fd3f431-d96f-459e-b1fa-af74d50b88f2: ebe327ef-1eda-4266-9100-04bcf7b741ba
                    f876c7cc-5e8a-4a47-a2da-3ef4c99ed8d9: 3a82b6fc-c141-46cb-9ce4-b413a278e707
                    ca500f4d-104c-4440-920a-c4c942149971: 22d8d663-0179-48f9-9375-a7f095b5959b
                    9fcb7585-8422-48ef-acea-faeed5b0c931: b6faca4f-2220-4665-a1ef-a649d5598cbf
                    a7c2402b-c0ab-47db-82f3-a18f87852194: d28ec286-9e18-4c21-abe4-ca8713f83639
                    5c9ece32-4c10-443a-beaa-cd5e2c1cfefe: 83bfc30f-a2e1-475f-9124-fdafd2a8445f
                    138c7d6a-3b08-43a3-b741-c2d0dd635573: 35e8eb6b-fcd1-4a0f-881d-dc8f0df6c0c0
                    34aed736-c0b2-40b7-8aa5-69b1478c86e8: c6c02969-624b-4a23-a929-a27d43d6923a
                    b7d6aad4-23a9-4f5b-8037-a0e9475abf05: e8fa9426-a33c-41aa-b8c3-20c40d51d246
                    51fdfac6-86b6-41f9-a613-ac5868e214d7: 1c9baf00-8410-4a7b-a5ef-d39a86a03773
                  tokens: {}
                  tokensMap:
                    0.0.8393265: 0.0.8393387
                  migrateRetirePools: true
                  retireContractId: ''
      responses:
        '200':
          description: >-
            Array of migration issues per document. Empty array when migration
            completed without per-document errors. Each item includes id and
            message (e.g. JSON_SCHEMA_VALIDATION_ERROR).
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      description: Document or entity id related to the error
                    message:
                      type: string
                      description: Error message
              examples:
                noErrors:
                  summary: No per-document errors
                  value: []
                validationErrors:
                  summary: JSON schema validation errors
                  value:
                    - id: 69c5075ffdec38062c93a27b
                      message: 'Error: JSON_SCHEMA_VALIDATION_ERROR'
                    - id: 69c5078afdec38062c93a287
                      message: 'Error: JSON_SCHEMA_VALIDATION_ERROR'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Migrate policy data.
      tags:
        - policies
  /policies/push/migrate-data:
    post:
      description: >-
        Migrate policy data asynchronous. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: PolicyApi_migrateDataAsync
      parameters: []
      requestBody:
        required: true
        description: Migration configuration.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MigrationConfigDTO'
            examples:
              migrationConfig:
                summary: Typical migration (async)
                value:
                  policies:
                    src: 69c63ecb2737af139ce96bf1
                    dst: 69c642562737af139ce96e7c
                  vcs:
                    - 69c63f5634e3e2878e651c4f
                    - 69c63f6a34e3e2878e651c62
                    - 69c63fe534e3e2878e651c71
                    - 69c63ff834e3e2878e651c7d
                    - 69c6402a34e3e2878e651c8a
                    - 69c6403d34e3e2878e651c96
                    - 69c6404c34e3e2878e651ca1
                  vps:
                    - 69c6405934e3e2878e651ca6
                  schemas:
                    '#a63f77de-b9ca-46c7-aa4c-fe8ef89fe50a&1.0.0': '#8e8198b8-86ae-477c-a996-f7fa1e229614&1.0.0'
                    '#a0f1bcdd-911d-496d-958f-01b55e01ea3b&1.0.0': '#f9fbc33a-b91f-4b9a-9ab7-9dc2ece4a756&1.0.0'
                    '#c6832572-8a62-4da0-ae0b-7f8b7abb47d4&1.0.0': '#6046253d-b414-4ea1-8d5a-c883a02e4e15&1.0.0'
                  groups: {}
                  roles:
                    Registrant: Registrant
                  migrateState: true
                  editedVCs: {}
                  blocks:
                    9fd3f431-d96f-459e-b1fa-af74d50b88f2: ebe327ef-1eda-4266-9100-04bcf7b741ba
                    f876c7cc-5e8a-4a47-a2da-3ef4c99ed8d9: 3a82b6fc-c141-46cb-9ce4-b413a278e707
                    ca500f4d-104c-4440-920a-c4c942149971: 22d8d663-0179-48f9-9375-a7f095b5959b
                    9fcb7585-8422-48ef-acea-faeed5b0c931: b6faca4f-2220-4665-a1ef-a649d5598cbf
                    a7c2402b-c0ab-47db-82f3-a18f87852194: d28ec286-9e18-4c21-abe4-ca8713f83639
                    5c9ece32-4c10-443a-beaa-cd5e2c1cfefe: 83bfc30f-a2e1-475f-9124-fdafd2a8445f
                    138c7d6a-3b08-43a3-b741-c2d0dd635573: 35e8eb6b-fcd1-4a0f-881d-dc8f0df6c0c0
                    34aed736-c0b2-40b7-8aa5-69b1478c86e8: c6c02969-624b-4a23-a929-a27d43d6923a
                    b7d6aad4-23a9-4f5b-8037-a0e9475abf05: e8fa9426-a33c-41aa-b8c3-20c40d51d246
                    51fdfac6-86b6-41f9-a613-ac5868e214d7: 1c9baf00-8410-4a7b-a5ef-d39a86a03773
                  tokens: {}
                  tokensMap:
                    0.0.8393265: 0.0.8393387
                  migrateRetirePools: true
                  retireContractId: ''
      responses:
        '202':
          description: Created task.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: 147d8d77-4eea-43f3-b20e-2e83971a398f
                expectation: 4
                action: Migrate data
                userId: 69c2cfc021d39e7b6d15e236
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Migrate policy data asynchronous.
      tags:
        - policies
  /policies/push/migrate-data/resume:
    post:
      description: >-
        Resume migration asynchronous. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: PolicyApi_resumeMigrateDataAsync
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - runId
              properties:
                runId:
                  type: string
                  example: 69aeb71ef8c5b278e3bab4e5
            examples:
              resume:
                summary: Resume migration run
                value:
                  runId: 69c2cfc021d39e7b6d15e236
      responses:
        '202':
          description: Created task.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: 147d8d77-4eea-43f3-b20e-2e83971a398f
                expectation: 4
                action: Migrate data
                userId: 69c2cfc021d39e7b6d15e236
        '400':
          description: Missing or empty `runId` in body.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorDTO'
              example:
                statusCode: 400
                message: runId is required
                error: Bad Request
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Resume migration asynchronous.
      tags:
        - policies
  /policies/push/migrate-data/retry-failed:
    post:
      description: >-
        Retry failed migration items asynchronous. Only users with the Standard
        Registry role are allowed to make the request.
      operationId: PolicyApi_retryFailedMigrateDataAsync
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - runId
              properties:
                runId:
                  type: string
                  description: Migration run id whose failed items should be retried.
                  example: 69aeb71ef8c5b278e3bab4e5
            examples:
              retryFailedItems:
                summary: Retry failed run
                value:
                  runId: 69c2cfc021d39e7b6d15e236
      responses:
        '202':
          description: Created task.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: 147d8d77-4eea-43f3-b20e-2e83971a398f
                expectation: 4
                action: Migrate data
                userId: 69c2cfc021d39e7b6d15e236
        '400':
          description: Missing or empty `runId` in body.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorDTO'
              example:
                statusCode: 400
                message: runId is required
                error: Bad Request
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Retry failed migration items asynchronous.
      tags:
        - policies
  /policies/migrate-data/status:
    get:
      description: >-
        Returns latest migration run status for source/destination pair. Only
        users with the Standard Registry role are allowed to make the request.
      operationId: PolicyApi_getMigrationStatus
      parameters:
        - name: srcPolicyId
          required: true
          in: query
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: dstPolicyId
          required: true
          in: query
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Migration run status.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MigrationStatusResponseDTO'
              examples:
                completedWithFailures:
                  summary: Latest run completed (with failed policyState items)
                  value:
                    items:
                      - runId: 69c643902737af139ce96ee7
                        srcPolicyId: 69c63ecb2737af139ce96bf1
                        dstPolicyId: 69c642562737af139ce96e7c
                        status: completed
                        startedAt: '2026-03-27T08:45:04.532Z'
                        finishedAt: '2026-03-27T09:09:55.412Z'
                        summary:
                          vcDocument:
                            total: 7
                            success: 7
                            failed: 0
                            cursorLastId: 69c643a82737af139ce96f35
                          vpDocument:
                            total: 1
                            success: 1
                            failed: 0
                            cursorLastId: 69c643b42737af139ce96f5d
                          roleVcDocument:
                            total: 0
                            success: 0
                            failed: 0
                            cursorLastId: null
                          policyRole:
                            total: 1
                            success: 1
                            failed: 0
                            cursorLastId: 69c63f3934e3e2878e651c48
                          policyState:
                            total: 3
                            success: 0
                            failed: 3
                            cursorLastId: 69c63f4134e3e2878e651c4b
                          mintRequest:
                            total: 1
                            success: 1
                            failed: 0
                            cursorLastId: 69c6405934e3e2878e651cab
                          mintTransaction:
                            total: 1
                            success: 1
                            failed: 0
                            cursorLastId: 69c6405934e3e2878e651cb0
                          multiDocument:
                            total: 0
                            success: 0
                            failed: 0
                            cursorLastId: null
                          aggregateVc:
                            total: 0
                            success: 0
                            failed: 0
                            cursorLastId: null
                          splitDocument:
                            total: 0
                            success: 0
                            failed: 0
                            cursorLastId: null
                          documentState:
                            total: 11
                            success: 11
                            failed: 0
                            cursorLastId: 69c643a82737af139ce96f4b
                          token:
                            total: 0
                            success: 0
                            failed: 0
                            cursorLastId: null
                          retirePool:
                            total: 0
                            success: 0
                            failed: 0
                            cursorLastId: null
                        isDryRun: false
                        failedItems:
                          - createDate: '2026-03-27T08:45:04.584Z'
                            updateDate: '2026-03-27T09:09:55.401Z'
                            srcPolicyId: 69c63ecb2737af139ce96bf1
                            dstPolicyId: 69c642562737af139ce96e7c
                            entityType: policyState
                            srcEntityId: 69c63f4134e3e2878e651c4b
                            runId: 69c643902737af139ce96ee7
                            attemptCount: 2
                            errorMessage: >-
                              Error: Destination block mapping not found for
                              policyState
                            firstFailedAt: '2026-03-27T08:45:04.583Z'
                            lastFailedAt: '2026-03-27T09:09:55.397Z'
                            id: 69c643902737af139ce96eec
                          - createDate: '2026-03-27T08:45:04.582Z'
                            updateDate: '2026-03-27T09:09:55.401Z'
                            srcPolicyId: 69c63ecb2737af139ce96bf1
                            dstPolicyId: 69c642562737af139ce96e7c
                            entityType: policyState
                            srcEntityId: 69c6401d34e3e2878e651c86
                            runId: 69c643902737af139ce96ee7
                            attemptCount: 2
                            errorMessage: >-
                              Error: Destination block mapping not found for
                              policyState
                            firstFailedAt: '2026-03-27T08:45:04.581Z'
                            lastFailedAt: '2026-03-27T09:09:55.397Z'
                            id: 69c643902737af139ce96eeb
                          - createDate: '2026-03-27T08:45:04.580Z'
                            updateDate: '2026-03-27T09:09:55.400Z'
                            srcPolicyId: 69c63ecb2737af139ce96bf1
                            dstPolicyId: 69c642562737af139ce96e7c
                            entityType: policyState
                            srcEntityId: 69c63fd734e3e2878e651c6d
                            runId: 69c643902737af139ce96ee7
                            attemptCount: 2
                            errorMessage: >-
                              Error: Destination block mapping not found for
                              policyState
                            firstFailedAt: '2026-03-27T08:45:04.580Z'
                            lastFailedAt: '2026-03-27T09:09:55.397Z'
                            id: 69c643902737af139ce96eea
                noRunsForPair:
                  summary: No migration runs for this source/destination pair
                  value:
                    items: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get migration status by policy pair.
      tags:
        - policies
  /policies/migrate-data/runs:
    get:
      description: Returns migration runs.
      operationId: PolicyApi_getMigrationRuns
      parameters:
        - name: pageIndex
          required: false
          in: query
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          schema:
            example: 10
            type: number
        - name: status
          required: false
          in: query
          explode: false
          description: >-
            Filter by migration run status: `running`, `completed`, `failed`,
            `stopped`. Multiple values are passed as a comma-separated list. In
            Swagger UI, select several values from the list by holding Ctrl
            (Windows/Linux) or Command (macOS).
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: Migration runs.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MigrationRunsResponseDTO'
              example:
                items:
                  - runId: f3b2a9c1e4d5678901234567
                    srcPolicyId: f3b2a9c1e4d5678901234567
                    dstPolicyId: f3b2a9c1e4d5678901234567
                    status: string
                    isDryRun: true
                    startedAt: string
                    finishedAt: string
                    summary: string
                    failedItems:
                      - srcPolicyId: {}
                        dstPolicyId: {}
                        entityType: {}
                        srcEntityId: {}
                        runId: {}
                        attemptCount: {}
                        errorCode: {}
                        errorMessage: {}
                        firstFailedAt: {}
                        lastFailedAt: {}
                count: 0
                pageIndex: 0
                pageSize: 0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get migration runs list.
      tags:
        - policies
  /policies/push:
    post:
      description: >-
        Creates a new policy. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: PolicyApi_createPolicyAsync
      parameters: []
      requestBody:
        required: true
        description: >-
          Policy configuration (methodology fields, category ids, etc.). Server
          fills ids, roles, tools, and other persisted fields.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyDTO'
            examples:
              create:
                summary: New policy
                value:
                  name: New policy
                  applicabilityConditions: ''
                  detailsUrl: ''
                  typicalProjects: ''
                  topicDescription: ''
                  description: Policy description
                  categories:
                    - 69c2cfc534d008dac266432c
                    - 69c2cfc534d008dac2664316
                    - ''
                  importantParameters:
                    atValidation: ''
                    monitored: ''
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: 89e1e62a-7976-4e24-8dd3-997da02dc81e
                expectation: 8
                action: Create policy
                userId: 69c2cfc021d39e7b6d15e236
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Creates a new policy.
      tags:
        - policies
  /policies/push/{policyId}:
    post:
      description: >-
        Clones policy. Only users with the Standard Registry role are allowed to
        make the request.
      operationId: PolicyApi_updatePolicyAsync
      parameters:
        - name: policyId
          required: true
          in: path
          description: >-
            Source policy id to clone. The new policy is created asynchronously;
            optional overrides in the body apply `name`, `topicDescription`,
            `description`, and `policyTag` (see clone/import flow).
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Policy configuration.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyDTO'
            examples:
              create:
                summary: Clone policy
                value:
                  policyTag: Tag_1774613972836
                  name: ClonedPolicy
                  topicDescription: Topic description text
                  description: Description text
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: c51e15d5-b484-49e9-b267-84b1de3585b4
                expectation: 5
                action: Clone policy
                userId: 69c2cfc021d39e7b6d15e236
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Clones policy.
      tags:
        - policies
    delete:
      description: >-
        Remove policy. Only users with the Standard Registry role are allowed to
        make the request.
      operationId: PolicyApi_deletePolicyAsync
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: c51e15d5-b484-49e9-b267-84b1de3585b4
                expectation: 5
                action: Delete policy
                userId: 69c2cfc021d39e7b6d15e236
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Remove policy.
      tags:
        - policies
  /policies/push/delete-multiple:
    post:
      description: >-
        Remove multiple policies by their IDs. Only users with the Standard
        Registry role are allowed to make the request.
      operationId: PolicyApi_deletePoliciesAsync
      parameters: []
      requestBody:
        required: true
        description: List of policy IDs to delete.
        content:
          application/json:
            schema:
              type: object
              required:
                - policyIds
              properties:
                policyIds:
                  type: array
                  items:
                    type: string
            examples:
              delete:
                summary: Remove multiple policies
                value:
                  policyIds:
                    - 69c673f3fbdb94688e7eea7f
                    - 69c67548fbdb94688e7eeb98
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: c51e15d5-b484-49e9-b267-84b1de3585b4
                expectation: 3
                action: Delete policies
                userId: 69c2cfc021d39e7b6d15e236
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Remove multiple policies.
      tags:
        - policies
  /policies/{policyId}:
    get:
      description: >-
        Retrieves policy configuration for the specified policy ID for users who
        have API permission to read, execute, manage, or audit policies and
        access to that policy.
      operationId: PolicyApi_getPolicy
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Policy configuration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyDTO'
              example:
                id: 69aeb71ef8c5b278e3bab4e5
                uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                name: Policy name
                description: Description
                topicDescription: Description
                policyTag: Tag
                status: DRAFT
                creator: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                owner: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                topicId: 0.0.6046379
                messageId: '1773670900.819264517'
                codeVersion: 1.0.0
                createDate: '2026-03-03T17:25:53.312Z'
                version: 1.0.0
                originalChanged: true
                config: {}
                userRole: Installer
                userRoles:
                  - Installer
                userGroup:
                  uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                  role: Installer
                  groupLabel: Label
                  groupName: Name
                  active: true
                userGroups:
                  - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    role: Installer
                    groupLabel: Label
                    groupName: Name
                    active: true
                policyRoles:
                  - Registrant
                policyNavigation:
                  - role: Registrant
                    steps:
                      - block: Block tag
                        level: 1
                        name: Step name
                policyTopics:
                  - name: Project
                    description: Project
                    memoObj: topic
                    static: false
                    type: any
                policyTokens:
                  - tokenName: Token name
                    tokenSymbol: Token symbol
                    tokenType: non-fungible
                    decimals: ''
                    changeSupply: true
                    enableAdmin: true
                    enableFreeze: true
                    enableKYC: true
                    enableWipe: true
                    templateTokenTag: token_template_0
                policyGroups:
                  - name: Group name
                    creator: Registrant
                    groupAccessType: Private
                    groupRelationshipType: Multiple
                    members:
                      - Registrant
                categories:
                  - string
                projectSchema: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                tests:
                  - id: 69aeb71ef8c5b278e3bab4e5
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    name: Test Name
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    status: NEW
                    date: '2026-03-03T17:25:53.312Z'
                    duration: 0
                    progress: 0
                    resultId: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    result: {}
                ignoreRules:
                  - code: string
                    blockType: string
                    property: string
                    contains: string
                    severity: warning
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Retrieves policy configuration.
      tags:
        - policies
    put:
      description: >-
        Updates policy configuration for the specified policy ID. Only users
        with the Standard Registry role are allowed to make the request.
      operationId: PolicyApi_updatePolicy
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Policy configuration.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyDTO'
      responses:
        '200':
          description: Policy configuration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyDTO'
              example:
                id: 69aeb71ef8c5b278e3bab4e5
                uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                name: Policy name
                description: Description
                topicDescription: Description
                policyTag: Tag
                status: DRAFT
                creator: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                owner: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                topicId: 0.0.6046379
                messageId: '1773670900.819264517'
                codeVersion: 1.0.0
                createDate: '2026-03-03T17:25:53.312Z'
                version: 1.0.0
                originalChanged: true
                config: {}
                userRole: Installer
                userRoles:
                  - Installer
                userGroup:
                  uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                  role: Installer
                  groupLabel: Label
                  groupName: Name
                  active: true
                userGroups:
                  - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    role: Installer
                    groupLabel: Label
                    groupName: Name
                    active: true
                policyRoles:
                  - Registrant
                policyNavigation:
                  - role: Registrant
                    steps:
                      - block: Block tag
                        level: 1
                        name: Step name
                policyTopics:
                  - name: Project
                    description: Project
                    memoObj: topic
                    static: false
                    type: any
                policyTokens:
                  - tokenName: Token name
                    tokenSymbol: Token symbol
                    tokenType: non-fungible
                    decimals: ''
                    changeSupply: true
                    enableAdmin: true
                    enableFreeze: true
                    enableKYC: true
                    enableWipe: true
                    templateTokenTag: token_template_0
                policyGroups:
                  - name: Group name
                    creator: Registrant
                    groupAccessType: Private
                    groupRelationshipType: Multiple
                    members:
                      - Registrant
                categories:
                  - string
                projectSchema: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                tests:
                  - id: 69aeb71ef8c5b278e3bab4e5
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    name: Test Name
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    status: NEW
                    date: '2026-03-03T17:25:53.312Z'
                    duration: 0
                    progress: 0
                    resultId: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    result: {}
                ignoreRules:
                  - code: string
                    blockType: string
                    property: string
                    contains: string
                    severity: warning
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundErrorDTO'
              example:
                statusCode: 404
                message: Error message
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Updates policy configuration.
      tags:
        - policies
  /policies/{policyId}/disconnected:
    get:
      description: >-
        Returns JSON `null` when the current user is **not** in a local
        disconnected state for this policy. Returns the policy configuration
        (`PolicyDTO`) when the user **is** disconnected (same enrichment as
        policy info for the viewer).
      operationId: PolicyApi_getDisconnectedPolicy
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: >-
            `null` if not disconnected; otherwise the policy object for the
            disconnected user.
          content:
            application/json:
              schema:
                nullable: true
                allOf:
                  - $ref: '#/components/schemas/PolicyDTO'
              examples:
                notDisconnected:
                  summary: Not disconnected (JSON null body)
                  value: null
                disconnected:
                  summary: Disconnected (policy configuration)
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    name: Policy name
                    description: Description
                    topicDescription: Description
                    policyTag: Tag
                    status: DRAFT
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    topicId: 0.0.6046379
                    messageId: '1773670900.819264517'
                    codeVersion: 1.0.0
                    createDate: '2026-03-03T17:25:53.312Z'
                    version: 1.0.0
                    originalChanged: true
                    config: {}
                    userRole: Installer
                    userRoles:
                      - Installer
                    userGroup:
                      uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      role: Installer
                      groupLabel: Label
                      groupName: Name
                      active: true
                    userGroups:
                      - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        role: Installer
                        groupLabel: Label
                        groupName: Name
                        active: true
                    policyRoles:
                      - Registrant
                    policyNavigation:
                      - role: Registrant
                        steps:
                          - block: Block tag
                            level: 1
                            name: Step name
                    policyTopics:
                      - name: Project
                        description: Project
                        memoObj: topic
                        static: false
                        type: any
                    policyTokens:
                      - tokenName: Token name
                        tokenSymbol: Token symbol
                        tokenType: non-fungible
                        decimals: ''
                        changeSupply: true
                        enableAdmin: true
                        enableFreeze: true
                        enableKYC: true
                        enableWipe: true
                        templateTokenTag: token_template_0
                    policyGroups:
                      - name: Group name
                        creator: Registrant
                        groupAccessType: Private
                        groupRelationshipType: Multiple
                        members:
                          - Registrant
                    categories:
                      - string
                    projectSchema: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    tests:
                      - id: 69aeb71ef8c5b278e3bab4e5
                        uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        name: Test Name
                        policyId: 69aeb71ef8c5b278e3bab4e5
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        status: NEW
                        date: '2026-03-03T17:25:53.312Z'
                        duration: 0
                        progress: 0
                        resultId: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        result: {}
                    ignoreRules:
                      - code: string
                        blockType: string
                        property: string
                        contains: string
                        severity: warning
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Disconnected policy state for the current user.
      tags:
        - policies
  /policies/{policyId}/about:
    get:
      description: >-
        Returns a list of documented API actions with relative URLs for the
        specified policy.
      operationId: PolicyApi_getPolicyDocumentation
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Policy documentation entries.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: Returns auto-generated API documentation for the policy.
      tags:
        - policies
  /policies/{policyId}/publish:
    put:
      description: >-
        Publishes the policy with the specified (internal) policy ID onto IPFS,
        sends a message featuring its IPFS CID into the corresponding Hedera
        topic. Only users with the Standard Registry role are allowed to make
        the request.
      operationId: PolicyApi_publishPolicy
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Options.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyVersionDTO'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PoliciesValidationDTO'
              example:
                policies:
                  - id: 69aeb71ef8c5b278e3bab4e5
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    name: Policy name
                    description: Description
                    topicDescription: Description
                    policyTag: Tag
                    status: DRAFT
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    topicId: 0.0.6046379
                    messageId: '1773670900.819264517'
                    codeVersion: 1.0.0
                    createDate: '2026-03-03T17:25:53.312Z'
                    version: 1.0.0
                    originalChanged: true
                    config: {}
                    userRole: Installer
                    userRoles:
                      - Installer
                    userGroup:
                      uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      role: Installer
                      groupLabel: Label
                      groupName: Name
                      active: true
                    userGroups:
                      - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        role: Installer
                        groupLabel: Label
                        groupName: Name
                        active: true
                    policyRoles:
                      - Registrant
                    policyNavigation:
                      - role: Registrant
                        steps:
                          - block: Block tag
                            level: 1
                            name: Step name
                    policyTopics:
                      - name: Project
                        description: Project
                        memoObj: topic
                        static: false
                        type: any
                    policyTokens:
                      - tokenName: Token name
                        tokenSymbol: Token symbol
                        tokenType: non-fungible
                        decimals: ''
                        changeSupply: true
                        enableAdmin: true
                        enableFreeze: true
                        enableKYC: true
                        enableWipe: true
                        templateTokenTag: token_template_0
                    policyGroups:
                      - name: Group name
                        creator: Registrant
                        groupAccessType: Private
                        groupRelationshipType: Multiple
                        members:
                          - Registrant
                    categories:
                      - string
                    projectSchema: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    tests:
                      - id: 69aeb71ef8c5b278e3bab4e5
                        uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        name: Test Name
                        policyId: 69aeb71ef8c5b278e3bab4e5
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        status: NEW
                        date: '2026-03-03T17:25:53.312Z'
                        duration: 0
                        progress: 0
                        resultId: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        result: {}
                    ignoreRules:
                      - code: {}
                        blockType: {}
                        property: {}
                        contains: {}
                        severity: {}
                isValid: true
                errors:
                  blocks:
                    - id: f3b2a9c1e4d5678901234567
                      name: string
                      errors:
                        - {}
                      warnings:
                        - {}
                      infos:
                        - {}
                      isValid: true
                  errors:
                    - string
                  warnings:
                    - string
                  infos:
                    - string
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Publishes the policy onto IPFS.
      tags:
        - policies
  /policies/push/{policyId}/publish:
    put:
      description: >-
        Publishes the policy with the specified (internal) policy ID onto IPFS,
        sends a message featuring its IPFS CID into the corresponding Hedera
        topic. Only users with the Standard Registry role are allowed to make
        the request.
      operationId: PolicyApi_publishPolicyAsync
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Options.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyVersionDTO'
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: c51e15d5-b484-49e9-b267-84b1de3585b4
                expectation: 13
                action: Publish policy
                userId: 69c2cfc021d39e7b6d15e236
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Publishes the policy onto IPFS.
      tags:
        - policies
  /policies/{policyId}/dry-run:
    put:
      description: >-
        Switches the specified policy into dry-run mode and returns the
        resulting validation payload. Dry-run mode is intended for testing and
        simulation without executing real transactions. Only users with the
        Standard Registry role are allowed to make the request.
      operationId: PolicyApi_dryRunPolicy
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Options.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Object'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PoliciesValidationDTO'
              example:
                policies:
                  - id: 69aeb71ef8c5b278e3bab4e5
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    name: Policy name
                    description: Description
                    topicDescription: Description
                    policyTag: Tag
                    status: DRAFT
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    topicId: 0.0.6046379
                    messageId: '1773670900.819264517'
                    codeVersion: 1.0.0
                    createDate: '2026-03-03T17:25:53.312Z'
                    version: 1.0.0
                    originalChanged: true
                    config: {}
                    userRole: Installer
                    userRoles:
                      - Installer
                    userGroup:
                      uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      role: Installer
                      groupLabel: Label
                      groupName: Name
                      active: true
                    userGroups:
                      - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        role: Installer
                        groupLabel: Label
                        groupName: Name
                        active: true
                    policyRoles:
                      - Registrant
                    policyNavigation:
                      - role: Registrant
                        steps:
                          - block: Block tag
                            level: 1
                            name: Step name
                    policyTopics:
                      - name: Project
                        description: Project
                        memoObj: topic
                        static: false
                        type: any
                    policyTokens:
                      - tokenName: Token name
                        tokenSymbol: Token symbol
                        tokenType: non-fungible
                        decimals: ''
                        changeSupply: true
                        enableAdmin: true
                        enableFreeze: true
                        enableKYC: true
                        enableWipe: true
                        templateTokenTag: token_template_0
                    policyGroups:
                      - name: Group name
                        creator: Registrant
                        groupAccessType: Private
                        groupRelationshipType: Multiple
                        members:
                          - Registrant
                    categories:
                      - string
                    projectSchema: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    tests:
                      - id: 69aeb71ef8c5b278e3bab4e5
                        uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        name: Test Name
                        policyId: 69aeb71ef8c5b278e3bab4e5
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        status: NEW
                        date: '2026-03-03T17:25:53.312Z'
                        duration: 0
                        progress: 0
                        resultId: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        result: {}
                    ignoreRules:
                      - code: {}
                        blockType: {}
                        property: {}
                        contains: {}
                        severity: {}
                isValid: true
                errors:
                  blocks:
                    - id: f3b2a9c1e4d5678901234567
                      name: string
                      errors:
                        - {}
                      warnings:
                        - {}
                      infos:
                        - {}
                      isValid: true
                  errors:
                    - string
                  warnings:
                    - string
                  infos:
                    - string
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Dry Run policy.
      tags:
        - policies
  /policies/{policyId}/discontinue:
    put:
      description: >-
        Discontinues the policy. For an immediate discontinue, send an empty
        JSON object `{}`. For a scheduled discontinue, send a body with `date`
        as an ISO-8601 timestamp (UTC).  Only users with the Standard Registry
        role are allowed to make the request.
      operationId: PolicyApi_discontinuePolicy
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: >-
          Optional fields. Omit `date` (or send `{}`) to discontinue
          immediately; include `date` to discontinue at the given time.
        content:
          application/json:
            schema:
              type: object
              properties:
                date:
                  type: string
                  format: date-time
                  description: >-
                    UTC instant when the policy should be discontinued (omit for
                    immediate).
                  example: '2026-03-30T20:00:00.000Z'
            examples:
              immediate:
                summary: Immediate discontinue
                value: {}
              scheduled:
                summary: Scheduled discontinue
                value:
                  date: '2026-03-30T20:00:00.000Z'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PolicyDTO'
              example:
                - id: f3b2a9c1e4d5678901234567
                  uuid: f3b2a9c1e4d5678901234567
                  name: Policy name
                  description: Description
                  topicDescription: Description
                  policyTag: Tag
                  status: string
                  creator: string
                  owner: string
                  topicId: f3b2a9c1e4d5678901234567
                  messageId: f3b2a9c1e4d5678901234567
                  codeVersion: 1.0.0
                  createDate: string
                  version: 1.0.0
                  originalChanged: true
                  config: {}
                  userRole: Installer
                  userRoles:
                    - Installer
                  userGroup:
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    role: Installer
                    groupLabel: Label
                    groupName: Name
                    active: true
                  userGroups:
                    - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      role: Installer
                      groupLabel: Label
                      groupName: Name
                      active: true
                  policyRoles:
                    - Registrant
                  policyNavigation:
                    - role: Registrant
                      steps:
                        - block: Block tag
                          level: 1
                          name: Step name
                  policyTopics:
                    - name: Project
                      description: Project
                      memoObj: topic
                      static: false
                      type: any
                  policyTokens:
                    - tokenName: Token name
                      tokenSymbol: Token symbol
                      tokenType: non-fungible
                      decimals: ''
                      changeSupply: true
                      enableAdmin: true
                      enableFreeze: true
                      enableKYC: true
                      enableWipe: true
                      templateTokenTag: token_template_0
                  policyGroups:
                    - name: Group name
                      creator: Registrant
                      groupAccessType: Private
                      groupRelationshipType: Multiple
                      members:
                        - Registrant
                  categories:
                    - string
                  projectSchema: string
                  tests:
                    - id: f3b2a9c1e4d5678901234567
                      uuid: f3b2a9c1e4d5678901234567
                      name: Test Name
                      policyId: f3b2a9c1e4d5678901234567
                      owner: string
                      status: string
                      date: string
                      duration: 0
                      progress: 0
                      resultId: f3b2a9c1e4d5678901234567
                      result: {}
                  ignoreRules:
                    - code: string
                      blockType: string
                      property: string
                      contains: string
                      severity: warning
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Discontinue policy.
      tags:
        - policies
  /policies/{policyId}/draft:
    put:
      description: >-
        Return policy to editing. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: PolicyApi_draftPolicy
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PolicyDTO'
              example:
                - id: f3b2a9c1e4d5678901234567
                  uuid: f3b2a9c1e4d5678901234567
                  name: Policy name
                  description: Description
                  topicDescription: Description
                  policyTag: Tag
                  status: string
                  creator: string
                  owner: string
                  topicId: f3b2a9c1e4d5678901234567
                  messageId: f3b2a9c1e4d5678901234567
                  codeVersion: 1.0.0
                  createDate: string
                  version: 1.0.0
                  originalChanged: true
                  config: {}
                  userRole: Installer
                  userRoles:
                    - Installer
                  userGroup:
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    role: Installer
                    groupLabel: Label
                    groupName: Name
                    active: true
                  userGroups:
                    - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      role: Installer
                      groupLabel: Label
                      groupName: Name
                      active: true
                  policyRoles:
                    - Registrant
                  policyNavigation:
                    - role: Registrant
                      steps:
                        - block: Block tag
                          level: 1
                          name: Step name
                  policyTopics:
                    - name: Project
                      description: Project
                      memoObj: topic
                      static: false
                      type: any
                  policyTokens:
                    - tokenName: Token name
                      tokenSymbol: Token symbol
                      tokenType: non-fungible
                      decimals: ''
                      changeSupply: true
                      enableAdmin: true
                      enableFreeze: true
                      enableKYC: true
                      enableWipe: true
                      templateTokenTag: token_template_0
                  policyGroups:
                    - name: Group name
                      creator: Registrant
                      groupAccessType: Private
                      groupRelationshipType: Multiple
                      members:
                        - Registrant
                  categories:
                    - string
                  projectSchema: string
                  tests:
                    - id: f3b2a9c1e4d5678901234567
                      uuid: f3b2a9c1e4d5678901234567
                      name: Test Name
                      policyId: f3b2a9c1e4d5678901234567
                      owner: string
                      status: string
                      date: string
                      duration: 0
                      progress: 0
                      resultId: f3b2a9c1e4d5678901234567
                      result: {}
                  ignoreRules:
                    - code: string
                      blockType: string
                      property: string
                      contains: string
                      severity: warning
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Return policy to editing.
      tags:
        - policies
  /policies/validate:
    post:
      description: >-
        Validates the policy configuration provided in the request body. Only
        users with the Standard Registry role are allowed to make the request.
      operationId: PolicyApi_validatePolicy
      parameters: []
      requestBody:
        required: true
        description: Policy configuration.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyDTO'
      responses:
        '200':
          description: Validation result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyValidationDTO'
              example:
                policy:
                  id: 69aeb71ef8c5b278e3bab4e5
                  uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                  name: Policy name
                  description: Description
                  topicDescription: Description
                  policyTag: Tag
                  status: DRAFT
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                  topicId: 0.0.6046379
                  messageId: '1773670900.819264517'
                  codeVersion: 1.0.0
                  createDate: '2026-03-03T17:25:53.312Z'
                  version: 1.0.0
                  originalChanged: true
                  config: {}
                  userRole: Installer
                  userRoles:
                    - Installer
                  userGroup:
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    role: Installer
                    groupLabel: Label
                    groupName: Name
                    active: true
                  userGroups:
                    - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      role: Installer
                      groupLabel: Label
                      groupName: Name
                      active: true
                  policyRoles:
                    - Registrant
                  policyNavigation:
                    - role: Registrant
                      steps:
                        - block: Block tag
                          level: 1
                          name: Step name
                  policyTopics:
                    - name: Project
                      description: Project
                      memoObj: topic
                      static: false
                      type: any
                  policyTokens:
                    - tokenName: Token name
                      tokenSymbol: Token symbol
                      tokenType: non-fungible
                      decimals: ''
                      changeSupply: true
                      enableAdmin: true
                      enableFreeze: true
                      enableKYC: true
                      enableWipe: true
                      templateTokenTag: token_template_0
                  policyGroups:
                    - name: Group name
                      creator: Registrant
                      groupAccessType: Private
                      groupRelationshipType: Multiple
                      members:
                        - Registrant
                  categories:
                    - string
                  projectSchema: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                  tests:
                    - id: 69aeb71ef8c5b278e3bab4e5
                      uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      name: Test Name
                      policyId: 69aeb71ef8c5b278e3bab4e5
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      status: NEW
                      date: '2026-03-03T17:25:53.312Z'
                      duration: 0
                      progress: 0
                      resultId: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      result: {}
                  ignoreRules:
                    - code: string
                      blockType: string
                      property: string
                      contains: string
                      severity: warning
                results:
                  blocks:
                    - id: f3b2a9c1e4d5678901234567
                      name: string
                      errors:
                        - {}
                      warnings:
                        - {}
                      infos:
                        - {}
                      isValid: true
                  errors:
                    - string
                  warnings:
                    - string
                  infos:
                    - string
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Validates policy.
      tags:
        - policies
  /policies/{policyId}/disconnect:
    put:
      description: >-
        Disconnects the user from the selected policy. On success the response
        body is the boolean `true`.
      operationId: PolicyApi_disconnectPolicy
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Returns `true` when the disconnect succeeds.
          content:
            application/json:
              schema:
                type: boolean
                example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Disconnects the user from the selected policy.
      tags:
        - policies
  /policies/{policyId}/reconnect:
    put:
      description: >-
        Restores the user’s participation in the policy after disconnection. On
        success the response body is the boolean `true`.
      operationId: PolicyApi_reconnectPolicy
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Returns `true` when the reconnect succeeds.
          content:
            application/json:
              schema:
                type: boolean
                example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Restores the user’s participation in the policy after disconnection.
      tags:
        - policies
  /policies/{policyId}/navigation:
    get:
      description: >-
        Returns policy navigation. Optional `savepointIds` (stringified JSON
        array) scopes navigation to a dry-run savepoint state when provided.
      operationId: PolicyApi_getPolicyNavigation
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: savepointIds
          required: false
          in: query
          description: >-
            Optional. Savepoint ids as a JSON array of strings, passed as a
            single query value (stringified JSON). Parsed with the rest of the
            query and sent to the engine.
          schema:
            example: '["69c68bf7fbdb94688e7ef0d4","69c68c51fbdb94688e7ef0f8"]'
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: object
              example:
                result: ok
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Returns a policy navigation.
      tags:
        - policies
  /policies/{policyId}/groups:
    get:
      description: >-
        Returns groups for the current user. Optional `savepointIds`
        (stringified JSON array) scopes groups to a dry-run savepoint state when
        provided.
      operationId: PolicyApi_getPolicyGroups
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: savepointIds
          required: false
          in: query
          description: >-
            Optional. JSON array of savepoint id strings, sent as a single query
            value (stringified JSON). Invalid values yield 400.
          schema:
            example: '["69c68bf7fbdb94688e7ef0d4","69c68c51fbdb94688e7ef0f8"]'
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: object
              example:
                result: ok
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Returns a list of groups the user is a member of.
      tags:
        - policies
    post:
      description: >-
        Sets the active group for the current user on this policy. Send `uuid:
        null` to enter Default State (not tied to a specific group); from there
        you may create a new group if you want. Send `uuid` with an existing
        group identifier to switch to that group.
      operationId: PolicyApi_setPolicyGroups
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: >-
          Single field `uuid`: JSON `null` moves the user to Default State
          (where a new group can be created later if desired); a string uuid
          selects an existing group.
        content:
          application/json:
            schema:
              type: object
              properties:
                uuid:
                  type: string
                  format: uuid
                  nullable: true
                  description: An existing group uuid, or JSON `null` for Default State.
            examples:
              defaultState:
                summary: Default State (uuid null)
                value:
                  uuid: null
              existingGroup:
                summary: Select an existing group
                value:
                  uuid: 70db1f4c-d0cc-4593-a424-7b95118b3c43
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: object
              example:
                result: ok
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Select a policy group or return to Default State.
      tags:
        - policies
  /policies/{policyId}/documents:
    get:
      description: >-
        Get policy documents. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: PolicyApi_getPolicyDocuments
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: type
          required: false
          in: query
          description: Document type.
          schema:
            enum:
              - VC
              - VP
            type: string
        - name: includeDocument
          required: false
          in: query
          description: Include document field.
          schema:
            example: true
            type: boolean
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: >-
            JSON array of document index rows (fields vary by stored record).
            `X-Total-Count` is the total matching rows for paging.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    schema:
                      type: string
                      description: Schema IRI / version key
                    owner:
                      type: string
                      description: Owner DID
                    messageId:
                      type: string
                      description: Hedera consensus message id
                    id:
                      type: string
                      description: Document record id
              example:
                - schema: '#16462e4c-4553-4b91-8ff8-ea3a1094a744&1.0.0'
                  owner: >-
                    did:hedera:testnet:BftZd6RVk1D5yXC64g25b9TmhAvNLwki271mWgDAu7yW_0.0.8361161
                  messageId: '1774621651.173557000'
                  id: 69c693d288a9ebd936dfcb2d
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get policy documents.
      tags:
        - policies
  /policies/{policyId}/search-documents:
    get:
      description: Get policy documents with filters.
      operationId: PolicyApi_getPolicyDocumentsExport
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: textSearch
          required: false
          in: query
          description: Text search
          schema:
            example: Example
            type: string
        - name: schemas
          required: false
          in: query
          description: Schemas
          schema:
            example:
              - '#001, #002'
            type: string
        - name: owners
          required: false
          in: query
          description: Owners
          schema:
            example:
              - 001, 002
            type: string
        - name: tokens
          required: false
          in: query
          description: Tokens
          schema:
            example:
              - 001, 002
            type: string
        - name: related
          required: false
          in: query
          description: Related
          schema:
            example:
              - 001, 002
            type: string
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: Documents.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
              example:
                - string
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get policy documents with filters.
      tags:
        - policies
  /policies/{policyId}/export-documents:
    get:
      description: Exports policy documents and related filtered data as a ZIP archive.
      operationId: PolicyApi_exportPolicyDocuments
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: ids
          required: false
          in: query
          description: Ids
          schema:
            example:
              - 001, 002
            type: string
        - name: textSearch
          required: false
          in: query
          description: Text search
          schema:
            example: Example
            type: string
        - name: schemas
          required: false
          in: query
          description: Schemas
          schema:
            example:
              - '#001, #002'
            type: string
        - name: owners
          required: false
          in: query
          description: Owners
          schema:
            example:
              - 001, 002
            type: string
        - name: tokens
          required: false
          in: query
          description: Tokens
          schema:
            example:
              - 001, 002
            type: string
        - name: related
          required: false
          in: query
          description: Related
          schema:
            example:
              - 001, 002
            type: string
      responses:
        '200':
          description: Successful operation. Response zip file.
          content:
            application/json:
              schema:
                type: string
              example: string
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Export policy documents as a ZIP archive.
      tags:
        - policies
  /policies/{policyId}/document-owners:
    get:
      description: Get policy document owners.
      operationId: PolicyApi_getDocumentOwners
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: >-
            JSON array of distinct document-owner DIDs (strings).
            `X-Total-Count` matches array length for Standard Registry; other
            roles receive a single-element array.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                  description: Hedera DID of a document owner
              example:
                - >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                - >-
                  did:hedera:testnet:BftZd6RVk1D5yXC64g25b9TmhAvNLwki271mWgDAu7yW_0.0.8361161
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get policy document owners.
      tags:
        - policies
  /policies/{policyId}/tokens:
    get:
      description: Get policy tokens.
      operationId: PolicyApi_getTokens
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Token Ids.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
              example:
                - string
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get policy tokens.
      tags:
        - policies
  /policies/{policyId}/data:
    get:
      description: >-
        Downloads a ZIP archive (served with `.data` filename extension)
        containing policy migration/export content. Typical entries include
        `policy.json`, `blocks.json`, `users.json`, `userTopic.json`, plus
        folders generated from loaders such as `vcs/`, `vps/`, `tokens/`, and
        related files (`multiDocuments/`, `documentStates/`, `mintRequests/`,
        `mintTransactions/`, `retirePools/`). Only users with the Standard
        Registry role are allowed to make the request.
      operationId: PolicyApi_downloadPolicyData
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: >-
            ZIP binary payload with exported policy data and related entities
            for migration/import.
          content:
            application/zip:
              schema:
                type: string
                format: binary
              example: binary (zip archive)
            application/policy-data:
              schema:
                type: string
                format: binary
              example: binary (zip archive)
        '401':
          description: Unauthorized request.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
            application/policy-data:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
            application/policy-data:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
            application/policy-data:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Download policy data export archive.
      tags:
        - policies
  /policies/data:
    post:
      description: >-
        Upload policy data. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: PolicyApi_uploadPolicyData
      parameters: []
      requestBody:
        required: true
        description: >-
          Raw bytes of the `.data` export archive. Send with `Content-Type:
          binary/octet-stream` (same as other binary imports in this API).
        content:
          binary/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: Uploaded policy.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
              example:
                createDate: '2026-03-26T10:10:06.439Z'
                updateDate: '2026-03-26T10:11:37.309Z'
                uuid: a3336ac3-ae33-4397-85ab-0dbed992c99b
                name: iRec_4_1774519806406
                version: '3'
                description: iRec Description
                topicDescription: iRec Description
                configFileId: 69c5065988275585de0ab308
                status: PUBLISH
                creator: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                owner: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                policyRoles: []
                policyGroups: []
                policyTopics: []
                policyTokens: []
                topicId: 0.0.8382928
                instanceTopicId: 0.0.8382933
                synchronizationTopicId: 0.0.8382934
                commentsTopicId: 0.0.8382936
                policyTag: Tag_1774519783335
                messageId: '1774519889.760696000'
                codeVersion: 1.5.1
                hash: 35nNHbsFioMqSKBbv67YcL2KvHsQEu821T2hNdV3LWvk
                hashMapFileId: 69c5065988275585de0ab30a
                tools: []
                availability: private
                locationType: local
                recordsTopicId: 0.0.8382935
                autoRecordSteps: true
                contentFileId: 69c5064588275585de0ab2f0
                config: {}
                hashMap: {}
                id: 69c937108f421b1354945d4b
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Upload policy data.
      tags:
        - policies
  /policies/{policyId}/virtual-keys:
    get:
      description: >-
        Returns a ZIP archive (DEFLATE) with virtual keys and DID documents for
        the policy dry run / demo context. The response uses `Content-Type:
        application/virtual-keys` and `Content-Disposition: attachment` with a
        `.vk` filename derived from the policy name. Archive layout: folder
        `virtualKeys/` — one `.json` file per virtual key (participant DIDs,
        excluding the Standard Registry owner DID); folder `dids/` — one `.json`
        file per DID document.  Only users with the Standard Registry role are
        allowed to make the request.
      operationId: PolicyApi_downloadVirtualKeys
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: >-
            Binary body: ZIP archive as described in the operation summary (not
            JSON).
          content:
            application/virtual-keys:
              schema:
                type: string
                format: binary
        '401':
          description: Unauthorized request.
          content:
            application/virtual-keys:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/virtual-keys:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/virtual-keys:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Download virtual keys and DID documents (ZIP).
      tags:
        - policies
    post:
      description: >-
        Imports the same ZIP layout as `GET /policies/{policyId}/virtual-keys`
        exports: folders `virtualKeys/` and `dids/` with JSON files. Send raw
        archive bytes with `Content-Type: binary/octet-stream` (e.g. a `.vk`
        file from export).  Only users with the Standard Registry role are
        allowed to make the request.
      operationId: PolicyApi_uploadVirtualKeys
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: >-
          Raw bytes of the virtual-keys ZIP (same structure as the download
          endpoint). Use `Content-Type: binary/octet-stream`.
        content:
          binary/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: >-
            Import finished successfully. The response body is JSON `null` (no
            object payload).
          content:
            application/json:
              schema:
                nullable: true
                description: Null on success.
                example: null
              examples:
                success:
                  summary: Success (JSON null)
                  value: null
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Upload virtual keys and DID documents (ZIP).
      tags:
        - policies
  /policies/{policyId}/tag-block-map:
    get:
      description: >-
        Maps each block tag to its instance UUID for this policy.  Only users
        with the Standard Registry role are allowed to make the request.
      operationId: PolicyApi_getTagBlockMap
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Record of block tag → block instance UUID.
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
                  format: uuid
              example:
                Choose_Roles: 67b1ba6f-732b-49fe-b96c-2bc65d2bfef5
                header: eba62c72-d50d-4deb-92e1-efb320b999d8
                approve_PP: de7655e2-abb4-4c11-9c9d-d9045863655f
                pp_grid_sr: 342d3226-60b8-440f-ae74-4d9d4e9b1502
                pp_grid_sr_documents_to_approve: 75a79a7a-9e5d-451b-ac9a-0cae1c74e0c5
                pp_grid_sr_documents_approved: 721563a4-ac0b-41fd-ac3c-648f603c266f
                pp_grid_sr_documents_approved_rejected: 2cef948f-5331-40d7-8605-db8996949074
                pp_grid_sr_history: d8a519e6-8154-441e-b0c5-ce9354ee3e20
                approve_pp_documents_btn: ba9bbaff-777c-4cea-b57c-88f5e66738e8
                revoke_pp_sr_btn: 52566539-55b9-401e-a7ae-5c155e3c4e84
                revoke_pp_sr: c5625a1d-4211-4c86-a807-138bef4ed683
                save_revoke_pp_sr: b0f38345-c568-4846-bc16-a001f324c1be
                approve_VVB: 7df235de-8a3a-4b6a-b7e4-afbbb1e07789
                vvb_grid_sr: 7dcca0c2-686d-4f6e-ae6f-9047a062b21e
                vvb_grid_sr_documents_to_approve: a81f2eb8-c463-40c0-9a99-1b54b4330d13
                vvb_grid_sr_documents_approved: 5eb49aed-e645-4cce-ac66-478f33e43ecb
                vvb_grid_sr_documents_approved_rejected: 94d0f573-d925-487c-93c5-197ae62b835c
                history_addon_35a0bfb0-72a2-4dde-a107-ce356544a9c7: 779fc971-2db2-402e-b74e-3a93c4d3fee1
                approve_documents_btn: 11957409-363d-4c9a-ad63-b44e22f095b9
                revoke_vvb_sr_btn: 4484e430-afdd-464b-9908-736f9f8691ca
                revoke_vvb_sr: 07ecfe0c-4764-4e4d-845d-1b906a74c673
                save_revoke_vvb_sr: ef7b5c39-efb5-4c4c-8705-38d47a05c098
                return_vvb_to_wait: c257b2c4-415e-4580-a1ca-b7978ae18e2a
                project_Pipeline: ca3f48e7-46e0-4a9a-b808-0a8635950fc3
                project_grid_sr: 4e31d57a-4c68-49a3-bd32-3971df87bc4e
                project_grid_sr_waiting_for_validation: 9ea132db-8394-4f3d-b622-5468458ccb94
                project_grid_sr_validated_revoked: 42e89bd3-3f7b-4b3b-8de2-d5e9f568b966
                project_grid_sr_rejected: 28902755-9f7d-4b56-96f2-901bb11985c4
                sr_project_grid_history: 57e1bff5-28cd-407e-b011-43d2cffd99f3
                sr_validate_project_btn: 3dfdf39a-9e20-4622-b8cf-588083c3e643
                sr_save_validated_project: 391cd16e-3250-4630-a1a8-83e5567b9d6d
                sr_reassign_validated_project: 2e841cf4-90fe-4828-ab4e-2c6cb6ba931c
                sr_save_reassigned_validated_project_hedera: c3970f63-517f-471b-b883-a09436634926
                sr_save_reassigned_validated_project_db: 5a6c1aaf-aab0-4356-a2ba-54885479401b
                sr_save_rejected_project: 4931d0ac-102f-42b2-943f-fb2f5ee4747e
                sr_reassign_rejected_project: 4231d33a-da43-43f6-b71b-4777f3241407
                sr_save_reassigned_rejected_project_hedera: ed395fc3-f4e2-465c-a69f-c4f731683036
                sr_save_reassigned_rejected_project_db: b375e199-3b1d-4d52-be48-153a77272f7c
                sr_revoke_project_btn: f641ac31-b3db-4797-bf09-41399cc092d1
                sr_revoke_project: e5d52ff6-000c-4024-b80c-810bd0487a89
                sr_save_revoked_projects: 6a5d7596-34d5-4be1-bc5c-002504c3c8a8
                Monitoring_Reports_sr: d1ede253-2ad7-4e72-88e1-28d1caa8fbf7
                report_grid_sr: 6e844eaf-2209-4bc1-a615-dddd2b091414
                report_grid_sr_verified_approved_reports: d4e2a6dd-dc93-4871-830d-74d6b6393cc5
                report_grid_sr_approved_revoked: e68c4e8d-cc14-4779-871d-0d7fd1ea991f
                report_grid_sr_rejected: 544c78ea-9298-4579-87f2-0a77d08f93c7
                history_addon_97744a6d-4bd6-4281-9075-3695b76475f1: 251ad205-4bf8-4b3f-a3bc-748db5da2c9d
                sr_approve_report_btn: bdee1b47-ce92-439e-91ae-851c9248540c
                sr_save_approved_report: 4e443dd1-913f-446d-8fb9-40e14290fdd0
                sr_reassign_approved_report: cc29360f-e5ec-4d0f-bae3-e79491426b37
                sr_save_reassigned_approved_report_hedera: 90f82730-9304-4620-98a2-aa4487e713a0
                sr_save_reassigned_approved_report_db: c5b54039-1ad3-454c-acda-fd85ba79cf41
                mintToken: e9557770-0664-41c7-977d-b90e02705a58
                sr_save_rejected_report: f7873839-57e1-41dd-8ea1-c5247f458a1f
                sr_reassign_rejected_report: 52babd73-4b65-4d67-a1c1-7c8b24631731
                sr_save_reassigned_rejected_report_hedera: bd6127a3-556e-4366-a73b-28979db863fb
                sr_save_reassigned_rejected_report_db: 9adb9ed4-7cfa-4417-90ca-cfd2db637473
                sr_revoke_report_btn: e8351d12-0ef0-4c13-8429-7c7461636879
                sr_revoke_reports: 501467ae-149f-4ca6-a0a5-af6312d50334
                sr_save_revoked_reports: 46422837-79c1-45b6-ade8-96f80a1af585
                VP: dca1dc1e-8b6e-4d32-a2ed-f750c7408fee
                vp_grid: 76a5c371-2d7a-4669-a5c5-5e74b2e43922
                vp_grid_vp_documents: 903eb680-1d02-4eb1-b2d2-92c9b6089957
                TrustChain: 193f034e-f621-4187-92e8-4e02c23ae556
                trustChainBlock: 267d727f-b405-465e-bc0a-bb09f121b308
                MintTokenItem: 5ef14a78-bd0b-4460-9f5c-2f9b947b8b52
                ReportMonitoringReportApproved: 92390fb9-c377-4be5-95f7-8111d739ce5e
                ReportMonitoringReportVerified: 0e21256b-4217-4bad-8cbf-4f6a1f0c8f82
                AutomaticMonitoringReport: 9ab4f8d7-4b20-4fb9-99cd-1d8e0e685d61
                ReportMonitoringReportCreated: 6c6ca33b-1b17-473c-a0c4-f86c773ab85e
                ReportProjectValidation: 18d32be0-b899-4d12-b36f-ce23f45694d3
                AutomaticProject: 224bc884-fe6a-46e6-bec0-7888d7a54d1e
                ReportProjectCreated: 8b0c9803-c6a0-4c13-83f6-b02a7844c44b
                pp_step: 38ebef4b-0b4e-4724-b19f-81bb8b8c4c8a
                create_pp_profile: a091d4c6-aa73-40d8-8c52-b33eb4f8dd00
                preset_pp_profile: 05ac6b40-f5e9-43aa-9e20-bffbfe3be525
                save_pp_profile_hedera: 0d5f03aa-cfe9-46bb-bc36-48d994750806
                save_pp_profile_db: e290fad5-25de-461c-8c52-35df7c90d68e
                pp_wait_for_approve: 70e31450-e940-47ea-8e1b-e2b6da708fb2
                save_approved_pp: bc9ec5a6-7bf6-4625-a0d4-6ec14dcd100b
                reassign_approved_pp: f4300ce7-b62f-4bf7-8f90-fce944c01453
                save_reassigned_approved_pp_hedera: 101fbcb2-7410-4eb6-ac0b-aad62dfa61ad
                save_reassigned_approved_pp_db: d8bd023e-26ef-4e5f-bc29-327a099dfc2d
                Project Participant_header: b7c48ef6-9eff-4696-8967-41cb25efe008
                pp_document: 3e907e60-c851-4803-963d-193b85f2de15
                pp_profile_grid: 0852f759-da33-4a64-950f-bde731c87112
                pp_documents: 7d591df9-2869-418c-ba72-29a43daf2177
                pp_documents_rejected: 02b132cc-f987-4ed2-a050-1f6070aa4754
                pp_documents_history: 2738651e-be9f-4e7d-a51d-89a842238d89
                pp_revoke_profile: d4bd6553-3ff4-474b-9cd2-b020ad87ab00
                pp_revoke_profile_documents: 999824d8-0a96-426e-8853-597d6406a377
                pp_save_revoked_profile_documents: 177d6b7b-eb34-4420-a852-3e5f015902ff
                Projects_pp: 84fb55a8-1107-427a-8c82-a77016698d6e
                project_grid_pp_2: d4482a69-7390-48c1-8e76-d06ef487c85b
                project_grid_pp_2_waiting_to_validate_projects: da8f13f6-afdf-444a-bd91-98dfd7924c41
                project_grid_pp_2_validated_projects: 166a3df0-b133-4b2b-80dc-20e45c7fb031
                project_grid_pp_2_validated_revoked_projects_own: 00e46aee-09ff-423a-8a1b-3dacc4a88226
                project_grid_pp_2_rejected_projects_own: e178f60e-ef66-4ba0-81fb-3afbc49cfcc7
                history_addon_4f31ccda-2486-4cc8-8c7b-647283e8f093: 745524f9-ee8d-4200-b767-cabb36a2d0e8
                new_project: ee6dea12-94ce-4e88-ab39-a0b5183a761d
                add_project_bnt: 0110af34-bfd0-4ff5-b7f8-b821462f37ff
                pp_set_profile_to_project: 865c907e-61de-49b7-bc18-48a98fa47d8a
                pp_profile_project: 5d26570a-8b95-4f6b-9ade-b2f66d60d0fc
                save_project_form_pp_hedera: ff8d0501-e896-4865-a58c-f89a77486ac8
                save_project_form_pp: 56f64879-69e6-45aa-8d7e-d6d99ade8ddc
                tool_19_project: 84a5d3b0-223d-4ee6-8e26-9dab6f3aa31c
                tool_19_project:get_tool_19: 4ccdf064-9966-46d9-84b3-56d97d68dac8
                tool_19_project:calc_tool_19: 4a91f065-e631-4c9a-bcdc-49d3170b0862
                tool_19_project:set_tool_19: 472bedb8-bfa9-4e97-9ad0-b253b30ad043
                tool_21_project: 12e30f68-e7b7-4427-aa9a-7d7f75c22900
                tool_21_project:get_tool_21: b7984eab-893a-497f-ba73-3e6d4c0b7ce0
                tool_21_project:set_tool_21: 16f57f36-48db-4989-adb1-ddb276fc23f1
                tool_33_project: dac9b2e4-cccd-4125-8e13-6bdb4c7d83f8
                tool_33_project:get_tool_33: 805c54af-bea3-4351-b07c-cf30af8b8ecb
                tool_33_project:calc_tool_33: 52974f49-497d-403b-9616-829da32590fe
                tool_33_project:set_tool_33: caabfe37-e697-45d0-a4d8-506b5917560e
                tool_07_project: a740d560-f27f-49b4-8484-c3c41acfc7a6
                tool_07_project:get_tool_07: 5c961ffe-a69a-40b7-bdbc-6d860b963dbd
                tool_07_project:calc_tool_07: a1cc5525-6c22-4fda-8c95-1de20864ae40
                tool_07_project:set_tool_07: 88db65b4-38e1-4395-8f7a-f1f9b2c9cb0b
                calculate_project_fields: 48e0c5b9-2037-486f-9e62-a4a72a737174
                save_project_hedera: 913db0c4-9a5f-4880-89e7-199f0b9f4893
                save_project: 579b91a8-5843-475a-9df4-0cd62a193bd5
                new_report: 9a3f8b47-d5f2-4a30-ae30-8591325cec5e
                add_report_bnt: 3fce7522-70a5-4941-8885-70f889d76744
                save_report_form_pp_hedera: 5c3542f5-10c9-45e4-9e4f-f19337311450
                save_report_form_pp: df353891-48aa-4e1d-a7f2-254b4eed845d
                tool_19_report: a6142f4e-2833-4682-b90a-13e470fac3e5
                tool_19_report:get_tool_19: f79682a5-ec6f-4880-bd16-5cf79a47646f
                tool_19_report:calc_tool_19: 199a7094-d437-4cd2-a868-28d89c5e4003
                tool_19_report:set_tool_19: d34c7e63-362b-44c4-b09c-7e22ca0204b1
                tool_21_report: 682bceb0-aca3-459e-868b-5071769e0010
                tool_21_report:get_tool_21: 6adbef57-40b4-4605-a14a-396cff579f9b
                tool_21_report:set_tool_21: e98d3b99-0336-493a-9437-d8c987a055af
                tool_33_report: 3015c9e1-0fd1-49dd-9e99-5e4360b03843
                tool_33_report:get_tool_33: c0efbc98-7bd2-4ab2-99ea-156d38cb8582
                tool_33_report:calc_tool_33: e7a04257-8aa2-46f0-a2de-356d7d4c0a23
                tool_33_report:set_tool_33: 855895bd-3cc4-4f2a-b56f-24d7c2903341
                tool_07_report: ca9c2f91-0137-4bff-b4ae-122c779ebc8a
                tool_07_report:get_tool_07: a85a2235-f39e-4661-9149-ce960a1232c1
                tool_07_report:calc_tool_07: 68e09c24-dda7-44dd-8cc5-cd99e97dc9bf
                tool_07_report:set_tool_07: a4ebe74e-170f-4a95-a9c1-181382a8aeb4
                calculate_report_fields: 84efaf85-e863-4227-8398-36d502112803
                save_report_form_hedera: a49433cd-9d55-4f89-9ec5-657389be864c
                save_report: ee19553c-3125-4beb-b46f-4ff625c3bf61
                revoke_project_pp_btn: 85579c1a-da55-48ad-a158-9aea06cdf875
                revoke_project_pp: a09c849a-09f6-45fb-90dc-38c8ae376cf4
                send_revoke_project_pp: 5549e44e-abd3-452a-8b94-199decf5d90e
                Monitoring_Reports_pp: ad0195d8-f851-44ac-a6e0-a516e54aa0a8
                report_grid_pp: b6b93966-5db4-4cf5-bf6c-04caa79efa56
                report_grid_pp_reports_verified: ca93cd28-c825-42e4-8235-8b051b15fb50
                report_grid_pp_reports_waiting_for_verification: 7e58d3ff-2b5b-4dbc-82ab-0803b9b6a69e
                report_grid_pp_reports_rejected: 2f91b842-d120-47c0-8988-7d10898e0b9f
                report_by_project: 5eb3bd9f-508a-4f34-878a-caeec03f5cc6
                report_grid_pp_projects: cc29afb5-44cc-4743-ab06-61ff78f2e367
                history_addon_1797768b-5cff-4271-a075-b47d47414f42: a9fdaf82-c435-4624-9667-fcf7b8aeba77
                assign_vvb: 3764ff77-1d04-4685-83ff-4e40e943b02b
                assign_vvb_documents: 8060701d-0503-4322-8566-155156f657f3
                save_assign: caa9d743-4e7c-4849-b180-6ded8ae547de
                revoke_report_pp_btn: c1bfcfd6-ef0f-431a-a647-132fd8896aee
                revoke_report_pp: b8e58e5c-168e-4dfa-ab57-22cc81709276
                send_revoke_report_pp: c395bd76-2e9d-4201-9d8f-d8ee2b02eed3
                tokens: 9c69a673-99de-43ae-a3cb-1180e47a7419
                tokens_grid: 96b059a2-fd03-4af6-92bd-b8cf7cfc8cab
                tokens_grid_tokens: 36e9f937-a265-4133-9449-dbac4502a339
                save_rejected_pp: 1087c34d-4a52-4ddf-b608-02c6b1af23e6
                reassign_rejected_pp: 053512e1-ead8-423c-b643-ed2b823fb0e5
                save_reassigned_rejected_pp_hedera: 6970ea93-234d-46f6-86fb-b10841bdfeef
                save_reassigned_rejected_pp_db: da466bdf-2cff-4732-a730-35af6a8681fc
                rewrite_pp: fa15cdb3-13a9-40e8-b1b5-9fb40f4d3d61
                pp_rejected: 8e7ae449-f7a6-444d-9a4f-73bfeb63facc
                return_pp_btn: 17ced663-b5fb-4f05-bf6d-57617215adbd
                VVB: 65e4019a-cf24-4399-a036-b0736c46d147
                new_VVB: 7dccf230-bae6-4e28-a330-670b974e2c0e
                create_new_vvb: 4c06fc97-f3a8-429d-a1a2-e0c406f69ff0
                rejected_vvb_docs: 3aaeea11-d9f6-4bd6-b3ef-8ea34fb7c6c6
                save_new_approve_document_hedera: 54dc2457-6fbc-4c4f-b6ff-43c88f632795
                save_new_approve_document: 4e7c4631-3720-4e65-b8ca-a93b1814eb32
                wait_for_approve: a46dd8eb-cba4-427e-bec7-529b5e6741ce
                update_approve_document_status: f08795df-218f-44f1-8067-fec69e3439ca
                reassign_vc_vvb: 52a85cef-d272-4412-b178-fd70f164a789
                save_vc_vvb_hedera: cfed0069-5303-422a-889b-e64728193bbf
                save_vc_vvb: c97eb5df-9bc9-4f7a-8e9c-202aea60f3a8
                VVB_Header: 3e94224b-1271-4daf-a4c6-8dc83466fac3
                VVB Documents: fe7f6083-df0d-4484-82c7-b2667a493ba3
                vvb_grid: aef5a12f-2104-4363-a0b8-1de0d9cf2dfd
                vvb_grid_documents: 3a766cbe-64c4-4981-9ebf-00c0b91a2bf9
                vvb_grid_documents_rejected: 5e19229a-d4af-4d86-ad80-2a8d8f2f5337
                history_addon_eb2f56e0-f2d6-4288-bffe-ee08f89d60ab: b59d9cda-644e-45b3-b2f8-ae35b1ac787b
                revoke_vvb_own_document_btn: 4f1c84fd-86ed-42c3-87b7-c76e054b63b8
                revoke_vvb_own_document: 16080f49-a76a-42c4-b914-426d5d0fe9e7
                save_revoked_vvb_own_document: d27b561b-e5a2-4bf8-944e-8e977eea82ee
                return_vvb_to_request: 96a50c03-a562-41e6-801e-50b56a0f3bb5
                Monitoring_Reports_vvp: bfa2879f-37a5-43f3-8046-8aae903628a1
                report_grid_vvb: d29b2e1f-2176-4978-b189-c6dd30530f80
                report_grid_vvb_reports: c446e056-3631-4092-ae6d-b7a432aacdc8
                report_grid_vvb_reports(approved): 4c2e2765-cfc1-4fdc-b1b3-37ab0e7cd6e8
                report_grid_vvb_reports(rejected): a7aa15ce-f271-4e28-9812-82bfd7ef5aa7
                history_addon_a40f0da4-e982-481c-a23e-b86f7e76e770: 85b1cab4-ba3c-4e5f-a1da-7270082013c5
                approve_report_btn: 710427a1-85ce-4745-8e25-d87d6e0998f7
                mint_events: 9980537e-f8d8-4dc4-8d80-17b07891f0e7
                approve_report_status: 21e27f70-b4ab-4a65-8b60-0f351671bc2e
                reassign_report: c3a99ced-d1bf-4282-ac9e-eda9764f4d3d
                set_relationships_to_report_vvb: 6b47557b-df51-44c5-be4e-5ad311944c77
                vvb_own_documents_relationships: 305c7fb4-50bb-4b1a-afa2-8beb0c9a7bec
                save_reassign_report_hedera: c93e6a61-65f8-4d3d-9f67-bb1d2f48b8d2
                save_reassign_report: df3240b6-112a-4138-8e00-801931583a28
                reject_report_status: f4f1db2e-cd0f-4662-aa0f-a320a3296747
                reassign_rejected_report: 69dd0278-04c0-41bd-a950-fcd5dd1a23ee
                set_relationships_to_rejected_vvb: 54e168f0-3ebc-4af1-ac8e-ee89c3221542
                vvb_own_documents_relationships_rejected: 69e5d217-7c34-47f7-8dd1-26ad2dfafbf3
                save_reassign_rejected_report_hedera: ccb1148f-7496-4739-b921-d0ddbc31d6a2
                save_reassign_rejected_report: 49e0ff43-aa52-44af-9bf2-5b3861c4144a
                revoke_reassign_report_btn: 783618ca-1efa-4d31-b42b-5dc09826cb38
                revoke_reassign_report: 66173aee-a100-43fd-b6df-71c9b4b97d6d
                save_revoke_reassign_report: d8cdb61b-1ea6-4658-bf39-3f4db876247a
                update_approve_document_status_2: fbe5b897-990e-4108-862b-e65356301617
                reassign_rejected_vvb: 69247fb9-8146-4c3f-89bb-56c562419a5e
                reassign_rejected_vvb_hedera: b7c10574-8462-48ed-a099-3444e3af95a7
                save_reassign_rejected_vvb: b1a12acd-9d41-4174-8f10-58bbe8aaeaa4
                rewrite_vvb: 5e1cdd40-8687-4279-bb27-479fa7ba1356
                vvb_rejected: 65d9c1f5-94af-45fd-b483-6fa33d92c4e8
                return_vvb_btn: b81d06d9-35f8-476a-91d5-e86bd570ab68
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Tag → block id map.
      tags:
        - policies
  /policies/{policyId}/blocks:
    get:
      description: >-
        Returns data from the root policy block. Users with permission to
        execute or manage the policy can make this request. If the root block is
        not available to the caller at the current policy stage or time, the
        request may fail.
      operationId: PolicyApi_getPolicyBlocks
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: savepointIds
          required: false
          in: query
          description: >-
            Optional. Savepoint ids (JSON array or stringified JSON). Parsed and
            passed with the rest of the query object to the engine.
          schema:
            example: '["69c2cfc021d39e7b6d15e236"]'
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlockDTO'
              example:
                id: f3b2a9c1e4d5678901234567
                blockType: string
                blocks:
                  - {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
        '503':
          description: Block Unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableErrorDTO'
              example:
                statusCode: 503
                message: Error message
      security:
        - bearer: []
      summary: Retrieves data for the policy root block.
      tags:
        - policies
  /policies/{policyId}/blocks/{uuid}:
    get:
      description: >-
        Returns the block payload for the specified UUID. Within a policy,
        different roles may see different blocks at different stages or moments
        of the workflow. If the requested block is not available to the caller’s
        role at this time, the API responds with `422 Unprocessable Entity` and
        `message: "Block Unavailable"` (see response example).
      operationId: PolicyApi_getBlockData
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: uuid
          required: true
          in: path
          description: Block Identifier
          schema:
            example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
            type: string
        - name: savepointIds
          required: false
          in: query
          description: >-
            Optional. Savepoint ids (JSON array or stringified JSON). Parsed and
            passed with the rest of the query object to the engine.
          schema:
            example: '["69c2cfc021d39e7b6d15e236"]'
            type: string
      responses:
        '200':
          description: >-
            Block document. The OpenAPI schema is a minimal `BlockDTO`; actual
            responses include additional fields per block type—see the example.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlockDTO'
              example:
                id: 3e907e60-c851-4803-963d-193b85f2de15
                blockType: interfaceContainerBlock
                actionType: local
                readonly: false
                uiMetaData:
                  type: blank
                  title: Documents
                blocks:
                  - uiMetaData:
                      fields:
                        - title: Owner
                          name: document.issuer
                          tooltip: ''
                          type: text
                        - title: Text
                          name: document.credentialSubject.0.field0
                          tooltip: ''
                          type: text
                        - title: Operation
                          name: ''
                          tooltip: ''
                          type: block
                          action: ''
                          url: ''
                          dialogContent: ''
                          dialogClass: ''
                          dialogType: ''
                          bindBlock: pp_revoke_profile
                          bindGroup: pp_documents
                        - title: Operation
                          name: option.status
                          tooltip: ''
                          type: text
                          action: ''
                          url: ''
                          dialogContent: ''
                          dialogClass: ''
                          dialogType: ''
                          bindBlock: ''
                          width: 250px
                        - title: Document
                          name: document
                          tooltip: ''
                          type: button
                          action: dialog
                          url: ''
                          dialogContent: VC
                          dialogClass: ''
                          dialogType: json
                          bindBlock: ''
                          content: View Document
                          uiClass: link
                    content: interfaceDocumentsSourceBlock
                    blockType: interfaceDocumentsSourceBlock
                    id: 0852f759-da33-4a64-950f-bde731c87112
                  - null
                  - null
                  - null
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: >-
            Block not available to the current role at this policy stage or time
            (including when the user’s role does not match the block
            configuration).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Block Unavailable
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
        '503':
          description: Block Unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableErrorDTO'
              example:
                statusCode: 503
                message: Error message
      security:
        - bearer: []
      summary: Get block data by UUID.
      tags:
        - policies
    post:
      description: >-
        Sends block-specific input to the block identified by `uuid` and returns
        the block action result.
      operationId: PolicyApi_setBlockData
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: uuid
          required: true
          in: path
          description: Block Identifier
          schema:
            example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
            type: string
        - name: timeout
          required: false
          in: query
          description: >-
            Optional engine timeout in milliseconds. Forwarded to
            guardian-service and clamped there to the range 10 ms to 1 hour.
          schema:
            default: 60000
            example: 60000
            type: number
        - name: waitRemotePolicy
          required: false
          in: query
          description: >-
            Optional. Parsed as boolean in the API Gateway. If `true`, waits for
            a response from the remote policy action.
          schema:
            default: true
            example: true
            type: boolean
      requestBody:
        required: true
        description: Data
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Object'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlockDTO'
              example:
                id: f3b2a9c1e4d5678901234567
                blockType: string
                blocks:
                  - {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
        '503':
          description: Block Unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableErrorDTO'
              example:
                statusCode: 503
                message: Error message
      security:
        - bearer: []
      summary: Send data to block by UUID.
      tags:
        - policies
  /policies/{policyId}/mint-requests:
    get:
      description: >-
        Returns paginated mint requests for the specified policy with optional
        filters.
      operationId: PolicyApi_getMintRequests
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: status
          required: false
          in: query
          description: Status filter (error, pending, success)
          schema:
            example: error
            type: string
        - name: target
          required: false
          in: query
          description: Account ID filter
          schema:
            example: 0.0.6046379
            type: string
        - name: vpMessageId
          required: false
          in: query
          description: VP Message ID filter
          schema:
            example: '1775659196.584626142'
            type: string
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: Mint requests.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    amount:
                      type: number
                      description: Amount to mint
                      example: 100
                    tokenId:
                      type: string
                      description: Token identifier
                      example: 0.0.6046500
                    tokenType:
                      type: string
                      enum:
                        - FUNGIBLE
                        - NON_FUNGIBLE
                      description: Token type
                    target:
                      type: string
                      description: Target account
                      example: 0.0.6046379
                    vpMessageId:
                      type: string
                      description: VP message identifier
                      example: '1774449622.177353801'
                    isMintNeeded:
                      type: boolean
                      description: Whether minting is still needed
                    isTransferNeeded:
                      type: boolean
                      description: Whether transfer is needed
                    memo:
                      type: string
                      description: Transaction memo
                    metadata:
                      type: string
                      nullable: true
                      description: Metadata
                    error:
                      type: string
                      nullable: true
                      description: Error message if mint failed
                    processDate:
                      type: string
                      format: date-time
                      nullable: true
                      description: Last process date
                    policyId:
                      type: string
                      description: Associated policy ID
                    owner:
                      type: string
                      nullable: true
                      description: Owner DID
                    id:
                      type: string
                      description: Mint request ID
                    mintedAmount:
                      type: number
                      description: Minted amount from successful transactions
                    mintedExpected:
                      type: number
                      description: Expected total mint amount
                    transferredAmount:
                      type: number
                      description: Transferred amount from successful transactions
                    transferredExpected:
                      type: number
                      description: Expected total transfer amount
                    wasTransferNeeded:
                      type: boolean
                      description: Whether transfer was needed
              example:
                - amount: 100
                  tokenId: 0.0.6046500
                  tokenType: FUNGIBLE
                  target: 0.0.6046379
                  vpMessageId: '1774449622.177353801'
                  isMintNeeded: false
                  isTransferNeeded: false
                  wasTransferNeeded: false
                  memo: f3b2a9c1e4d5678901234567
                  metadata: null
                  error: null
                  processDate: '2026-03-25T14:40:28.853Z'
                  policyId: 69b83f18cd6b7c4adf4139bc
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                  id: 69c3ff9de85d8b6ef99ef870
                - amount: 50
                  tokenId: 0.0.6046500
                  tokenType: NON_FUNGIBLE
                  target: 0.0.6046379
                  vpMessageId: '1774449700.283746192'
                  isMintNeeded: true
                  isTransferNeeded: false
                  wasTransferNeeded: false
                  memo: a1b2c3d4e5f6789012345678
                  metadata: null
                  error: INSUFFICIENT_PAYER_BALANCE
                  processDate: '2026-03-25T15:30:37.191Z'
                  policyId: 69b83f18cd6b7c4adf4139bc
                  owner: >-
                    did:hedera:testnet:EthnLQfQnh8x6vKyegyekhy72oSAok6cH59pfVssKLDw_0.0.8200599
                  id: 69c3ff9de85d8b6ef99ef871
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get mint requests for a policy.
      tags:
        - policies
  /policies/{policyId}/mint/{vpMessageId}/retry:
    post:
      description: >-
        Retries failed mint/transfer operations for the specified VP message
        within the given policy. Fire-and-forget: the endpoint performs
        synchronous validation (policy access, owner check, per-request cooldown
        / in-progress checks) and returns as soon as validation passes; the
        actual Hedera mint/transfer runs in the background. Poll GET
        /policies/{policyId}/mint-requests to observe progress and final state.
      operationId: PolicyApi_retryMint
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: vpMessageId
          required: true
          in: path
          description: VP Message Id
          schema:
            example: '1774449700.283746192'
            type: string
      responses:
        '200':
          description: >-
            Validation passed; retry has been queued (fire-and-forget).
            `warnings` contains any per-request messages surfaced synchronously
            during validation (e.g. cooldown or already-in-progress); an empty
            array means every request was accepted for background processing.
            `message` is set only when no retry was needed because every mint
            request for the VP is already fully minted and transferred.
          content:
            application/json:
              examples:
                queued:
                  summary: Fresh retry accepted and queued
                  value:
                    warnings: []
                cooldown:
                  summary: Request is on cooldown after a recent attempt
                  value:
                    warnings:
                      - >-
                        Mint process for 1776887993.927747137 can't be retried.
                        Try after 6 minutes
                allMinted:
                  summary: No retry needed — every mint request is complete
                  value:
                    warnings: []
                    message: >-
                      All tokens for 1776887993.927747137 are minted and
                      transferred
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: |-
            Forbidden. Only the policy owner can retry mint requests.

            Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Retry mint by VP message ID.
      tags:
        - policies
  /policies/{policyId}/blocks/{uuid}/sync-events:
    post:
      description: >-
        Sends block-specific input to the block identified by `uuid` and returns
        the action result together with sync event metadata. Set `history=true`
        to include the full steps history.
      operationId: PolicyApi_setBlockDataWithSyncEvents
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: uuid
          required: true
          in: path
          description: Block Identifier
          schema:
            example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
            type: string
        - name: history
          required: false
          in: query
          description: History
          schema:
            example: true
            type: boolean
        - name: timeout
          required: false
          in: query
          description: Timeout
          schema:
            default: 60000
            example: 60000
            type: number
        - name: waitRemotePolicy
          required: false
          in: query
          description: Wait for a response from the remote policy
          schema:
            default: true
            example: true
            type: boolean
      requestBody:
        required: true
        description: Data
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Object'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseDTOWithSyncEvents'
              example:
                result: ok
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Block is not supporting set data functions
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
        '503':
          description: Block Unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableErrorDTO'
              example:
                statusCode: 503
                message: Error message
      security:
        - bearer: []
      summary: Send data to block by UUID with sync events.
      tags:
        - policies
  /policies/{policyId}/tag/{tagName}/blocks:
    post:
      description: >-
        Works the same way as `POST /policies/{policyId}/blocks/{uuid}`. The
        difference is that this route identifies the target block by
        **`tagName`** instead of **`uuid`**.
      operationId: PolicyApi_setBlocksByTagName
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: tagName
          required: true
          in: path
          description: Block name (Tag)
          schema:
            example: block-tag
            type: string
        - name: timeout
          required: false
          in: query
          description: >-
            Optional engine timeout in milliseconds. Forwarded to
            guardian-service and clamped there to the range 10 ms to 1 hour.
          schema:
            default: 60000
            example: 60000
            type: number
        - name: waitRemotePolicy
          required: false
          in: query
          description: >-
            Optional. If `true`, waits for a response from the remote policy
            action.
          schema:
            default: true
            example: true
            type: boolean
      requestBody:
        required: true
        description: Data
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Object'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlockDTO'
              example:
                id: f3b2a9c1e4d5678901234567
                blockType: string
                blocks:
                  - {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
        '503':
          description: Block Unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableErrorDTO'
              example:
                statusCode: 503
                message: Error message
      security:
        - bearer: []
      summary: Send data to block by tag name.
      tags:
        - policies
    get:
      description: >-
        Requests block data by tag. Users with permission to execute or manage
        the policy can make this request. The block tag is case-sensitive. Works
        the same way as `GET /policies/{policyId}/blocks/{uuid}`. The only
        difference is that this route identifies the target block by
        **`tagName`** instead of **`uuid`**.
      operationId: PolicyApi_getBlocksByTagName
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: tagName
          required: true
          in: path
          description: Block name (Tag)
          schema:
            example: block-tag
            type: string
        - name: savepointIds
          required: false
          in: query
          description: >-
            Optional. Savepoint ids (JSON array or stringified JSON). Parsed and
            passed with the rest of the query object to the engine.
          schema:
            example: '["69c2cfc021d39e7b6d15e236"]'
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlockDTO'
              example:
                id: f3b2a9c1e4d5678901234567
                blockType: string
                blocks:
                  - {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
        '503':
          description: Block Unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableErrorDTO'
              example:
                statusCode: 503
                message: Error message
      security:
        - bearer: []
      summary: Get block data by tag name.
      tags:
        - policies
  /policies/{policyId}/tag/{tagName}/blocks/sync-events:
    post:
      description: >-
        Works the same way as `POST
        /policies/{policyId}/blocks/{uuid}/sync-events`. The difference is that
        this route identifies the target block by **`tagName`** instead of
        **`uuid`**.
      operationId: PolicyApi_setBlocksByTagNameWithSyncEvents
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: tagName
          required: true
          in: path
          description: Block name (Tag)
          schema:
            example: block-tag
            type: string
        - name: history
          required: false
          in: query
          description: History
          schema:
            example: true
            type: boolean
        - name: timeout
          required: false
          in: query
          description: Timeout
          schema:
            default: 60000
            example: 60000
            type: number
        - name: waitRemotePolicy
          required: false
          in: query
          description: Wait for a response from the remote policy
          schema:
            default: true
            example: true
            type: boolean
      requestBody:
        required: true
        description: Data
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Object'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseDTOWithSyncEvents'
              example:
                result: ok
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
        '503':
          description: Block Unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableErrorDTO'
              example:
                statusCode: 503
                message: Error message
      security:
        - bearer: []
      summary: Send data to block by tag name with sync events.
      tags:
        - policies
  /policies/{policyId}/tag/{tagName}:
    get:
      description: >-
        Resolves the block identified by `tagName` within the policy and returns
        its block UUID as `{ id }`. Users with permission to execute or manage
        the policy can make this request. The block tag is case-sensitive.
      operationId: PolicyApi_getBlockByTagName
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: tagName
          required: true
          in: path
          description: Block name (Tag). Case-sensitive.
          schema:
            example: block-tag
            type: string
      responses:
        '200':
          description: Resolved block identifier.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                required:
                  - id
              example:
                id: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get block UUID by tag name.
      tags:
        - policies
  /policies/{policyId}/blocks/{uuid}/parents:
    get:
      description: >-
        Returns the UUID chain for the specified block, starting with the
        requested block and continuing through its parents up to the root block.
        Users with permission to execute or manage the policy can make this
        request.
      operationId: PolicyApi_getBlockParents
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: uuid
          required: true
          in: path
          description: Block Identifier
          schema:
            example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                  format: uuid
              example:
                - 9ea132db-8394-4f3d-b622-5468458ccb94
                - 4e31d57a-4c68-49a3-bd32-3971df87bc4e
                - ca3f48e7-46e0-4a9a-b808-0a8635950fc3
                - eba62c72-d50d-4deb-92e1-efb320b999d8
                - 4b80c383-2354-47f6-b07d-c5e3b07b8533
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get block parent chain by UUID.
      tags:
        - policies
  /policies/blocks/about:
    get:
      description: >-
        Returns block descriptions. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: PolicyApi_getBlockAbout
      parameters: []
      responses:
        '200':
          description: Block descriptions.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
              example:
                result: ok
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Returns block descriptions.
      tags:
        - policies
  /policies/{policyId}/export/file:
    get:
      description: >-
        Returns a zip file containing the published policy and all associated
        artifacts, i.e. schemas and VCs. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: PolicyApi_getPolicyExportFile
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: ZIP archive containing the exported policy file.
          content:
            application/zip:
              schema:
                type: string
                format: binary
        '401':
          description: Unauthorized request.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: >-
        Return policy and its artifacts in a zip file format for the specified
        policy.
      tags:
        - policies
  /policies/{policyId}/export/message:
    get:
      description: >-
        Returns the Hedera message ID for the specified published policy
        together with related policy metadata: internal `id`, `name`,
        `description`, `version`, and `owner` DID. Only users with the Standard
        Registry role are allowed to make the request.
      operationId: PolicyApi_getPolicyExportMessage
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Hedera message ID and related policy metadata.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: 69c38f81462c9c1141de2df2
                  name:
                    type: string
                    example: CDM AMS-III.AR Policy
                  description:
                    type: string
                    example: >-
                      Substituting fossil fuel-based lighting with LED/CFL
                      lighting systems
                  version:
                    type: string
                    example: '1'
                  messageId:
                    type: string
                    example: '1774427068.001165000'
                  owner:
                    type: string
                    example: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
                required:
                  - id
                  - name
                  - description
                  - version
                  - messageId
                  - owner
              example:
                id: 69c38f81462c9c1141de2df2
                name: CDM AMS-III.AR Policy
                description: >-
                  Substituting fossil fuel-based lighting with LED/CFL lighting
                  systems
                version: '1'
                messageId: '1774427068.001165000'
                owner: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Return Hedera message ID for the specified published policy.
      tags:
        - policies
  /policies/{policyId}/export/xlsx:
    get:
      description: >-
        Returns a xlsx file containing the published policy and all associated
        artifacts, i.e. schemas and VCs. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: PolicyApi_getPolicyExportXlsx
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: ZIP/XLSX binary payload returned as a file download.
          content:
            application/zip:
              schema:
                type: string
                format: binary
        '401':
          description: Unauthorized request.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: >-
        Return policy and its artifacts in a xlsx file format for the specified
        policy.
      tags:
        - policies
  /policies/import/message:
    post:
      description: >-
        Imports a new policy and all associated artifacts into the local DB
        using the provided Hedera topic message ID. `versionOfTopicId` imports
        the policy as a new version of an existing policy topic instead of
        creating a new one. `demo=true` imports the policy in demo mode and
        starts it as a demo policy. `originalTracking=true` stores the imported
        policy original hash/message linkage for later change tracking. Only
        users with the Standard Registry role are allowed to make the request.
      operationId: PolicyApi_importPolicyFromMessage
      parameters:
        - name: versionOfTopicId
          required: false
          in: query
          description: The topic ID of policy version.
          schema:
            example: 0.0.00000001
            type: string
        - name: demo
          required: false
          in: query
          description: Import policy in demo mode.
          schema:
            example: true
            type: boolean
        - name: originalTracking
          required: false
          in: query
          description: Save original state of the policy
          schema:
            example: true
            type: boolean
      requestBody:
        required: true
        description: Message.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportMessageDTO'
      responses:
        '201':
          description: Created policy.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PolicyDTO'
              example:
                - id: f3b2a9c1e4d5678901234567
                  uuid: f3b2a9c1e4d5678901234567
                  name: Policy name
                  description: Description
                  topicDescription: Description
                  policyTag: Tag
                  status: string
                  creator: string
                  owner: string
                  topicId: f3b2a9c1e4d5678901234567
                  messageId: f3b2a9c1e4d5678901234567
                  codeVersion: 1.0.0
                  createDate: string
                  version: 1.0.0
                  originalChanged: true
                  config: {}
                  userRole: Installer
                  userRoles:
                    - Installer
                  userGroup:
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    role: Installer
                    groupLabel: Label
                    groupName: Name
                    active: true
                  userGroups:
                    - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      role: Installer
                      groupLabel: Label
                      groupName: Name
                      active: true
                  policyRoles:
                    - Registrant
                  policyNavigation:
                    - role: Registrant
                      steps:
                        - block: Block tag
                          level: 1
                          name: Step name
                  policyTopics:
                    - name: Project
                      description: Project
                      memoObj: topic
                      static: false
                      type: any
                  policyTokens:
                    - tokenName: Token name
                      tokenSymbol: Token symbol
                      tokenType: non-fungible
                      decimals: ''
                      changeSupply: true
                      enableAdmin: true
                      enableFreeze: true
                      enableKYC: true
                      enableWipe: true
                      templateTokenTag: token_template_0
                  policyGroups:
                    - name: Group name
                      creator: Registrant
                      groupAccessType: Private
                      groupRelationshipType: Multiple
                      members:
                        - Registrant
                  categories:
                    - string
                  projectSchema: string
                  tests:
                    - id: f3b2a9c1e4d5678901234567
                      uuid: f3b2a9c1e4d5678901234567
                      name: Test Name
                      policyId: f3b2a9c1e4d5678901234567
                      owner: string
                      status: string
                      date: string
                      duration: 0
                      progress: 0
                      resultId: f3b2a9c1e4d5678901234567
                      result: {}
                  ignoreRules:
                    - code: string
                      blockType: string
                      property: string
                      contains: string
                      severity: warning
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Import new policy from a Hedera message.
      tags:
        - policies
  /policies/push/import/message:
    post:
      description: >-
        Starts asynchronous import of a new policy and all associated artifacts
        into the local DB using the provided Hedera topic message ID.
        `versionOfTopicId` imports the policy as a new version of an existing
        policy topic instead of creating a new one. `demo=true` imports the
        policy in demo mode and starts it as a demo policy.
        `originalTracking=true` stores the imported policy original hash/message
        linkage for later change tracking. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: PolicyApi_importPolicyFromMessageAsync
      parameters:
        - name: versionOfTopicId
          required: false
          in: query
          description: The topic ID of policy version.
          schema:
            example: 0.0.00000001
            type: string
        - name: demo
          required: false
          in: query
          description: Import policy in demo mode.
          schema:
            example: true
            type: boolean
        - name: originalTracking
          required: false
          in: query
          description: Save original state of the policy
          schema:
            example: true
            type: boolean
      requestBody:
        required: true
        description: Message.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportMessageDTO'
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: 9901fd45-5360-4269-879d-a20332eb8e65
                expectation: 17
                action: Import policy message
                userId: 69c2cfc021d39e7b6d15e236
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Import new policy from a Hedera message asynchronously.
      tags:
        - policies
  /policies/import/message/preview:
    post:
      description: >-
        Previews the policy identified by the provided Hedera topic message ID
        without loading it into the local DB. Only users with the Standard
        Registry role are allowed to make the request.
      operationId: PolicyApi_importMessage
      parameters: []
      requestBody:
        required: true
        description: Message.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportMessageDTO'
      responses:
        '200':
          description: Policy preview.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyPreviewDTO'
              example:
                policy:
                  id: 69aeb71ef8c5b278e3bab4e5
                  uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                  name: Policy name
                  description: Description
                  topicDescription: Description
                  policyTag: Tag
                  status: DRAFT
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                  topicId: 0.0.6046379
                  messageId: '1773670900.819264517'
                  codeVersion: 1.0.0
                  createDate: '2026-03-03T17:25:53.312Z'
                  version: 1.0.0
                  originalChanged: true
                  config: {}
                  userRole: Installer
                  userRoles:
                    - Installer
                  userGroup:
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    role: Installer
                    groupLabel: Label
                    groupName: Name
                    active: true
                  userGroups:
                    - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      role: Installer
                      groupLabel: Label
                      groupName: Name
                      active: true
                  policyRoles:
                    - Registrant
                  policyNavigation:
                    - role: Registrant
                      steps:
                        - block: Block tag
                          level: 1
                          name: Step name
                  policyTopics:
                    - name: Project
                      description: Project
                      memoObj: topic
                      static: false
                      type: any
                  policyTokens:
                    - tokenName: Token name
                      tokenSymbol: Token symbol
                      tokenType: non-fungible
                      decimals: ''
                      changeSupply: true
                      enableAdmin: true
                      enableFreeze: true
                      enableKYC: true
                      enableWipe: true
                      templateTokenTag: token_template_0
                  policyGroups:
                    - name: Group name
                      creator: Registrant
                      groupAccessType: Private
                      groupRelationshipType: Multiple
                      members:
                        - Registrant
                  categories:
                    - string
                  projectSchema: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                  tests:
                    - id: 69aeb71ef8c5b278e3bab4e5
                      uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      name: Test Name
                      policyId: 69aeb71ef8c5b278e3bab4e5
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      status: NEW
                      date: '2026-03-03T17:25:53.312Z'
                      duration: 0
                      progress: 0
                      resultId: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      result: {}
                  ignoreRules:
                    - code: string
                      blockType: string
                      property: string
                      contains: string
                      severity: warning
                messageId: '1773670900.819264517'
                schemas:
                  - {}
                tags:
                  - {}
                moduleTopicId: 0.0.6046379
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Policy preview from IPFS.
      tags:
        - policies
  /policies/push/import/message/preview:
    post:
      description: >-
        Previews the policy identified by the provided Hedera topic message ID
        without loading it into the local DB. Only users with the Standard
        Registry role are allowed to make the request.
      operationId: PolicyApi_importFromMessagePreview
      parameters: []
      requestBody:
        required: true
        description: Message.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportMessageDTO'
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: 9901fd45-5360-4269-879d-a20332eb8e65
                expectation: 4
                action: Preview policy message
                userId: 69c2cfc021d39e7b6d15e236
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Policy preview from IPFS.
      tags:
        - policies
  /policies/import/file:
    post:
      description: >-
        Imports a new policy and all associated artifacts, such as schemas and
        VCs, from the provided ZIP file into the local DB. `versionOfTopicId`
        imports the policy as a new version of an existing policy topic instead
        of creating a new one. `demo=true` imports the policy in demo mode and
        starts it as a demo policy. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: PolicyApi_importPolicyFromFile
      parameters:
        - name: versionOfTopicId
          required: false
          in: query
          description: The topic ID of policy version.
          schema:
            example: 0.0.00000001
            type: string
        - name: demo
          required: false
          in: query
          description: Import policy in demo mode.
          schema:
            example: true
            type: boolean
      requestBody:
        required: true
        description: >-
          Raw ZIP archive bytes containing policy config. Send with
          `Content-Type: binary/octet-stream`.
        content:
          binary/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '201':
          description: Created policy.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PolicyDTO'
              example:
                - id: f3b2a9c1e4d5678901234567
                  uuid: f3b2a9c1e4d5678901234567
                  name: Policy name
                  description: Description
                  topicDescription: Description
                  policyTag: Tag
                  status: string
                  creator: string
                  owner: string
                  topicId: f3b2a9c1e4d5678901234567
                  messageId: f3b2a9c1e4d5678901234567
                  codeVersion: 1.0.0
                  createDate: string
                  version: 1.0.0
                  originalChanged: true
                  config: {}
                  userRole: Installer
                  userRoles:
                    - Installer
                  userGroup:
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    role: Installer
                    groupLabel: Label
                    groupName: Name
                    active: true
                  userGroups:
                    - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      role: Installer
                      groupLabel: Label
                      groupName: Name
                      active: true
                  policyRoles:
                    - Registrant
                  policyNavigation:
                    - role: Registrant
                      steps:
                        - block: Block tag
                          level: 1
                          name: Step name
                  policyTopics:
                    - name: Project
                      description: Project
                      memoObj: topic
                      static: false
                      type: any
                  policyTokens:
                    - tokenName: Token name
                      tokenSymbol: Token symbol
                      tokenType: non-fungible
                      decimals: ''
                      changeSupply: true
                      enableAdmin: true
                      enableFreeze: true
                      enableKYC: true
                      enableWipe: true
                      templateTokenTag: token_template_0
                  policyGroups:
                    - name: Group name
                      creator: Registrant
                      groupAccessType: Private
                      groupRelationshipType: Multiple
                      members:
                        - Registrant
                  categories:
                    - string
                  projectSchema: string
                  tests:
                    - id: f3b2a9c1e4d5678901234567
                      uuid: f3b2a9c1e4d5678901234567
                      name: Test Name
                      policyId: f3b2a9c1e4d5678901234567
                      owner: string
                      status: string
                      date: string
                      duration: 0
                      progress: 0
                      resultId: f3b2a9c1e4d5678901234567
                      result: {}
                  ignoreRules:
                    - code: string
                      blockType: string
                      property: string
                      contains: string
                      severity: warning
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Import new policy from a ZIP file.
      tags:
        - policies
  /policies/import/file-metadata:
    post:
      description: >-
        Imports a new policy and all associated artifacts, such as schemas and
        VCs, from the provided ZIP file into the local DB. `versionOfTopicId`
        imports the policy as a new version of an existing policy topic instead
        of creating a new one. `demo=true` imports the policy in demo mode and
        starts it as a demo policy. The optional `metadata` file is a JSON
        payload used for import settings such as tool message remapping and
        `importRecords`. Only users with the Standard Registry role are allowed
        to make the request.
      operationId: PolicyApi_importPolicyFromFileWithMetadata
      parameters:
        - name: versionOfTopicId
          required: false
          in: query
          description: The topic ID of policy version.
          schema:
            example: 0.0.00000001
            type: string
        - name: demo
          required: false
          in: query
          description: Import policy in demo mode.
          schema:
            example: true
            type: boolean
      requestBody:
        required: true
        description: >-
          Multipart form data with a policy ZIP archive and optional metadata
          JSON file.
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - policyFile
              properties:
                policyFile:
                  type: string
                  format: binary
                  description: Policy archive (ZIP format).
                metadata:
                  type: string
                  format: binary
                  nullable: true
                  description: >-
                    Optional JSON file (for example `metadata.json`) with
                    content like `{ "tools": { "1706867530.884259218":
                    "1774367941.594676930" }, "importRecords": true }`.
      responses:
        '201':
          description: Created policy.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PolicyDTO'
              example:
                - createDate: '2026-03-28T18:27:11.922Z'
                  uuid: e6f6664e-1c89-4fa1-82c6-a8ba8e1b13c9
                  name: CDM AMS-III.AR Policy
                  description: >-
                    Substituting fossil fuel-based lighting with LED/CFL
                    lighting systems
                  status: DRAFT
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417238
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417238
                  policyRoles:
                    - Project Participant
                    - VVB
                  policyGroups: []
                  topicId: 0.0.8417334
                  instanceTopicId: null
                  policyTag: Tag_1774722384863
                  codeVersion: 1.5.1
                  tools:
                    - name: Tool 33_modified
                      version: 1.8.8
                      topicId: 0.0.8417180
                      messageId: '1774721982.046674000'
                    - name: Tool 19_modified
                      version: 1.7.7
                      topicId: 0.0.8417160
                      messageId: '1774721939.774362000'
                    - name: Tool 21_modified
                      version: '3'
                      topicId: 0.0.8417140
                      messageId: '1774721890.353019000'
                    - name: Tool 07_modified
                      version: '7'
                      topicId: 0.0.8360425
                      messageId: '1774367941.594676930'
                  userRoles:
                    - Administrator
                  userGroups: []
                  userRole: Administrator
                  userGroup: null
                  tests: []
                  id: 69c81d7fc778760bac62cf66
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Import new policy from a ZIP file with metadata.
      tags:
        - policies
  /policies/push/import/file:
    post:
      description: >-
        Starts asynchronous import of a new policy and all associated artifacts,
        such as schemas and VCs, from the provided ZIP file into the local DB.
        `versionOfTopicId` imports the policy as a new version of an existing
        policy topic instead of creating a new one. `demo=true` imports the
        policy in demo mode and starts it as a demo policy.
        `originalTracking=true` stores the imported policy original ZIP/hash
        linkage for later change tracking. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: PolicyApi_importPolicyFromFileAsync
      parameters:
        - name: versionOfTopicId
          required: false
          in: query
          description: The topic ID of policy version.
          schema:
            example: 0.0.00000001
            type: string
        - name: demo
          required: false
          in: query
          description: Import policy in demo mode.
          schema:
            example: true
            type: boolean
        - name: originalTracking
          required: false
          in: query
          description: Save original state of the policy
          schema:
            example: true
            type: boolean
      requestBody:
        required: true
        description: >-
          Raw ZIP archive bytes containing policy config. Send with
          `Content-Type: binary/octet-stream`.
        content:
          binary/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: 9901fd45-5360-4269-879d-a20332eb8e65
                expectation: 15
                action: Import policy file
                userId: 69c2cfc021d39e7b6d15e236
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Import new policy from a ZIP file asynchronously.
      tags:
        - policies
  /policies/push/import/file-metadata:
    post:
      description: >-
        Starts asynchronous import of a new policy and all associated artifacts,
        such as schemas and VCs, from the provided ZIP file into the local DB.
        `versionOfTopicId` imports the policy as a new version of an existing
        policy topic instead of creating a new one. `demo=true` imports the
        policy in demo mode and starts it as a demo policy.
        `originalTracking=true` stores the imported policy original ZIP/hash
        linkage for later change tracking. The optional `metadata` file is a
        JSON payload used for import settings such as tool message remapping and
        `importRecords`. Only users with the Standard Registry role are allowed
        to make the request.
      operationId: PolicyApi_importPolicyFromFileWithMetadataAsync
      parameters:
        - name: versionOfTopicId
          required: false
          in: query
          description: The topic ID of policy version.
          schema:
            example: 0.0.00000001
            type: string
        - name: demo
          required: false
          in: query
          description: Import policy in demo mode.
          schema:
            example: true
            type: boolean
        - name: originalTracking
          required: false
          in: query
          description: Save original state of the policy
          schema:
            example: true
            type: boolean
      requestBody:
        required: true
        description: >-
          Multipart form data with a policy ZIP archive and optional metadata
          JSON file.
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - policyFile
              properties:
                policyFile:
                  type: string
                  format: binary
                  description: Policy archive (ZIP format).
                metadata:
                  type: string
                  format: binary
                  nullable: true
                  description: >-
                    Optional JSON file (for example `metadata.json`) with
                    content like `{ "tools": { "1706867530.884259218":
                    "1774367941.594676930" }, "importRecords": true }`.
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: 9901fd45-5360-4269-879d-a20332eb8e65
                expectation: 15
                action: Import policy file
                userId: 69c2cfc021d39e7b6d15e236
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Import new policy from a ZIP file with metadata asynchronously.
      tags:
        - policies
  /policies/import/file/preview:
    post:
      description: >-
        Previews the policy from a zip file without loading it into the local
        DB. Only users with the Standard Registry role are allowed to make the
        request.
      operationId: PolicyApi_importPolicyFromFilePreview
      parameters: []
      requestBody:
        required: true
        description: >-
          Raw ZIP archive bytes containing policy config. Send with
          `Content-Type: binary/octet-stream`.
        content:
          binary/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: Policy preview.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyPreviewDTO'
              example:
                policy:
                  id: 69aeb71ef8c5b278e3bab4e5
                  uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                  name: Policy name
                  description: Description
                  topicDescription: Description
                  policyTag: Tag
                  status: DRAFT
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                  topicId: 0.0.6046379
                  messageId: '1773670900.819264517'
                  codeVersion: 1.0.0
                  createDate: '2026-03-03T17:25:53.312Z'
                  version: 1.0.0
                  originalChanged: true
                  config: {}
                  userRole: Installer
                  userRoles:
                    - Installer
                  userGroup:
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    role: Installer
                    groupLabel: Label
                    groupName: Name
                    active: true
                  userGroups:
                    - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      role: Installer
                      groupLabel: Label
                      groupName: Name
                      active: true
                  policyRoles:
                    - Registrant
                  policyNavigation:
                    - role: Registrant
                      steps:
                        - block: Block tag
                          level: 1
                          name: Step name
                  policyTopics:
                    - name: Project
                      description: Project
                      memoObj: topic
                      static: false
                      type: any
                  policyTokens:
                    - tokenName: Token name
                      tokenSymbol: Token symbol
                      tokenType: non-fungible
                      decimals: ''
                      changeSupply: true
                      enableAdmin: true
                      enableFreeze: true
                      enableKYC: true
                      enableWipe: true
                      templateTokenTag: token_template_0
                  policyGroups:
                    - name: Group name
                      creator: Registrant
                      groupAccessType: Private
                      groupRelationshipType: Multiple
                      members:
                        - Registrant
                  categories:
                    - string
                  projectSchema: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                  tests:
                    - id: 69aeb71ef8c5b278e3bab4e5
                      uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      name: Test Name
                      policyId: 69aeb71ef8c5b278e3bab4e5
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      status: NEW
                      date: '2026-03-03T17:25:53.312Z'
                      duration: 0
                      progress: 0
                      resultId: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      result: {}
                  ignoreRules:
                    - code: string
                      blockType: string
                      property: string
                      contains: string
                      severity: warning
                messageId: '1773670900.819264517'
                schemas:
                  - {}
                tags:
                  - {}
                moduleTopicId: 0.0.6046379
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Policy preview from a zip file.
      tags:
        - policies
  /policies/import/xlsx:
    post:
      description: >-
        Imports new policy and all associated artifacts, such as schemas and
        VCs, from the provided xlsx file into the local DB. Only users with the
        Standard Registry role are allowed to make the request.
      operationId: PolicyApi_importPolicyFromXlsx
      parameters:
        - name: policyId
          required: true
          in: query
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: >-
          Raw XLSX file bytes containing policy config. Send with `Content-Type:
          binary/octet-stream`.
        content:
          binary/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '201':
          description: Import result for the updated policy.
          content:
            application/json:
              schema:
                type: object
                properties:
                  policyId:
                    type: string
                    example: 69aeb71ef8c5b278e3bab4e5
                  errors:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                required:
                  - policyId
                  - errors
              example:
                policyId: 69c38f81462c9c1141de2df2
                errors: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Imports new policy from a xlsx file.
      tags:
        - policies
  /policies/push/import/xlsx:
    post:
      description: >-
        Imports new policy and all associated artifacts, such as schemas and
        VCs, from the provided xlsx file into the local DB. Only users with the
        Standard Registry role are allowed to make the request.
      operationId: PolicyApi_importPolicyFromXlsxAsync
      parameters:
        - name: policyId
          required: true
          in: query
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: schemas
          required: false
          in: query
          description: >-
            Optional comma-separated schema ids used by the async XLSX import
            flow.
          schema:
            example: 69c2cfc021d39e7b6d15e236,69c2cfc021d39e7b6d15e237
            type: string
      requestBody:
        required: true
        description: >-
          Raw XLSX file bytes containing policy config. Send with `Content-Type:
          binary/octet-stream`.
        content:
          binary/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: 9901fd45-5360-4269-879d-a20332eb8e65
                expectation: 15
                action: Import policy file
                userId: 69c2cfc021d39e7b6d15e236
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Imports new policy from a xlsx file.
      tags:
        - policies
  /policies/import/xlsx/preview:
    post:
      description: >-
        Previews the policy from a xlsx file without loading it into the local
        DB. Only users with the Standard Registry role are allowed to make the
        request.
      operationId: PolicyApi_importPolicyFromXlsxPreview
      parameters: []
      requestBody:
        required: true
        description: >-
          Raw XLSX file bytes containing policy config. Send with `Content-Type:
          binary/octet-stream`.
        content:
          binary/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: Preview payload parsed from the XLSX file.
          content:
            application/json:
              schema:
                type: object
                properties:
                  schemas:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  tools:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                  errors:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
              example:
                schemas:
                  - iri: '#60283eee-79a8-46ef-adf3-79775ea1192c'
                    name: Monitoring Report
                    description: Monitoring Report
                    version: ''
                    status: DRAFT
                tools:
                  - uuid: '1706867530.884259218'
                    name: '1706867530.884259218'
                    messageId: '1706867530.884259218'
                    worksheet: Combined Margin. Is gri (tool)
                errors:
                  - type: error
                    text: Failed to parse variables.
                    message: 'Error: G5: Type not found.'
                    worksheet: Monitoring Report
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Policy preview from a xlsx file.
      tags:
        - policies
  /policies/{policyId}/dry-run/users:
    get:
      description: >-
        Returns virtual users for the selected dry-run policy. Optional
        `savepointIds` can be provided as a stringified JSON array to read users
        from a specific savepoint context. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: PolicyApi_getDryRunUsers
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: savepointIds
          required: false
          in: query
          description: >-
            Optional stringified JSON array of savepoint ids used to read users
            from a specific savepoint context.
          schema:
            example: '["69c68bf7fbdb94688e7ef0d4","69c68c51fbdb94688e7ef0f8"]'
            type: string
      responses:
        '200':
          description: >-
            Virtual users for the current dry-run state or the selected
            savepoints.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
              example:
                - active: true
                  did: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                  username: Administrator
                  hederaAccountId: 0.0.6046379
                  id: 69c83b92cebecbe1c023104d
                - active: false
                  did: >-
                    did:hedera:testnet:DoabcYQtNM3kqxAv6DiWadYRF6LYNqGX85ZtZFZibjTA_0.0.8417999
                  username: Virtual User 2
                  hederaAccountId: 0.0.1774730673941
                  id: 69c83db1cebecbe1c0231117
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get dry-run virtual users.
      tags:
        - policies
  /policies/{policyId}/dry-run/user/{did}:
    get:
      description: >-
        Returns a virtual user from the selected dry-run policy by its DID. Only
        users with the Standard Registry role are allowed to make the request.
      operationId: PolicyApi_getDryRunUser
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: did
          required: true
          in: path
          description: Virtual User DID
          schema:
            example: >-
              did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
            type: string
      responses:
        '200':
          description: Virtual user.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
              example:
                createDate: '2026-03-28T20:47:45.739Z'
                updateDate: '2026-03-28T20:47:45.739Z'
                dryRunId: 69c83b44cebecbe1c0231007
                dryRunClass: VirtualUsers
                systemMode: false
                status: NEW
                signature: 0
                option:
                  status: NEW
                hederaStatus: NEW
                uuid: 0ff5fb0d-98dd-4289-8369-6db2b84517f1
                entity: NONE
                iri: 0ff5fb0d-98dd-4289-8369-6db2b84517f1
                readonly: false
                system: false
                active: false
                codeVersion: 1.0.0
                did: >-
                  did:hedera:testnet:6K6LvvNnSQ1RboTi23rsXuH3guur1qUKxWt2zPhPdiNp_0.0.8417999
                username: Virtual User 3
                hederaAccountId: 0.0.1774730865730
                isMintNeeded: true
                isTransferNeeded: false
                wasTransferNeeded: false
                id: 69c83e71cebecbe1c0231182
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: Get dry-run virtual user by DID.
      tags:
        - policies
  /policies/{policyId}/dry-run/user:
    post:
      description: >-
        Creates a new virtual user for the selected dry-run policy and returns
        the created user object. Use `Api-Version: 2`. Optional `savepointIds`
        in the request body scopes creation to a specific savepoint context.
        Only users with the Standard Registry role are allowed to make the
        request.
      operationId: PolicyApi_setDryRunUserV2_2
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: Api-Version
          in: header
          description: >-
            Use "2" for this endpoint (returns the created dry-run virtual user
            object).
          required: true
          schema:
            type: string
            example: '2'
      requestBody:
        required: false
        description: Optional savepoint context for virtual user creation.
        content:
          application/json:
            schema:
              type: object
              properties:
                savepointIds:
                  type: array
                  items:
                    type: string
                  example:
                    - 67c85d2fcebecbe1c0231522
                    - 67c85d35cebecbe1c0231523
      responses:
        '201':
          description: Created virtual user.
          content:
            application/json:
              schema:
                type: object
                required:
                  - username
                  - did
                  - hederaAccountId
                  - active
                properties:
                  username:
                    type: string
                    example: Virtual User 3
                  did:
                    type: string
                    example: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                  hederaAccountId:
                    type: string
                    example: 0.0.1774730865730
                  active:
                    type: boolean
                    example: false
              example:
                username: Virtual User 3
                did: >-
                  did:hedera:testnet:6K6LvvNnSQ1RboTi23rsXuH3guur1qUKxWt2zPhPdiNp_0.0.8417999
                hederaAccountId: 0.0.1774730865730
                active: false
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: Create dry-run virtual user.
      tags:
        - policies
  /policies/{policyId}/dry-run/login:
    post:
      description: >-
        Sets the active dry-run virtual user by DID and returns the updated
        virtual users list. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: PolicyApi_loginDryRunUser
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Virtual user DID to activate.
        content:
          application/json:
            schema:
              type: object
              required:
                - did
              properties:
                did:
                  type: string
                  description: DID of the virtual user to activate.
                  example: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
              example:
                did: >-
                  did:hedera:testnet:9VywBBXBtcV2RW7Whak6aJ9GR7PsKsiJaymAeWnBVvUB_0.0.8417999
      responses:
        '200':
          description: Virtual users for the dry-run policy after the active user change.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
              example:
                - active: false
                  did: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                  username: Administrator
                  hederaAccountId: 0.0.6046379
                  id: 69c83b92cebecbe1c023104d
                - active: true
                  did: >-
                    did:hedera:testnet:9VywBBXBtcV2RW7Whak6aJ9GR7PsKsiJaymAeWnBVvUB_0.0.8417999
                  username: Virtual User 1
                  hederaAccountId: 0.0.1774731899661
                  id: 69c8427bcebecbe1c02311eb
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Change active virtual user.
      tags:
        - policies
  /policies/{policyId}/dry-run/block:
    post:
      description: >-
        Runs the provided block configuration in dry-run mode with the supplied
        event/document payload and returns execution logs, errors, input, and
        output documents. Only users with the Standard Registry role are allowed
        to make the request.
      operationId: PolicyApi_runBlock
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Block configuration and input data to execute in dry-run mode.
        content:
          application/json:
            schema:
              type: object
              properties:
                block:
                  type: object
                  additionalProperties: true
                  description: Serialized block configuration to run in isolation.
                data:
                  type: object
                  properties:
                    input:
                      type: string
                      example: RunEvent
                    output:
                      type: string
                      example: RunEvent
                    type:
                      type: string
                      enum:
                        - schema
                        - json
                        - file
                        - history
                      example: json
                    document:
                      oneOf:
                        - type: string
                        - type: object
                          additionalProperties: true
                  additionalProperties: false
              example:
                block:
                  id: f6c7c294-24a2-4f60-a131-03d023bda7c7
                  blockType: policyRolesBlock
                  defaultActive: true
                  permissions:
                    - NO_ROLE
                  onErrorAction: no-action
                  uiMetaData:
                    title: Registration
                    description: Choose a role
                  roles:
                    - Registrant
                  tag: choose_role
                  children: []
                  events: []
                  artifacts: []
                data:
                  type: json
                  input: RunEvent
                  output: CreateGroup
                  document:
                    role: Registrant
      responses:
        '201':
          description: Dry-run execution result for the requested block.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DebugBlockResultDTO'
              example:
                input:
                  documents:
                    - policyId: 69aeb71ef8c5b278e3bab4e5
                      tag: test
                      hash: ''
                      document:
                        id: urn:uuid:00000000-0000-0000-0000-000000000000
                        type:
                          - VerifiableCredential
                        issuer: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        issuanceDate: '2026-03-03T17:25:53.312Z'
                        '@context':
                          - https://www.w3.org/2018/credentials/v1
                        credentialSubject:
                          - role: Registrant
                        proof:
                          type: Ed25519Signature2018
                          created: '2026-03-03T17:25:53.312Z'
                          verificationMethod: >-
                            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599#did-root-key
                          proofPurpose: assertionMethod
                          jws: ...
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      group: null
                      hederaStatus: NEW
                      signature: 0
                output: []
                errors: []
                logs:
                  - Building...
                  - Done
                  - Running...
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Run a policy block in dry-run mode.
      tags:
        - policies
  /policies/{policyId}/dry-run/block/{tagName}/history:
    get:
      description: >-
        Returns stored dry-run history entries for the specified block tag,
        including recorded document payloads and related metadata. Only users
        with the Standard Registry role are allowed to make the request.
      operationId: PolicyApi_getBlockHistory
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: tagName
          required: true
          in: path
          description: Block tag (e.g. choose_role).
          schema:
            example: choose_role
            type: string
      responses:
        '200':
          description: Array of dry-run document records for the block tag.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
              example:
                - createDate: '2026-03-29T06:49:28.919Z'
                  updateDate: '2026-03-29T06:49:28.929Z'
                  dryRunId: 69c83b44cebecbe1c0231007
                  dryRunClass: VcDocumentCollection
                  systemMode: false
                  owner: >-
                    did:hedera:testnet:8d2RiS1SmDUnHdmFZHc8NvaU3WqKMrdsorE6aRHzLpij_0.0.8417999
                  hash: FJDt4cKy7t8MdGg9b7U2RB29N4Rk3kUUBFSTT6RuQMR4
                  document:
                    id: urn:uuid:d7c5e170-a1fe-4e85-b280-ff2c697104ad
                    type:
                      - VerifiableCredential
                    issuer: >-
                      did:hedera:testnet:8d2RiS1SmDUnHdmFZHc8NvaU3WqKMrdsorE6aRHzLpij_0.0.8417999
                    issuanceDate: '2026-03-29T06:49:28.123Z'
                    '@context':
                      - https://www.w3.org/2018/credentials/v1
                      - >-
                        ipfs://bafkreib2ey4mdnzp7gkgj5ecldu2a46ulkwzvnwzec3xjpsubcwua6rwce
                    credentialSubject:
                      - role: Registrant
                        userId: >-
                          did:hedera:testnet:8d2RiS1SmDUnHdmFZHc8NvaU3WqKMrdsorE6aRHzLpij_0.0.8417999
                        policyId: 69c83b44cebecbe1c0231007
                        groupOwner: >-
                          did:hedera:testnet:8d2RiS1SmDUnHdmFZHc8NvaU3WqKMrdsorE6aRHzLpij_0.0.8417999
                        groupName: Registrant
                        '@context':
                          - >-
                            ipfs://bafkreib2ey4mdnzp7gkgj5ecldu2a46ulkwzvnwzec3xjpsubcwua6rwce
                        id: urn:uuid:d7c5e170-a1fe-4e85-b280-ff2c697104ad
                        type: UserRole&1.0.0
                    proof:
                      type: Ed25519Signature2018
                      created: '2026-03-29T06:49:28Z'
                      verificationMethod: >-
                        did:hedera:testnet:8d2RiS1SmDUnHdmFZHc8NvaU3WqKMrdsorE6aRHzLpij_0.0.8417999#did-root-key
                      proofPurpose: assertionMethod
                      jws: >-
                        eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..0AG-g08EnArujEU_Q5D0dJH19rlprc0fKGiIoG3FKGNuBzlT8Ro-Oj9G10njLdHnnHGxsyrm4sR_GrxvtS78Cw
                  documentFileId: 69c8cb78bc0d9cc64682b7d4
                  status: NEW
                  signature: 0
                  type: user-role
                  policyId: 69c83b44cebecbe1c0231007
                  tag: choose_role
                  messageId: '1774.766968878'
                  topicId: 0.0.1774730127150
                  relationships: null
                  option:
                    status: NEW
                  hederaStatus: NEW
                  schema: '#UserRole&1.0.0'
                  uuid: 4fa46122-c52a-45b4-983c-84c7d0be64d9
                  entity: NONE
                  iri: 4fa46122-c52a-45b4-983c-84c7d0be64d9
                  readonly: false
                  system: false
                  active: false
                  codeVersion: 1.0.0
                  group: null
                  isMintNeeded: true
                  isTransferNeeded: false
                  wasTransferNeeded: false
                  relayerAccount: null
                  tableFileIds: []
                  id: 69c8cb78bc0d9cc64682b7d1
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: List dry-run history records for a block tag.
      tags:
        - policies
  /policies/{policyId}/savepoints:
    get:
      description: Returns the list of savepoints for the policy (Dry Run only).
      operationId: PolicyApi_getSavepoints
      parameters:
        - name: policyId
          required: true
          in: path
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: List of dry-run savepoints.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
              example:
                items:
                  - createDate: '2026-03-29T06:57:06.670Z'
                    updateDate: '2026-03-29T06:57:06.670Z'
                    policyId: 69c83b44cebecbe1c0231007
                    name: Third (last) savepoint
                    parentSavepointId: 69c8cd3a81910b160912c315
                    savepointPath:
                      - 69c8cd3481910b160912c300
                      - 69c8cd3a81910b160912c315
                      - 69c8cd4281910b160912c328
                    isDeleted: false
                    isCurrent: true
                    id: 69c8cd4281910b160912c328
                  - createDate: '2026-03-29T06:56:58.465Z'
                    updateDate: '2026-03-29T06:56:58.465Z'
                    policyId: 69c83b44cebecbe1c0231007
                    name: Second savepoint
                    parentSavepointId: 69c8cd3481910b160912c300
                    savepointPath:
                      - 69c8cd3481910b160912c300
                      - 69c8cd3a81910b160912c315
                    isDeleted: false
                    isCurrent: false
                    id: 69c8cd3a81910b160912c315
                  - createDate: '2026-03-29T06:56:52.583Z'
                    updateDate: '2026-03-29T06:56:52.583Z'
                    policyId: 69c83b44cebecbe1c0231007
                    name: First savepoint
                    parentSavepointId: null
                    savepointPath:
                      - 69c8cd3481910b160912c300
                    isDeleted: false
                    isCurrent: false
                    id: 69c8cd3481910b160912c300
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: |-
            Policy is not in Dry Run mode.

            Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get dry-run savepoints.
      tags:
        - policies
    post:
      description: >-
        Creates a new savepoint for the policy (Dry Run only). Returns `{
        savepoint }` with the created record (same shape as items in GET
        /savepoints).
      operationId: PolicyApi_createSavepoint
      parameters:
        - name: policyId
          required: true
          in: path
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Savepoint creation payload.
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  example: Before publishing changes
                savepointPath:
                  type: array
                  items:
                    type: string
                  example:
                    - root-block
                    - sub-block
              required:
                - name
                - savepointPath
      responses:
        '200':
          description: 'Response includes `savepoint`: the created dry-run savepoint record.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  savepoint:
                    type: object
                    additionalProperties: true
              example:
                savepoint:
                  createDate: '2026-03-29T06:59:01.000Z'
                  updateDate: '2026-03-29T06:59:01.000Z'
                  policyId: 69c83b44cebecbe1c0231007
                  name: Third (last) savepoint
                  parentSavepointId: 69c8cd3a81910b160912c315
                  savepointPath:
                    - 69c8cd3481910b160912c300
                    - 69c8cd3a81910b160912c315
                    - 69c8cd4281910b160912c328
                  isDeleted: false
                  isCurrent: true
                  id: 69c8cd5081910b160912c33a
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: |-
            Policy is not in Dry Run mode.

            Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Create dry-run savepoint.
      tags:
        - policies
  /policies/{policyId}/savepoints/count:
    get:
      description: Returns the number of savepoints for the policy (Dry Run only).
      operationId: PolicyApi_getSavepointsCount
      parameters:
        - name: policyId
          required: true
          in: path
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: includeDeleted
          required: false
          in: query
          description: Include deleted savepoints in count
          schema:
            example: false
            type: boolean
      responses:
        '200':
          description: Dry-run savepoints count.
          content:
            application/json:
              schema:
                type: number
                example:
                  count: 5
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: |-
            Policy is not in Dry Run mode.

            Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get dry-run savepoints count.
      tags:
        - policies
  /policies/{policyId}/savepoints/{savepointId}:
    put:
      description: >-
        Restores Dry Run state to the selected savepoint. Returns `{ savepoint
        }` with the updated savepoint record (same shape as POST /savepoints).
      operationId: PolicyApi_selectSavepoint
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy identifier.
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: savepointId
          required: true
          in: path
          description: Savepoint id to apply.
          schema:
            example: 69b8115f3dc0fa022156fb89
            type: string
      responses:
        '200':
          description: >-
            Response includes `savepoint`: the applied dry-run savepoint record
            after restore.
          content:
            application/json:
              schema:
                type: object
                properties:
                  savepoint:
                    type: object
                    additionalProperties: true
              example:
                savepoint:
                  createDate: '2026-03-29T06:59:01.000Z'
                  updateDate: '2026-03-29T06:59:01.000Z'
                  policyId: 69c83b44cebecbe1c0231007
                  name: Third (last) savepoint
                  parentSavepointId: 69c8cd3a81910b160912c315
                  savepointPath:
                    - 69c8cd3481910b160912c300
                    - 69c8cd3a81910b160912c315
                    - 69c8cd4281910b160912c328
                  isDeleted: false
                  isCurrent: true
                  id: 69c8cd5081910b160912c33a
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: |-
            Policy is not in Dry Run mode.

            Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Apply savepoint
      tags:
        - policies
    patch:
      description: Updates the name of a Dry Run savepoint for the policy.
      operationId: PolicyApi_renameSavepoint
      parameters:
        - name: policyId
          required: true
          in: path
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: savepointId
          required: true
          in: path
          schema:
            example: 69b8115f3dc0fa022156fb89
            type: string
      requestBody:
        required: true
        description: Savepoint rename payload.
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  example: Updated checkpoint name
              required:
                - name
      responses:
        '200':
          description: Updated savepoint metadata.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
              example:
                savepoint:
                  createDate: '2026-03-29T06:59:01.000Z'
                  updateDate: '2026-03-29T06:59:01.000Z'
                  policyId: 69c83b44cebecbe1c0231007
                  name: Third (last) savepoint
                  parentSavepointId: 69c8cd3a81910b160912c315
                  savepointPath:
                    - 69c8cd3481910b160912c300
                    - 69c8cd3a81910b160912c315
                    - 69c8cd4281910b160912c328
                  isDeleted: false
                  isCurrent: true
                  id: 69c8cd5081910b160912c33a
        '400':
          description: Name is required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorDTO'
              example:
                statusCode: 400
                message: Name is required.
                error: Bad Request
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: |-
            Policy is not in Dry Run mode.

            Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Rename dry-run savepoint.
      tags:
        - policies
  /policies/{policyId}/savepoints/delete:
    post:
      description: >-
        Deletes the specified savepoints for the policy (Dry Run only). When the
        policy has more than one savepoint and `skipCurrentSavepointGuard` is
        `false`, the current savepoint cannot be deleted and the request fails.
        When `skipCurrentSavepointGuard` is `true`, that guard is bypassed; the
        UI uses this mode for "delete all savepoints". Leaf savepoints are
        hard-deleted, while savepoints with children are marked as deleted.
      operationId: PolicyApi_deleteSavepoints
      parameters:
        - name: policyId
          required: true
          in: path
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteSavepointsDTO'
      responses:
        '200':
          description: >-
            Deletion result. `hardDeletedIds` contains only savepoints that were
            hard-deleted. This array can be empty when the request causes only
            soft deletes (for example, deleting savepoints that still have
            children). If the current savepoint is included while the guard is
            enforced, the request fails instead of returning an empty result.
          content:
            application/json:
              schema:
                type: object
                properties:
                  hardDeletedIds:
                    type: array
                    items:
                      type: string
              examples:
                skipCurrentSavepointGuardFalse:
                  summary: Current savepoint guard enforced
                  value:
                    hardDeletedIds: []
                skipCurrentSavepointGuardTrue:
                  summary: Current savepoint guard skipped
                  value:
                    hardDeletedIds:
                      - 69c8d45081910b160912c4a8
                      - 69c8d44d81910b160912c49b
                      - 69c8d40281910b160912c480
                      - 69c8d40081910b160912c473
                      - 69c8d3fd81910b160912c466
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: |-
            Policy is not in Dry Run mode.

            Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Delete dry-run savepoints.
      tags:
        - policies
  /policies/{policyId}/dry-run/restart:
    post:
      description: >-
        Clear dry-run state. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: PolicyApi_restartDryRun
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Dry-run state restart result.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
              example:
                - createDate: '2026-03-29T08:22:18.508Z'
                  uuid: eaee9611-4f1a-44e4-93f0-7fc7c81d9b9f
                  name: CDM AMS-III.AR Policy
                  version: Dry Run
                  description: >-
                    Substituting fossil fuel-based lighting with LED/CFL
                    lighting systems
                  status: DRY-RUN
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                  topicId: 0.0.8425763
                  policyTag: Tag_1774772501756
                  codeVersion: 1.5.1
                  id: 69c8e13a81910b160912c709
                - createDate: '2026-03-29T08:22:19.897Z'
                  uuid: de1b156b-26fd-48d2-b7f3-b237bde9e2d3
                  name: CDM AMS-II.J Policy
                  version: Dry Run
                  description: Demand-Side Activities for Efficient Lighting Technologies
                  status: DRY-RUN
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                  topicId: 0.0.8425767
                  policyTag: Tag_1774772516671
                  codeVersion: 1.5.1
                  id: 69c8e13b81910b160912c74a
                - createDate: '2026-03-29T08:24:59.784Z'
                  uuid: f934eef5-59c7-4cab-b997-1be01d478084
                  name: CDM AMS-III.BB
                  description: CDM AMS-III.BB. policy
                  status: DRAFT
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                  topicId: 0.0.8425809
                  policyTag: Tag_1774772670088
                  codeVersion: 1.5.1
                  id: 69c8e1db81910b160912c8ca
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: |-
            Policy is not in Dry Run mode.

            Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Clear dry-run state.
      tags:
        - policies
  /policies/{policyId}/dry-run/transactions:
    get:
      description: >-
        Returns virtual Hedera transactions generated during the policy dry-run.
        Only users with the Standard Registry role are allowed to make the
        request.
      operationId: PolicyApi_getDryRunTransactions
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: Transactions.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
              example:
                - createDate: '2026-03-29T08:37:56.615Z'
                  type: TopicMessageSubmitTransaction
                  hederaAccountId: 0.0.1774773370443
                  id: 69c8e4e481910b160912c8f1
                - createDate: '2026-03-29T08:37:53.627Z'
                  type: TopicMessageSubmitTransaction
                  hederaAccountId: 0.0.1774773370443
                  id: 69c8e4e181910b160912c8f0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get dry-run transactions.
      tags:
        - policies
  /policies/{policyId}/dry-run/artifacts:
    get:
      description: >-
        Returns dry-run artifacts/documents generated for the policy. Only users
        with the Standard Registry role are allowed to make the request.
      operationId: PolicyApi_getDryRunArtifacts
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: Artifacts.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
              example:
                - createDate: '2026-03-29T08:37:56.683Z'
                  updateDate: '2026-03-29T08:37:56.694Z'
                  dryRunId: 69c8e13b81910b160912c74a
                  dryRunClass: VcDocumentCollection
                  systemMode: false
                  owner: >-
                    did:hedera:testnet:CeNjDpdEQUizTejk8FhX9uzyTg3zUjp2GCk23NsETJPG_0.0.8417999
                  hash: J1jAp7nAXQvV1qsZ4dAg64w6rYFt3AXBnRb6c94WgnxL
                  document: {}
                  documentFileId: 69c8e4e43dcb07295bf82382
                  documentFields: []
                  status: NEW
                  signature: 0
                  type: project
                  policyId: 69c8e13b81910b160912c74a
                  tag: save_project
                  messageId: '1774.773476613'
                  startMessageId: '1774.773476613'
                  topicId: 0.0.1774773413061
                  relationships: []
                  option: {}
                  hederaStatus: ISSUE
                  schema: '#f69fb091-6a2c-4883-87fb-b571f32d0459'
                  accounts: {}
                  tokens: null
                  uuid: 01372cfa-5e92-44c2-8c26-a87f832f5255
                  entity: NONE
                  iri: 01372cfa-5e92-44c2-8c26-a87f832f5255
                  readonly: false
                  system: false
                  active: false
                  codeVersion: 1.0.0
                  group: 00546354-dc9b-4d68-9d02-e58e62a9c7be
                  messageHash: CRxH77p9bmY9rxmKG38ja8KHDnpw9Vzb9ti163uZjW3U
                  messageIds: []
                  isMintNeeded: true
                  isTransferNeeded: false
                  wasTransferNeeded: false
                  edited: false
                  relayerAccount: 0.0.1774773370443
                  tableFileIds: []
                  id: 69c8e4e43dcb07295bf8237f
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get dry-run artifacts.
      tags:
        - policies
  /policies/{policyId}/dry-run/ipfs:
    get:
      description: >-
        Returns IPFS file records generated during the policy dry-run. Only
        users with the Standard Registry role are allowed to make the request.
      operationId: PolicyApi_getDryRunIpfs
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 20
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: Files.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
              example:
                - createDate: '2026-03-29T08:22:32.046Z'
                  documentURL: 66a64d1c-6c20-4465-bf00-0f28d1379acc
                  id: 69c8e14881910b160912c786
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get dry-run IPFS files.
      tags:
        - policies
  /policies/{policyId}/dry-run/mock/config:
    get:
      description: >-
        Returns the current mock configuration for the policy's dry-run session,
        including the master enabled flag and the per-block enable/disable map.
      operationId: PolicyApi_getMockConfig
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Config
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MockConfigDTO'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: Get Mock Configuration.
      tags:
        - policies
    post:
      description: >-
        Updates the mock configuration — master toggle and/or per-block
        overrides.
      operationId: PolicyApi_setMockConfig
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Config
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MockConfigDTO'
      responses:
        '200':
          description: Config
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MockConfigDTO'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: Update Mock Configuration.
      tags:
        - policies
  /policies/{policyId}/dry-run/mock/data:
    get:
      description: >-
        Returns all currently stored mock entries (IPFS, Topics, Tokens, and
        API) for this policy.
      operationId: PolicyApi_getMockData
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Config
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MockDataDTO'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: Get Stored Mock Data.
      tags:
        - policies
    post:
      description: >-
        Saves (creates or updates) mock data entries. The request body follows
        the same schema as the GET response above. Existing entries for the same
        key are overwritten; all other existing entries are preserved.
      operationId: PolicyApi_updateMockData
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Data
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MockDataDTO'
      responses:
        '200':
          description: Data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MockDataDTO'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: Save Mock Data.
      tags:
        - policies
  /policies/{policyId}/dry-run/mock/import:
    post:
      description: >-
        Imports mock data from a previously exported `.mock` file and merges it
        into the current mock dataset.
      operationId: PolicyApi_importMock
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: A zip file containing Mock to be imported.
        content:
          application/json:
            schema:
              type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: Import Mock Data.
      tags:
        - policies
  /policies/{policyId}/dry-run/mock/export:
    get:
      description: >-
        Exports all stored mock data as a downloadable compressed '.mock' file
        (zip), which contains separate files for each data type. The response is
        streamed with 'Content-Disposition: attachment'.
      operationId: PolicyApi_exportFormula
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation. Response zip file.
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: Export Mock Data.
      tags:
        - policies
  /policies/{policyId}/dry-run/mock/request/api:
    post:
      description: >-
        Triggers a mocked external API call on behalf of a policy block whose
        logic executes on the 'frontend' (client-side code blocks). The server
        resolves the request against the stored API mock entries and returns the
        configured response.
      operationId: PolicyApi_mockApiRequest
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Config
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MockApiRequestDTO'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: Execute API Mock Request (Frontend Blocks).
      tags:
        - policies
  /policies/{policyId}/dry-run/mock/request/ipfs:
    post:
      description: >-
        Triggers a mocked IPFS file retrieval on behalf of a policy block whose
        logic executes on the 'frontend'. The server resolves the CID against
        the stored IPFS mock entries and returns the configured payload.
      operationId: PolicyApi_mockIpfsRequest
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Config
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MockIpfsRequestDTO'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: string
                format: binary
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: Execute IPFS Mock Request (Frontend Blocks).
      tags:
        - policies
  /policies/{policyId}/multiple:
    get:
      description: >-
        Returns the current multi-policy link settings for the policy. Users
        with permission to execute or manage the policy can make this request.
      operationId: PolicyApi_getMultiplePolicies
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
              examples:
                beforeCreate:
                  summary: Before multi-policy creation
                  value:
                    uuid: null
                    instanceTopicId: 0.0.8425949
                    mainPolicyTopicId: 0.0.8425949
                    synchronizationTopicId: 0.0.8425951
                    owner: >-
                      did:hedera:testnet:2Tak8KVd1K33DWvDFqmKVaihNfzvfGEYehXr3UZ1dGHV_0.0.8417999
                    type: null
                mainPolicy:
                  summary: Main policy link
                  value:
                    createDate: '2026-03-29T09:02:23.828Z'
                    updateDate: '2026-03-29T09:02:23.828Z'
                    uuid: 1f847dbc-c9ef-41e7-a453-558f3b368aca
                    instanceTopicId: 0.0.8425949
                    mainPolicyTopicId: 0.0.8425949
                    synchronizationTopicId: 0.0.8425951
                    owner: >-
                      did:hedera:testnet:2Tak8KVd1K33DWvDFqmKVaihNfzvfGEYehXr3UZ1dGHV_0.0.8417999
                    type: Main
                    user: 0.0.6046457
                    policyOwner: 0.0.6046379
                    id: 69c8ea9881910b160912cf0e
                subPolicy:
                  summary: Sub-policy link
                  value:
                    createDate: '2026-03-29T09:03:53.348Z'
                    updateDate: '2026-03-29T09:03:53.348Z'
                    uuid: dd200ad1-a8c5-4fb8-99da-dadf6d0004d7
                    instanceTopicId: 0.0.8425980
                    mainPolicyTopicId: 0.0.8425949
                    synchronizationTopicId: 0.0.8425951
                    owner: >-
                      did:hedera:testnet:2Tak8KVd1K33DWvDFqmKVaihNfzvfGEYehXr3UZ1dGHV_0.0.8417999
                    type: Sub
                    user: 0.0.6046457
                    policyOwner: 0.0.6046379
                    id: 69c8eaf681910b160912cf13
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get multi-policy link.
      tags:
        - policies
    post:
      description: >-
        Creates or updates the multi-policy link for the current policy. For a
        main policy, call GET /policies/{policyId}/multiple and reuse the
        returned mainPolicyTopicId and synchronizationTopicId. For a sub-policy,
        use the link generated by the main policy owner; it contains both
        mainPolicyTopicId and synchronizationTopicId. Users with permission to
        execute or manage the policy can make this request.
      operationId: PolicyApi_setMultiplePolicies
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: >-
          Multi-policy link payload. For a main policy, take mainPolicyTopicId
          and synchronizationTopicId from GET /policies/{policyId}/multiple. For
          a sub-policy, use the values from the link shared by the main policy
          owner.
        content:
          application/json:
            schema:
              type: object
              required:
                - mainPolicyTopicId
                - synchronizationTopicId
              properties:
                mainPolicyTopicId:
                  type: string
                  description: Topic ID of the main policy.
                synchronizationTopicId:
                  type: string
                  description: Synchronization topic ID shared between linked policies.
            examples:
              default:
                summary: Create or join a multi-policy link
                value:
                  mainPolicyTopicId: 0.0.8425949
                  synchronizationTopicId: 0.0.8425951
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
              examples:
                mainPolicy:
                  summary: Main policy link
                  value:
                    createDate: '2026-03-29T09:02:23.828Z'
                    updateDate: '2026-03-29T09:02:23.828Z'
                    uuid: 1f847dbc-c9ef-41e7-a453-558f3b368aca
                    instanceTopicId: 0.0.8425949
                    mainPolicyTopicId: 0.0.8425949
                    synchronizationTopicId: 0.0.8425951
                    owner: >-
                      did:hedera:testnet:2Tak8KVd1K33DWvDFqmKVaihNfzvfGEYehXr3UZ1dGHV_0.0.8417999
                    type: Main
                    user: 0.0.6046457
                    policyOwner: 0.0.6046379
                    id: 69c8ea9881910b160912cf0e
                subPolicy:
                  summary: Sub-policy link
                  value:
                    createDate: '2026-03-29T09:03:53.348Z'
                    updateDate: '2026-03-29T09:03:53.348Z'
                    uuid: dd200ad1-a8c5-4fb8-99da-dadf6d0004d7
                    instanceTopicId: 0.0.8425980
                    mainPolicyTopicId: 0.0.8425949
                    synchronizationTopicId: 0.0.8425951
                    owner: >-
                      did:hedera:testnet:2Tak8KVd1K33DWvDFqmKVaihNfzvfGEYehXr3UZ1dGHV_0.0.8417999
                    type: Sub
                    user: 0.0.6046457
                    policyOwner: 0.0.6046379
                    id: 69c8eaf681910b160912cf13
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Create or update multi-policy link.
      tags:
        - policies
  /policies/{policyId}/test:
    post:
      description: >-
        Add policy test.  Only users with the Standard Registry role are allowed
        to make the request.
      operationId: PolicyApi_addPolicyTest
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: >-
          Multipart form data with one or more policy test files. Typically
          files are uploaded in the `tests` field; the route processes all
          received uploaded files.
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - tests
              properties:
                tests:
                  type: array
                  items:
                    type: string
                    format: binary
                  description: One or more uploaded test files.
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PolicyTestDTO'
              example:
                - createDate: '2026-03-29T09:24:23.762Z'
                  updateDate: '2026-03-29T09:24:23.762Z'
                  uuid: 12164c83-3f6e-4135-b6e8-186bed0cb502
                  name: CDM_AMS_III
                  policyId: 69c8efa181910b160912d0f4
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                  status: New
                  date: null
                  result: null
                  resultId: null
                  progress: 0
                  error: null
                  duration: 57359
                  file: 69c8efc781910b160912d165
                  id: 69c8efc781910b160912d167
        '400':
          description: Bad request (e.g. no files to upload).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorDTO'
              example:
                statusCode: 400
                message: There are no files to upload
                error: Bad Request
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Add policy test.
      tags:
        - policies
  /policies/{policyId}/test/{testId}:
    get:
      description: >-
        Get policy test.  Only users with the Standard Registry role are allowed
        to make the request.
      operationId: PolicyApi_getPolicyTest
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: testId
          required: true
          in: path
          description: Test Id
          schema:
            example: 69b8115f3dc0fa022156fb89
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyTestDTO'
              example:
                createDate: '2026-03-29T09:24:23.762Z'
                updateDate: '2026-03-29T09:27:29.815Z'
                uuid: 12164c83-3f6e-4135-b6e8-186bed0cb502
                name: CDM_AMS_III
                policyId: 69c8efa181910b160912d0f4
                owner: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                status: Failure
                date: '2026-03-29T09:26:29.897Z'
                result:
                  info:
                    documents: 5
                    tokens: 0
                  total: 83
                  details:
                    documents: []
                    recorded: []
                  documents: []
                resultId: null
                progress: null
                error: null
                duration: 57359
                file: 69c8efc781910b160912d165
                id: 69c8efc781910b160912d167
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get policy test.
      tags:
        - policies
    delete:
      description: >-
        Delete policy test.  Only users with the Standard Registry role are
        allowed to make the request.
      operationId: PolicyApi_deletePolicyTest
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: testId
          required: true
          in: path
          description: Test Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Delete policy test.
      tags:
        - policies
  /policies/{policyId}/test/{testId}/start:
    post:
      description: >-
        Start policy test.  Only users with the Standard Registry role are
        allowed to make the request.
      operationId: PolicyApi_startPolicyTest
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: testId
          required: true
          in: path
          description: Test Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyTestDTO'
              example:
                createDate: '2026-03-29T09:24:23.762Z'
                updateDate: '2026-03-29T09:24:23.762Z'
                uuid: 12164c83-3f6e-4135-b6e8-186bed0cb502
                name: CDM_AMS_III
                policyId: 69c8efa181910b160912d0f4
                owner: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                status: Running
                date: '2026-03-29T09:26:29.897Z'
                result: null
                resultId: 96374bd4-5ab4-4993-8e66-c192eb79204f
                progress: 0
                error: null
                duration: 57359
                file: 69c8efc781910b160912d165
                id: 69c8efc781910b160912d167
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Start policy test.
      tags:
        - policies
  /policies/{policyId}/test/{testId}/stop:
    post:
      description: >-
        Stop policy test.  Only users with the Standard Registry role are
        allowed to make the request.
      operationId: PolicyApi_stopPolicyTest
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: testId
          required: true
          in: path
          description: Test Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyTestDTO'
              example:
                createDate: '2026-03-29T09:24:23.762Z'
                updateDate: '2026-03-29T09:24:23.762Z'
                uuid: 12164c83-3f6e-4135-b6e8-186bed0cb502
                name: CDM_AMS_III
                policyId: 69c8efa181910b160912d0f4
                owner: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                status: Stopped
                date: '2026-03-29T09:26:29.897Z'
                result: null
                resultId: null
                progress: 0
                error: null
                duration: 57359
                file: 69c8efc781910b160912d165
                id: 69c8efc781910b160912d167
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Stop policy test.
      tags:
        - policies
  /policies/{policyId}/test/{testId}/details:
    get:
      description: >-
        Get test details. In the UI, this data is available from the policy grid
        by opening the tests dialog for a policy.  Only users with the Standard
        Registry role are allowed to make the request.
      operationId: PolicyApi_getTestDetails
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: testId
          required: true
          in: path
          description: Test Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RunningDetailsDTO'
              example:
                left: {}
                right: {}
                total: 83
                documents:
                  columns: []
                  report: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get test details.
      tags:
        - policies
  /policies/methodologies/categories:
    get:
      description: >-
        Returns all available methodology categories that can be used to filter
        methodology / policy templates in the library.
      operationId: PolicyApi_getPolicyCategoriesAsync
      parameters: []
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PolicyCategoryDTO'
              example:
                - id: f3b2a9c1e4d5678901234567
                  name: Large-Scale
                  type: PROJECT_SCALE
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      summary: Get methodology categories.
      tags:
        - policies
  /policies/methodologies/search:
    post:
      description: >-
        Returns methodology / policy templates filtered by category IDs and
        optional free-text search. Use this endpoint to search the methodology
        library by selected categories, text query, or both.
      operationId: PolicyApi_getPoliciesByCategory
      parameters: []
      requestBody:
        required: true
        description: Filters
        content:
          application/json:
            schema:
              type: object
              properties:
                categoryIds:
                  type: array
                  items:
                    type: string
                  description: Optional methodology category IDs to filter by.
                text:
                  type: string
                  description: Optional free-text search query.
            examples:
              Filter1:
                value:
                  categoryIds:
                    - 69aeb71ef8c5b278e3bab4e5
                    - 69b8115f3dc0fa022156fb89
                  text: CDM
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PolicyDTO'
              example:
                - id: f3b2a9c1e4d5678901234567
                  uuid: f3b2a9c1e4d5678901234567
                  name: Policy name
                  description: Description
                  topicDescription: Description
                  policyTag: Tag
                  status: string
                  creator: string
                  owner: string
                  topicId: f3b2a9c1e4d5678901234567
                  messageId: f3b2a9c1e4d5678901234567
                  codeVersion: 1.0.0
                  createDate: string
                  version: 1.0.0
                  originalChanged: true
                  config: {}
                  userRole: Installer
                  userRoles:
                    - Installer
                  userGroup:
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    role: Installer
                    groupLabel: Label
                    groupName: Name
                    active: true
                  userGroups:
                    - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      role: Installer
                      groupLabel: Label
                      groupName: Name
                      active: true
                  policyRoles:
                    - Registrant
                  policyNavigation:
                    - role: Registrant
                      steps:
                        - block: Block tag
                          level: 1
                          name: Step name
                  policyTopics:
                    - name: Project
                      description: Project
                      memoObj: topic
                      static: false
                      type: any
                  policyTokens:
                    - tokenName: Token name
                      tokenSymbol: Token symbol
                      tokenType: non-fungible
                      decimals: ''
                      changeSupply: true
                      enableAdmin: true
                      enableFreeze: true
                      enableKYC: true
                      enableWipe: true
                      templateTokenTag: token_template_0
                  policyGroups:
                    - name: Group name
                      creator: Registrant
                      groupAccessType: Private
                      groupRelationshipType: Multiple
                      members:
                        - Registrant
                  categories:
                    - string
                  projectSchema: string
                  tests:
                    - id: f3b2a9c1e4d5678901234567
                      uuid: f3b2a9c1e4d5678901234567
                      name: Test Name
                      policyId: f3b2a9c1e4d5678901234567
                      owner: string
                      status: string
                      date: string
                      duration: 0
                      progress: 0
                      resultId: f3b2a9c1e4d5678901234567
                      result: {}
                  ignoreRules:
                    - code: string
                      blockType: string
                      property: string
                      contains: string
                      severity: warning
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      summary: Search methodologies by categories and text.
      tags:
        - policies
  /policies/{policyId}/create-new-version-vc-document:
    post:
      description: >-
        Creates a new version of an existing VC document for the policy using
        the provided document DB record ID and updated document payload. In the
        UI, this is triggered from the VC document viewer after switching to
        edit mode and saving changes.
      operationId: PolicyApi_createNewVersionVcDocument
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Data
        content:
          application/json:
            schema:
              type: object
              required:
                - documentId
                - document
              properties:
                documentId:
                  type: string
                  description: Document DB record ID of the VC document to version.
                document:
                  type: object
                  additionalProperties: true
                  description: Updated VC document payload used to create the new version.
            examples:
              default:
                value:
                  documentId: 67b8f31d2a26f8be2a9f0be9
                  document: {}
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
              example:
                ok: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Create a new VC document version.
      tags:
        - policies
  /policies/{policyId}/get-all-version-vc-documents/{documentId}:
    get:
      description: >-
        Returns all stored versions of the selected VC document for the policy.
        The `documentId` parameter must be the document DB record ID (the same
        `row.id` used in the UI), not the VC `document.id` / `urn:uuid`. In the
        UI, this data is used in the VC document viewer to populate the version
        selector.
      operationId: PolicyApi_getAllVersionVcDocuments
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: documentId
          required: true
          in: path
          description: Document Id
          schema:
            example: 69b8115f3dc0fa022156fb89
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
              example:
                - createDate: '2026-03-29T13:20:00.178Z'
                  updateDate: '2026-03-29T13:20:00.190Z'
                  hash: aZFSzKANCaBqpZb78BWgi9UW2X5UswnH7j1WeJMaenr
                  hederaStatus: ISSUE
                  signature: 0
                  type: approved_project
                  policyId: 69c9207581910b160912d330
                  recordActionId: 427a6a9b-fc67-4418-8d87-0eb1a05fd8e3
                  tag: sr_save_reassigned_validated_project_db
                  schema: '#b4bccf9f-2f54-49b6-bfa8-4fa979dcaa7b&1.0.0'
                  option: {}
                  relationships: []
                  owner: >-
                    did:hedera:testnet:2Tak8KVd1K33DWvDFqmKVaihNfzvfGEYehXr3UZ1dGHV_0.0.8417999
                  group: 3c869012-3832-4256-9f6a-84ef3d0bf4a3
                  accounts: {}
                  topicId: 0.0.8427267
                  messageId: '1774790398.768848833'
                  startMessageId: '1774789024.639432984'
                  messageHash: Gv9gCggtuRR7pMCLwUvYcfPZGoXUsiCfwkJD17WLis4N
                  messageIds: []
                  document: {}
                  documentFileId: 69c92700e78ca16d4322acdc
                  documentFields: []
                  edited: false
                  relayerAccount: 0.0.6046457
                  tableFileIds: []
                  oldVersion: false
                  initId: '1774789048.788625000'
                  id: 69c92700e78ca16d4322acd9
                - createDate: '2026-03-29T12:57:30.831Z'
                  updateDate: '2026-03-29T13:25:28.818Z'
                  hash: BXjpB77tRLL7gUFZNGedUMWCts97U5x5kcYoGXdTB4sB
                  hederaStatus: ISSUE
                  signature: 0
                  type: approved_project
                  policyId: 69c9207581910b160912d330
                  recordActionId: 427a6a9b-fc67-4418-8d87-0eb1a05fd8e3
                  tag: sr_save_reassigned_validated_project_db
                  schema: '#b4bccf9f-2f54-49b6-bfa8-4fa979dcaa7b&1.0.0'
                  option: {}
                  relationships: []
                  owner: >-
                    did:hedera:testnet:2Tak8KVd1K33DWvDFqmKVaihNfzvfGEYehXr3UZ1dGHV_0.0.8417999
                  group: 3c869012-3832-4256-9f6a-84ef3d0bf4a3
                  accounts: {}
                  topicId: 0.0.8427267
                  messageId: '1774789048.788625000'
                  startMessageId: '1774789024.639432984'
                  messageHash: 5t8tXB7RDWUepWh3Z28NesPeXKbSWKeQoKPqhrrphz6W
                  messageIds: []
                  document: {}
                  documentFileId: 69c92848e78ca16d4322ace5
                  documentFields: []
                  edited: false
                  relayerAccount: 0.0.6046457
                  tableFileIds: []
                  oldVersion: true
                  id: 69c921bae78ca16d4322ac8b
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get all versions of a VC document.
      tags:
        - policies
  /policies/{policyId}/parameters:
    post:
      description: Save policy config with values to the PolicyParameters table
      operationId: PolicyApi_savePolicyParametersValues
      parameters:
        - name: policyId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: Policy parameters.
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/PolicyEditableFieldDTO'
      responses:
        '200':
          description: Successful operation.
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: Save policy config with values
      tags:
        - policies
  /policies/{policyId}/parameters/config:
    get:
      description: Get policy parameters.
      operationId: PolicyApi_getPolicyParametersConfig
      parameters:
        - name: policyId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: Policy parameters.
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/PolicyEditableFieldDTO'
      responses:
        '200':
          description: Successful operation.
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: Get policy parameters.
      tags:
        - policies
  /dmrv/{policyId}/{path}:
    get:
      description: >-
        Resolves a human-readable alias to a policy block and proxies the
        request.
      operationId: DmrvApi_proxyByAlias_get
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            type: string
        - name: alias
          required: true
          in: path
          description: Alias path; one or more lowercase slug segments separated by `/`.
          schema:
            example: monitoring-reports/create
            type: string
      responses:
        '200':
          description: Proxied response from the block.
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: DMRV proxy endpoint.
      tags:
        - dmrv
    post:
      description: >-
        Resolves a human-readable alias to a policy block and proxies the
        request.
      operationId: DmrvApi_proxyByAlias_post
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            type: string
        - name: alias
          required: true
          in: path
          description: Alias path; one or more lowercase slug segments separated by `/`.
          schema:
            example: monitoring-reports/create
            type: string
      responses:
        '200':
          description: Proxied response from the block.
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: DMRV proxy endpoint.
      tags:
        - dmrv
    put:
      description: >-
        Resolves a human-readable alias to a policy block and proxies the
        request.
      operationId: DmrvApi_proxyByAlias_put
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            type: string
        - name: alias
          required: true
          in: path
          description: Alias path; one or more lowercase slug segments separated by `/`.
          schema:
            example: monitoring-reports/create
            type: string
      responses:
        '200':
          description: Proxied response from the block.
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: DMRV proxy endpoint.
      tags:
        - dmrv
    delete:
      description: >-
        Resolves a human-readable alias to a policy block and proxies the
        request.
      operationId: DmrvApi_proxyByAlias_delete
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            type: string
        - name: alias
          required: true
          in: path
          description: Alias path; one or more lowercase slug segments separated by `/`.
          schema:
            example: monitoring-reports/create
            type: string
      responses:
        '200':
          description: Proxied response from the block.
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: DMRV proxy endpoint.
      tags:
        - dmrv
    patch:
      description: >-
        Resolves a human-readable alias to a policy block and proxies the
        request.
      operationId: DmrvApi_proxyByAlias_patch
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            type: string
        - name: alias
          required: true
          in: path
          description: Alias path; one or more lowercase slug segments separated by `/`.
          schema:
            example: monitoring-reports/create
            type: string
      responses:
        '200':
          description: Proxied response from the block.
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: DMRV proxy endpoint.
      tags:
        - dmrv
    options:
      description: >-
        Resolves a human-readable alias to a policy block and proxies the
        request.
      operationId: DmrvApi_proxyByAlias_options
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            type: string
        - name: alias
          required: true
          in: path
          description: Alias path; one or more lowercase slug segments separated by `/`.
          schema:
            example: monitoring-reports/create
            type: string
      responses:
        '200':
          description: Proxied response from the block.
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: DMRV proxy endpoint.
      tags:
        - dmrv
    head:
      description: >-
        Resolves a human-readable alias to a policy block and proxies the
        request.
      operationId: DmrvApi_proxyByAlias_head
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            type: string
        - name: alias
          required: true
          in: path
          description: Alias path; one or more lowercase slug segments separated by `/`.
          schema:
            example: monitoring-reports/create
            type: string
      responses:
        '200':
          description: Proxied response from the block.
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: DMRV proxy endpoint.
      tags:
        - dmrv
    search:
      description: >-
        Resolves a human-readable alias to a policy block and proxies the
        request.
      operationId: DmrvApi_proxyByAlias_search
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            type: string
        - name: alias
          required: true
          in: path
          description: Alias path; one or more lowercase slug segments separated by `/`.
          schema:
            example: monitoring-reports/create
            type: string
      responses:
        '200':
          description: Proxied response from the block.
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: DMRV proxy endpoint.
      tags:
        - dmrv
  /schema/{schemaId}:
    get:
      description: >-
        Returns schema by schema ID. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: SingleSchemaApi_getSchema
      parameters:
        - name: schemaId
          required: true
          in: path
          description: Schema ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaDTO'
              example:
                createDate: '2026-03-29T12:52:05.192Z'
                updateDate: '2026-03-29T12:52:52.015Z'
                uuid: c5434400-5cca-41cc-b904-1d4d78017a29
                hash: ''
                name: Project Details
                description: ''
                entity: NONE
                status: PUBLISHED
                version: 1.0.0
                sourceVersion: ''
                creator: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                owner: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                topicId: 0.0.8427214
                messageId: '1774788770.467514813'
                documentURL: >-
                  ipfs://bafkreic5fnqunk6x5kr2i45pb4ut2ovevpqpubwyrbrfgscmgvwp7wy2ya
                contextURL: >-
                  ipfs://bafkreide5ft6pnew5po4rjlsd5m2gqzq25xpih276fnj7hxf56km3wh4am
                iri: '#c5434400-5cca-41cc-b904-1d4d78017a29&1.0.0'
                readonly: false
                system: false
                active: false
                category: POLICY
                codeVersion: 1.2.0
                defs:
                  - '#GeoJSON'
                  - '#cecced3d-a673-4bcc-a93c-e3b900181949&1.0.0'
                errors: []
                document: {}
                context: {}
                id: 69c9207581910b160912d32b
                isOwner: true
                isCreator: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundErrorDTO'
              example:
                statusCode: 404
                message: Schema not found.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Returns schema by schema ID.
      tags:
        - schema
  /schema/{schemaId}/parents:
    get:
      description: Returns all parent schemas.
      operationId: SingleSchemaApi_getSchemaParents
      parameters:
        - name: schemaId
          required: true
          in: path
          description: Schema identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaParentDTO'
              example:
                - name: Project Description
                  status: PUBLISHED
                  version: 1.0.0
                  sourceVersion: ''
                  category: POLICY
                  id: 69c9207481910b160912d2ef
                - name: Monitoring Report
                  status: PUBLISHED
                  version: 1.0.0
                  sourceVersion: ''
                  category: POLICY
                  id: 69c9207481910b160912d2f9
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Returns all parent schemas.
      tags:
        - schema
  /schema/{schemaId}/tree:
    get:
      description: Returns schema tree.
      operationId: SingleSchemaApi_getSchemaTree
      parameters:
        - name: schemaId
          required: true
          in: path
          description: Schema identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: object
                properties:
                  name:
                    type: string
                  type:
                    type: string
                  children:
                    type: array
                    items:
                      type: object
              example:
                name: Project Details
                type: '#c5434400-5cca-41cc-b904-1d4d78017a29&1.0.0'
                children:
                  - name: Date Range
                    type: '#cecced3d-a673-4bcc-a93c-e3b900181949&1.0.0'
                    children: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Returns schema tree.
      tags:
        - schema
  /schema/{schemaId}/tree/export/plantuml:
    get:
      description: Returns schema tree as exportable PlantUML code.
      operationId: SingleSchemaApi_getSchemaTreePlantUML
      parameters:
        - name: schemaId
          required: true
          in: path
          description: Schema identifier
          schema:
            type: string
        - name: includeFields
          required: false
          in: query
          description: Include field names and descriptions in classes
          schema:
            type: boolean
        - name: includeFormulas
          required: false
          in: query
          description: Include formula components and links
          schema:
            type: boolean
        - name: includeDependencies
          required: false
          in: query
          description: Include dependent formulas referenced by directly linked formulas
          schema:
            type: boolean
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: string
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: Returns schema tree in PlantUML format.
      tags:
        - schema
  /schema/{schemaId}/sample-payload:
    get:
      description: Returns a sample payload for the schema by schema Id.
      operationId: SingleSchemaApi_getSampleSchemaPayload
      parameters:
        - name: schemaId
          required: true
          in: path
          description: Schema ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Generated document identifier
                  type:
                    type: string
                    description: 'Schema type without the leading #'
                  '@context':
                    type: array
                    items:
                      type: string
                    description: JSON-LD context; first item is the schema IRI
                required:
                  - id
                  - type
                  - '@context'
                additionalProperties: true
              example:
                id: 59760e7b-f249-46a6-a39f-d59d861e9690
                field0: example
                field1:
                  - example
                field2:
                  - type: FeatureCollection
                    features:
                      - type: Feature
                        properties: {}
                        geometry:
                          type: Point
                          coordinates:
                            - 0
                            - 0
                field3:
                  - example@email.com
                type: c5434400-5cca-41cc-b904-1d4d78017a29&1.0.0
                '@context':
                  - '#c5434400-5cca-41cc-b904-1d4d78017a29&1.0.0'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundErrorDTO'
              example:
                statusCode: 404
                message: Schema not found.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Returns a sample payload for the schema by schema Id.
      tags:
        - schema
  /schemas:
    get:
      description: >-
        Returns all schemas. Add Api-Version: 2 header to use search and
        searchOptions filters. If `category` is omitted, the endpoint returns
        schemas of all categories matching the standard
        owner/non-system/non-readonly filters. Published tool schemas that do
        not match the current owner are only included when `category=TOOL`.
      operationId: SchemaApi_getSchemasPageV2_2
      parameters:
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
        - name: category
          required: false
          in: query
          description: >-
            Schema category. If omitted, schemas of all categories matching the
            standard owner/non-system/non-readonly filters are returned.
            Published tool schemas without owner match are only included when
            `category=TOOL`.
          schema:
            enum:
              - POLICY
              - MODULE
              - SYSTEM
              - TAG
              - TOOL
              - STATISTIC
              - LABEL
            type: string
        - name: policyId
          required: false
          in: query
          description: Policy id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: moduleId
          required: false
          in: query
          description: Module id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: toolId
          required: false
          in: query
          description: Tool id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: topicId
          required: false
          in: query
          description: >-
            Topic id. Use `not-binded` to return policy schemas not bound to any
            policy topic.
          schema:
            example: 0.0.6046379
            type: string
        - name: search
          required: false
          in: query
          description: Search
          schema:
            example: text
            type: string
        - name: searchOptions
          required: false
          in: query
          description: >-
            Search scopes. `uuid` searches by schema IRI, `name` by schema name,
            `description` by schema description, `references` by `$defs`, and
            `fields` by schema document fields excluding `$defs`. Supports
            repeated query params or comma-separated values. If omitted, search
            is performed across all scopes.
          schema:
            type: array
            items:
              type: string
              enum:
                - uuid
                - name
                - description
                - references
                - fields
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaDTO'
              example:
                - id: f3b2a9c1e4d5678901234567
                  uuid: f3b2a9c1e4d5678901234567
                  name: Schema name
                  description: Description
                  entity: string
                  iri: string
                  status: string
                  topicId: f3b2a9c1e4d5678901234567
                  version: 1.0.0
                  owner: string
                  messageId: f3b2a9c1e4d5678901234567
                  category: string
                  documentURL: https://example.com
                  contextURL: https://example.com
                  document: {}
                  context: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Return a list of all schemas.
      tags:
        - schemas
    put:
      description: >-
        Updates the schema. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: SchemaApi_setSchema
      parameters: []
      requestBody:
        required: true
        description: Object that contains a valid schema.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SchemaDTO'
            examples:
              updateSchema:
                summary: Draft policy schema (TestVC)
                value:
                  id: 69c95d972df024260a5079ca
                  uuid: 9af962d2-d595-488d-a9ce-bb600882d5df
                  hash: ''
                  name: TestVC
                  description: ''
                  entity: VC
                  status: DRAFT
                  readonly: false
                  document:
                    $id: '#9af962d2-d595-488d-a9ce-bb600882d5df&1.0.1'
                    $comment: >-
                      { "@id":
                      "schema:9af962d2-d595-488d-a9ce-bb600882d5df#9af962d2-d595-488d-a9ce-bb600882d5df&1.0.1",
                      "term": "9af962d2-d595-488d-a9ce-bb600882d5df&1.0.1" }
                    title: TestVC
                    description: ''
                    type: object
                    properties: {}
                    required: []
                    additionalProperties: false
                    $defs: {}
                  context: null
                  version: 1.0.1
                  sourceVersion: ''
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                  topicId: 0.0.8428661
                  messageId: ''
                  documentURL: ''
                  contextURL: schema:9af962d2-d595-488d-a9ce-bb600882d5df
                  iri: '#9af962d2-d595-488d-a9ce-bb600882d5df&1.0.1'
                  type: 9af962d2-d595-488d-a9ce-bb600882d5df&1.0.1
                  fields: []
                  conditions: []
                  active: false
                  system: false
                  category: POLICY
                  errors: []
                  userDID: null
                  codeVersion: 1.2.0
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaDTO'
              example:
                - id: f3b2a9c1e4d5678901234567
                  uuid: f3b2a9c1e4d5678901234567
                  name: Schema name
                  description: Description
                  entity: string
                  iri: string
                  status: string
                  topicId: f3b2a9c1e4d5678901234567
                  version: 1.0.0
                  owner: string
                  messageId: f3b2a9c1e4d5678901234567
                  category: string
                  documentURL: https://example.com
                  contextURL: https://example.com
                  document: {}
                  context: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundErrorDTO'
              example:
                statusCode: 404
                message: Schema not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Updates the schema.
      tags:
        - schemas
  /schemas/{topicId}:
    get:
      description: >-
        Returns schemas for the provided topic id. If `category` is omitted, the
        endpoint returns schemas of all categories for that topic within the
        standard owner/non-system/non-readonly filters.
      operationId: SchemaApi_getSchemasPageByTopicId
      parameters:
        - name: topicId
          required: true
          in: path
          description: Topic Id
          schema:
            example: 0.0.6046379
            type: string
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
        - name: category
          required: false
          in: query
          description: >-
            Schema category. If omitted, schemas of all categories matching the
            standard owner/non-system/non-readonly filters for the provided
            topic are returned. Published tool schemas without owner match are
            only included when `category=TOOL`.
          schema:
            enum:
              - POLICY
              - MODULE
              - SYSTEM
              - TAG
              - TOOL
              - STATISTIC
              - LABEL
            type: string
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaDTO'
              example:
                - id: f3b2a9c1e4d5678901234567
                  uuid: f3b2a9c1e4d5678901234567
                  name: Schema name
                  description: Description
                  entity: string
                  iri: string
                  status: string
                  topicId: f3b2a9c1e4d5678901234567
                  version: 1.0.0
                  owner: string
                  messageId: f3b2a9c1e4d5678901234567
                  category: string
                  documentURL: https://example.com
                  contextURL: https://example.com
                  document: {}
                  context: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Return a list of all schemas.
      tags:
        - schemas
    post:
      description: >-
        Creates a new schema under the provided topic id. Only users with the
        Standard Registry role are allowed to make the request.
      operationId: SchemaApi_createNewSchema
      parameters:
        - name: topicId
          required: true
          in: path
          description: Target Hedera topic id for the created schema.
          schema:
            example: 0.0.6046379
            type: string
      requestBody:
        required: true
        description: >-
          Object that contains a valid schema. The path `topicId` is used as the
          target topic id; if `category` is omitted, it defaults to `POLICY`.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SchemaDTO'
            examples:
              createSchema:
                summary: CreateSchema (VC, POLICY)
                value:
                  uuid: 99004913-be86-4e48-bdf8-8e478135a6ce
                  hash: ''
                  name: CreateSchema
                  description: ''
                  entity: VC
                  status: DRAFT
                  readonly: false
                  document:
                    $id: '#99004913-be86-4e48-bdf8-8e478135a6ce'
                    $comment: >-
                      { "@id":
                      "schema:99004913-be86-4e48-bdf8-8e478135a6ce#99004913-be86-4e48-bdf8-8e478135a6ce",
                      "term": "99004913-be86-4e48-bdf8-8e478135a6ce" }
                    title: CreateSchema
                    description: ''
                    type: object
                    properties:
                      '@context':
                        oneOf:
                          - type: string
                          - type: array
                            items:
                              type: string
                        readOnly: true
                      type:
                        oneOf:
                          - type: string
                          - type: array
                            items:
                              type: string
                        readOnly: true
                      id:
                        type: string
                        readOnly: true
                      field0:
                        title: field0
                        description: TestStringField
                        readOnly: false
                        type: string
                        $comment: >-
                          {"term":"field0","@id":"https://www.schema.org/text","isPrivate":false,"availableOptions":[],"orderPosition":0}
                      policyId:
                        title: Policy Id
                        description: Policy Id
                        readOnly: true
                        type: string
                        $comment: >-
                          {"term":"policyId","@id":"https://www.schema.org/text"}
                      ref:
                        title: Relationships
                        description: Relationships
                        readOnly: true
                        type: string
                        $comment: '{"term":"ref","@id":"https://www.schema.org/text"}'
                      guardianVersion:
                        title: Guardian Version
                        description: Guardian Version
                        readOnly: true
                        type: string
                        $comment: >-
                          {"term":"guardianVersion","@id":"https://www.schema.org/text"}
                    required:
                      - '@context'
                      - type
                      - field0
                      - policyId
                    additionalProperties: false
                    $defs: {}
                  context: null
                  version: ''
                  sourceVersion: ''
                  creator: ''
                  owner: ''
                  topicId: 0.0.8428661
                  messageId: ''
                  documentURL: ''
                  contextURL: schema:99004913-be86-4e48-bdf8-8e478135a6ce
                  iri: ''
                  fields: []
                  conditions: []
                  active: false
                  system: false
                  category: POLICY
                  errors: []
                  userDID: null
                  codeVersion: ''
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaDTO'
              example:
                - id: f3b2a9c1e4d5678901234567
                  uuid: f3b2a9c1e4d5678901234567
                  name: Schema name
                  description: Description
                  entity: string
                  iri: string
                  status: string
                  topicId: f3b2a9c1e4d5678901234567
                  version: 1.0.0
                  owner: string
                  messageId: f3b2a9c1e4d5678901234567
                  category: string
                  documentURL: https://example.com
                  contextURL: https://example.com
                  document: {}
                  context: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Creates a new schema.
      tags:
        - schemas
  /schemas/type/{schemaType}:
    get:
      description: >-
        Finds the schema by json document type across the whole database,
        without restricting the search to the current user.
      operationId: SchemaApi_getSchemaByType
      parameters:
        - name: schemaType
          required: true
          in: path
          description: >-
            Schema type without the leading `#`, usually in the form
            `uuid&version`.
          schema:
            example: cfc8e34f-adae-4009-bb22-1f8c13364cb7&1.0.0
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaDTO'
              example:
                value:
                  uuid: cfc8e34f-adae-4009-bb22-1f8c13364cb7
                  iri: '#cfc8e34f-adae-4009-bb22-1f8c13364cb7&1.0.0'
                  name: Project Description
                  version: 1.0.0
                  document:
                    $id: '#cfc8e34f-adae-4009-bb22-1f8c13364cb7&1.0.0'
                    $comment: >-
                      { "@id": "#cfc8e34f-adae-4009-bb22-1f8c13364cb7&1.0.0",
                      "term": "cfc8e34f-adae-4009-bb22-1f8c13364cb7&1.0.0" }
                    title: Project Description
                    description: Project Description
                    type: object
                    properties: {}
                    required: []
                    additionalProperties: false
                    $defs: {}
                  documentURL: >-
                    ipfs://bafkreiefl3543dhxcicjl3v6bmct4uqnuxharci45opopg3jwgqkpdccr4
                  context: {}
                  contextURL: >-
                    ipfs://bafkreidkocws2ks2s5zrm7ef6t4noqu5fylvyjj74yfcgbpmn4q5f2bjzq
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundErrorDTO'
              example:
                statusCode: 404
                message: 'Schema not found: cfc8e34f-adae-4009-bb22-1f8c13364cb7&1.0.5'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Finds the schema by json document type across the whole database.
      tags:
        - schemas
  /schemas/type-by-user/{schemaType}:
    get:
      description: >-
        Finds the schema by json document type only among schemas owned by the
        user on whose behalf the request is made.
      operationId: SchemaApi_getSchemaByTypeAndUser
      parameters:
        - name: schemaType
          required: true
          in: path
          description: >-
            Schema type without the leading `#`, usually in the form
            `uuid&version`.
          schema:
            example: cfc8e34f-adae-4009-bb22-1f8c13364cb7&1.0.0
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaDTO'
              example:
                value:
                  uuid: cfc8e34f-adae-4009-bb22-1f8c13364cb7
                  iri: '#cfc8e34f-adae-4009-bb22-1f8c13364cb7&1.0.0'
                  name: Project Description
                  version: 1.0.0
                  document:
                    $id: '#cfc8e34f-adae-4009-bb22-1f8c13364cb7&1.0.0'
                    $comment: >-
                      { "@id": "#cfc8e34f-adae-4009-bb22-1f8c13364cb7&1.0.0",
                      "term": "cfc8e34f-adae-4009-bb22-1f8c13364cb7&1.0.0" }
                    title: Project Description
                    description: Project Description
                    type: object
                    properties: {}
                    required: []
                    additionalProperties: false
                    $defs: {}
                  documentURL: >-
                    ipfs://bafkreiefl3543dhxcicjl3v6bmct4uqnuxharci45opopg3jwgqkpdccr4
                  context: {}
                  contextURL: >-
                    ipfs://bafkreidkocws2ks2s5zrm7ef6t4noqu5fylvyjj74yfcgbpmn4q5f2bjzq
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundErrorDTO'
              example:
                statusCode: 404
                message: 'Schema not found: cfc8e34f-adae-4009-bb22-1f8c13364cb7&1.0.5'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Finds the schema by json document type for the current user only.
      tags:
        - schemas
  /schemas/list/all:
    get:
      description: >-
        Returns a short list of non-system, non-readonly schemas owned by the
        current Standard Registry user, excluding TAG schemas. Only users with
        the Standard Registry role are allowed to make the request.
      operationId: SchemaApi_getAll
      parameters: []
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaListAllItemDTO'
              examples:
                listAll:
                  summary: Short schema list
                  value:
                    - name: Project Description
                      description: Project Description
                      status: PUBLISHED
                      version: 1.0.0
                      sourceVersion: ''
                      topicId: 0.0.8425763
                      category: POLICY
                      id: 69c8e13981910b160912c6c8
                    - name: Monitoring Report
                      description: Monitoring Report
                      status: PUBLISHED
                      version: 1.0.0
                      sourceVersion: ''
                      topicId: 0.0.8425763
                      category: POLICY
                      id: 69c8e13981910b160912c6d2
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Returns the current user's short schema list.
      tags:
        - schemas
  /schemas/list/sub:
    get:
      description: >-
        Returns schemas for the specified policy or tool topic, including
        related tool schemas discovered from that parent entity. Only users with
        the Standard Registry role are allowed to make the request.
      operationId: SchemaApi_getSub
      parameters:
        - name: category
          required: false
          in: query
          description: >-
            Determines which parent entity type is used to resolve related tool
            topics. Does not directly filter the returned schemas by category.
            Supported values: POLICY, TOOL.
          schema:
            enum:
              - POLICY
              - TOOL
            type: string
        - name: topicId
          required: false
          in: query
          description: >-
            Topic ID used as the starting point for schema lookup and related
            tool topic resolution.
          schema:
            example: 0.0.6046379
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaDTO'
              example:
                - id: f3b2a9c1e4d5678901234567
                  uuid: f3b2a9c1e4d5678901234567
                  name: Schema name
                  description: Description
                  entity: string
                  iri: string
                  status: string
                  topicId: f3b2a9c1e4d5678901234567
                  version: 1.0.0
                  owner: string
                  messageId: f3b2a9c1e4d5678901234567
                  category: string
                  documentURL: https://example.com
                  contextURL: https://example.com
                  document: {}
                  context: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Returns schemas for the selected topic and related tool topics.
      tags:
        - schemas
  /schemas/schema-with-sub-schemas:
    get:
      description: >-
        Returns the selected schema by schemaId together with sub schemas
        resolved from the provided topicId. Related tool topics are resolved
        from the parent entity type specified by category. Only users with the
        Standard Registry role are allowed to make the request.
      operationId: SchemaApi_getSchemaWithSubSchemas
      parameters:
        - name: category
          required: false
          in: query
          description: >-
            Determines which parent entity type is used to resolve related tool
            topics. Does not directly filter the returned schemas by category.
            Supported values: POLICY, TOOL.
          schema:
            enum:
              - POLICY
              - TOOL
            type: string
        - name: topicId
          required: false
          in: query
          description: >-
            Topic ID used as the starting point for sub-schema lookup and
            related tool topic resolution.
          schema:
            example: 0.0.6046379
            type: string
        - name: schemaId
          required: false
          in: query
          description: >-
            Optional schema ID of the primary schema to return in the schema
            field. If omitted, only subSchemas are resolved.
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaWithSubSchemasDTO'
              examples:
                schemaWithSubSchemas:
                  summary: Selected schema with sub schemas
                  value:
                    schema:
                      createDate: '2026-03-29T08:22:17.965Z'
                      updateDate: '2026-03-29T08:55:59.633Z'
                      uuid: da24858f-0ce0-44ef-b5b4-3689960d00c7
                      hash: ''
                      name: VVB
                      description: VVB
                      entity: VC
                      status: PUBLISHED
                      documentFileId: 69c8e91f81910b160912cda8
                      contextFileId: 69c8e91f81910b160912cdaa
                      version: 1.0.0
                      sourceVersion: ''
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                      topicId: 0.0.8425763
                      messageId: '1774774558.160429342'
                      documentURL: >-
                        ipfs://bafkreiefl3543dhxcicjl3v6bmct4uqnuxharci45opopg3jwgqkpdccr4
                      contextURL: >-
                        ipfs://bafkreidkocws2ks2s5zrm7ef6t4noqu5fylvyjj74yfcgbpmn4q5f2bjzq
                      iri: '#da24858f-0ce0-44ef-b5b4-3689960d00c7&1.0.0'
                      readonly: false
                      system: false
                      active: false
                      category: POLICY
                      codeVersion: 1.2.0
                      defs: []
                      errors: []
                      document: {}
                      context: {}
                      id: 69c8e13981910b160912c6d7
                    subSchemas:
                      - createDate: '2026-03-29T08:22:17.738Z'
                        updateDate: '2026-03-29T08:55:59.069Z'
                        uuid: cfc8e34f-adae-4009-bb22-1f8c13364cb7
                        hash: ''
                        name: Project Description
                        description: Project Description
                        entity: VC
                        status: PUBLISHED
                        documentFileId: 69c8e91f81910b160912cd78
                        contextFileId: 69c8e91f81910b160912cd7a
                        version: 1.0.0
                        sourceVersion: ''
                        creator: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                        topicId: 0.0.8425763
                        messageId: '1774774558.160429342'
                        documentURL: >-
                          ipfs://bafkreiefl3543dhxcicjl3v6bmct4uqnuxharci45opopg3jwgqkpdccr4
                        contextURL: >-
                          ipfs://bafkreidkocws2ks2s5zrm7ef6t4noqu5fylvyjj74yfcgbpmn4q5f2bjzq
                        iri: '#cfc8e34f-adae-4009-bb22-1f8c13364cb7&1.0.0'
                        readonly: false
                        system: false
                        active: false
                        category: POLICY
                        codeVersion: 1.2.0
                        defs: []
                        errors: []
                        document: {}
                        context: {}
                        __component: Current
                        id: 69c8e13981910b160912c6c8
                      - createDate: '2026-03-29T08:22:17.819Z'
                        updateDate: '2026-03-29T08:55:59.542Z'
                        uuid: eb36a762-feaa-4511-9ae6-be255a88fff7
                        hash: ''
                        name: PP
                        description: ''
                        entity: VC
                        status: PUBLISHED
                        documentFileId: 69c8e91f81910b160912cda0
                        contextFileId: 69c8e91f81910b160912cda2
                        version: 1.0.0
                        sourceVersion: ''
                        creator: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                        topicId: 0.0.8425763
                        messageId: '1774774558.160429342'
                        documentURL: >-
                          ipfs://bafkreiefl3543dhxcicjl3v6bmct4uqnuxharci45opopg3jwgqkpdccr4
                        contextURL: >-
                          ipfs://bafkreidkocws2ks2s5zrm7ef6t4noqu5fylvyjj74yfcgbpmn4q5f2bjzq
                        iri: '#eb36a762-feaa-4511-9ae6-be255a88fff7&1.0.0'
                        readonly: false
                        system: false
                        active: false
                        category: POLICY
                        codeVersion: 1.2.0
                        defs: []
                        errors: []
                        document: {}
                        context: {}
                        __component: Current
                        id: 69c8e13981910b160912c6cd
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: >-
        Returns the selected schema with sub schemas for the topic and related
        tool topics.
      tags:
        - schemas
  /schemas/push/copy:
    post:
      description: >-
        Starts asynchronous copying of a schema to the target topic using the
        provided source IRI, new name, and copyNested option, and returns a
        task. Only users with the Standard Registry role are allowed to make the
        request.
      operationId: SchemaApi_copySchemaAsync
      parameters: []
      requestBody:
        required: true
        description: >-
          Target topic, new name, source schema IRI, and whether to copy nested
          schemas.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SchemaPushCopyRequestDTO'
            examples:
              pushCopy:
                summary: Copy schema (async)
                value:
                  topicId: 0.0.8425763
                  name: Project lamp type and charging method copy
                  iri: '#b242b108-c226-46ab-b527-7c2bbf1275ea&1.0.0'
                  copyNested: true
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: 89e1e62a-7976-4e24-8dd3-997da02dc81e
                expectation: 6
                action: Create schema
                userId: 69c2cfc021d39e7b6d15e236
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Starts asynchronous schema copy.
      tags:
        - schemas
  /schemas/push/{topicId}:
    post:
      description: >-
        Starts asynchronous creation of a new schema under the provided topic id
        and returns a task. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: SchemaApi_createNewSchemaAsync
      parameters:
        - name: topicId
          required: true
          in: path
          description: Target Hedera topic id for the created schema.
          schema:
            example: 0.0.6046379
            type: string
      requestBody:
        required: true
        description: >-
          Object that contains a valid schema. The path `topicId` is used as the
          target topic id; if `category` is omitted, it defaults to `POLICY`.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SchemaDTO'
            examples:
              createSchemaAsync:
                summary: CreateSchema (VC, POLICY)
                value:
                  uuid: 99004913-be86-4e48-bdf8-8e478135a6ce
                  hash: ''
                  name: CreateSchema
                  description: ''
                  entity: VC
                  status: DRAFT
                  readonly: false
                  document:
                    $id: '#99004913-be86-4e48-bdf8-8e478135a6ce'
                    $comment: >-
                      { "@id":
                      "schema:99004913-be86-4e48-bdf8-8e478135a6ce#99004913-be86-4e48-bdf8-8e478135a6ce",
                      "term": "99004913-be86-4e48-bdf8-8e478135a6ce" }
                    title: CreateSchema
                    description: ''
                    type: object
                    properties:
                      '@context':
                        oneOf:
                          - type: string
                          - type: array
                            items:
                              type: string
                        readOnly: true
                      type:
                        oneOf:
                          - type: string
                          - type: array
                            items:
                              type: string
                        readOnly: true
                      id:
                        type: string
                        readOnly: true
                      field0:
                        title: field0
                        description: TestStringField
                        readOnly: false
                        type: string
                        $comment: >-
                          {"term":"field0","@id":"https://www.schema.org/text","isPrivate":false,"availableOptions":[],"orderPosition":0}
                      policyId:
                        title: Policy Id
                        description: Policy Id
                        readOnly: true
                        type: string
                        $comment: >-
                          {"term":"policyId","@id":"https://www.schema.org/text"}
                      ref:
                        title: Relationships
                        description: Relationships
                        readOnly: true
                        type: string
                        $comment: '{"term":"ref","@id":"https://www.schema.org/text"}'
                      guardianVersion:
                        title: Guardian Version
                        description: Guardian Version
                        readOnly: true
                        type: string
                        $comment: >-
                          {"term":"guardianVersion","@id":"https://www.schema.org/text"}
                    required:
                      - '@context'
                      - type
                      - field0
                      - policyId
                    additionalProperties: false
                    $defs: {}
                  context: null
                  version: ''
                  sourceVersion: ''
                  creator: ''
                  owner: ''
                  topicId: 0.0.8428661
                  messageId: ''
                  documentURL: ''
                  contextURL: schema:99004913-be86-4e48-bdf8-8e478135a6ce
                  iri: ''
                  fields: []
                  conditions: []
                  active: false
                  system: false
                  category: POLICY
                  errors: []
                  userDID: null
                  codeVersion: ''
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: 89e1e62a-7976-4e24-8dd3-997da02dc81e
                expectation: 8
                action: Create schema
                userId: 69c2cfc021d39e7b6d15e236
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Creates a new schema asynchronously.
      tags:
        - schemas
  /schemas/{schemaId}:
    delete:
      description: >-
        Deletes the schema with the provided schema ID. Only users with the
        Standard Registry role are allowed to make the request.
      operationId: SchemaApi_deleteSchema
      parameters:
        - name: schemaId
          required: true
          in: path
          description: Schema ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: includeChildren
          required: false
          in: query
          description: Include child schemas
          schema:
            type: boolean
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: 89e1e62a-7976-4e24-8dd3-997da02dc81e
                expectation: 2
                action: Delete schemas
                userId: 69c2cfc021d39e7b6d15e236
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundErrorDTO'
              example:
                statusCode: 404
                message: Schema not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Cannot export schema 69ca28ae3c361aeff876bbe1
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Deletes the schema with the provided schema ID.
      tags:
        - schemas
  /schemas/{schemaId}/publish:
    put:
      description: >-
        Publishes the schema with the provided (internal) schema ID onto IPFS,
        sends a message featuring IPFS CID into the corresponding Hedera topic.
        Only users with the Standard Registry role are allowed to make the
        request.
      operationId: SchemaApi_publishSchema
      parameters:
        - name: schemaId
          required: true
          in: path
          description: Schema ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Object that contains version.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VersionSchemaDTO'
            examples:
              Version:
                value:
                  version: 1.0.0
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaDTO'
              example:
                - id: f3b2a9c1e4d5678901234567
                  uuid: f3b2a9c1e4d5678901234567
                  name: Schema name
                  description: Description
                  entity: string
                  iri: string
                  status: string
                  topicId: f3b2a9c1e4d5678901234567
                  version: 1.0.0
                  owner: string
                  messageId: f3b2a9c1e4d5678901234567
                  category: string
                  documentURL: https://example.com
                  contextURL: https://example.com
                  document: {}
                  context: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 404
                message: Schema not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Schema is published.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Publishes the schema with the provided schema ID.
      tags:
        - schemas
  /schemas/push/{schemaId}/publish:
    put:
      description: >-
        Asynchronously publishes the schema with the provided (internal) schema
        ID onto IPFS, sends a message featuring IPFS CID into the corresponding
        Hedera topic. Only users with the Standard Registry role are allowed to
        make the request.
      operationId: SchemaApi_publishSchemaAsync
      parameters:
        - name: schemaId
          required: true
          in: path
          description: Schema ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Object that contains version.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VersionSchemaDTO'
            examples:
              Version:
                value:
                  version: 1.0.0
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: 89e1e62a-7976-4e24-8dd3-997da02dc81e
                expectation: 8
                action: Publish schemas
                userId: 69c2cfc021d39e7b6d15e236
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 404
                message: Schema not found.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Asynchronously publishes the schema with the provided schema ID.
      tags:
        - schemas
  /schemas/import/message/preview:
    post:
      description: >-
        Previews the schema from IPFS without loading it into the local DB. Only
        users with the Standard Registry role are allowed to make the request.
      operationId: SchemaApi_importFromMessagePreview
      parameters: []
      requestBody:
        required: true
        description: Object that contains version.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MessageSchemaDTO'
            examples:
              Message:
                value:
                  messageId: '1773670900.819264517'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaDTO'
              examples:
                messagePreview:
                  summary: Contact Details (message preview)
                  value:
                    - iri: '#7afe4f57-5eee-4dd0-a6f1-94bdba4820f4&1.0.5'
                      uuid: 7afe4f57-5eee-4dd0-a6f1-94bdba4820f4
                      hash: ''
                      owner: null
                      messageId: '1774856488.194427000'
                      name: Contact Details
                      description: Contact Details
                      entity: NONE
                      version: 1.0.5
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                      topicId: 0.0.8434944
                      codeVersion: 1.2.0
                      relationships: []
                      status: PUBLISHED
                      readonly: false
                      system: false
                      active: false
                      document: {}
                      context: {}
                      documentURL: >-
                        ipfs://bafkreicekq6bw5v3gfyibvlsjtc4erjo4m6kucumzfdfnz767w5ermtmqe
                      contextURL: >-
                        ipfs://bafkreib5jzeebobcel5p6e4cvrmcgtjlmlh7fx5nayb74eifqnwxevlhsy
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                message:
                  - messageId should not be empty
                  - messageId must be a string
                error: Unprocessable Entity
                statusCode: 422
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Previews the schema from IPFS without loading it into the local DB.
      tags:
        - schemas
  /schemas/push/import/message/preview:
    post:
      description: >-
        Previews the schema from IPFS without loading it into the local DB. Only
        users with the Standard Registry role are allowed to make the request.
      operationId: SchemaApi_importFromMessagePreviewAsync
      parameters: []
      requestBody:
        required: true
        description: Object that contains version.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MessageSchemaDTO'
            examples:
              Message:
                value:
                  messageId: '1773670900.819264517'
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: 89e1e62a-7976-4e24-8dd3-997da02dc81e
                expectation: 4
                action: Preview schema message
                userId: 69c2cfc021d39e7b6d15e236
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Previews the schema from IPFS without loading it into the local DB.
      tags:
        - schemas
  /schemas/import/file/preview:
    post:
      description: >-
        Parses the uploaded schema archive without persisting it to the local DB
        and returns the schemas found in the file. The response may include the
        main schema together with nested schemas bundled in the archive. Only
        users with the Standard Registry role are allowed to make the request.
      operationId: SchemaApi_importFromFilePreview
      parameters: []
      requestBody:
        required: true
        description: Schema archive as raw binary request body.
        content:
          binary/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaDTO'
              examples:
                filePreview:
                  summary: Project Details with nested schemas
                  value:
                    - createDate: '2026-03-29T08:22:18.331Z'
                      updateDate: '2026-03-29T08:55:59.184Z'
                      uuid: 4c187317-b5c8-472f-a583-d87e9a1002fa
                      hash: ''
                      name: Project Details
                      description: ''
                      entity: NONE
                      status: PUBLISHED
                      documentFileId: 69c8e91f81910b160912cd7c
                      contextFileId: 69c8e91f81910b160912cd7e
                      version: 1.0.0
                      sourceVersion: ''
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                      topicId: 0.0.8425763
                      messageId: '1774774558.160429342'
                      documentURL: >-
                        ipfs://bafkreiefl3543dhxcicjl3v6bmct4uqnuxharci45opopg3jwgqkpdccr4
                      contextURL: >-
                        ipfs://bafkreidkocws2ks2s5zrm7ef6t4noqu5fylvyjj74yfcgbpmn4q5f2bjzq
                      iri: '#4c187317-b5c8-472f-a583-d87e9a1002fa&1.0.0'
                      readonly: false
                      system: false
                      active: false
                      category: POLICY
                      codeVersion: 1.2.0
                      defs: []
                      errors: []
                      document: {}
                      context: {}
                      id: 69c8e13a81910b160912c704
                    - createDate: '2026-03-29T08:22:17.989Z'
                      updateDate: '2026-03-29T08:55:59.252Z'
                      uuid: 55892d75-bb2b-411a-a6bc-5fc476762edb
                      hash: ''
                      name: Date Range
                      description: ''
                      entity: NONE
                      status: PUBLISHED
                      documentFileId: 69c8e91f81910b160912cd80
                      contextFileId: 69c8e91f81910b160912cd82
                      version: 1.0.0
                      sourceVersion: ''
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                      topicId: 0.0.8425763
                      messageId: '1774774558.160429342'
                      documentURL: >-
                        ipfs://bafkreiefl3543dhxcicjl3v6bmct4uqnuxharci45opopg3jwgqkpdccr4
                      contextURL: >-
                        ipfs://bafkreidkocws2ks2s5zrm7ef6t4noqu5fylvyjj74yfcgbpmn4q5f2bjzq
                      iri: '#55892d75-bb2b-411a-a6bc-5fc476762edb&1.0.0'
                      readonly: false
                      system: false
                      active: false
                      category: POLICY
                      codeVersion: 1.2.0
                      defs: []
                      errors: []
                      document: {}
                      context: {}
                      id: 69c8e13981910b160912c6dc
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Previews schemas from an uploaded zip file.
      tags:
        - schemas
  /schemas/import/schemas/duplicates:
    post:
      description: >-
        Previews list of schemas duplicates. Only users with the Standard
        Registry role are allowed to make the request.
      operationId: SchemaApi_checkForDublicates
      parameters: []
      requestBody:
        required: true
        description: >-
          Target policy topic id and schema names from the imported package to
          check for replaceable duplicates.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SchemaImportDuplicatesRequestDTO'
            examples:
              duplicatesCheck:
                summary: Check imported schema names against policy topic
                value:
                  policyId: 0.0.8425763
                  schemaNames:
                    - Project Details
                    - Date Range
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaDTO'
              examples:
                duplicates:
                  summary: Replaceable draft schemas
                  value:
                    schemasCanBeReplaced:
                      - createDate: '2026-03-30T08:24:18.971Z'
                        updateDate: '2026-03-30T08:24:18.971Z'
                        uuid: 6f4a68b6-5ef6-4145-90a3-a1c88c36b1d4
                        hash: ''
                        name: Date Range
                        description: ''
                        entity: NONE
                        status: DRAFT
                        documentFileId: 69ca33323c361aeff876bd67
                        contextFileId: 69ca33323c361aeff876bd69
                        version: ''
                        sourceVersion: 1.0.0
                        creator: >-
                          did:hedera:testnet:4Rh3aC5jNAzPJwwNtsy95Ava954Thyjk41gREjynY2D9_0.0.8429609
                        owner: >-
                          did:hedera:testnet:4Rh3aC5jNAzPJwwNtsy95Ava954Thyjk41gREjynY2D9_0.0.8429609
                        topicId: 0.0.8435307
                        messageId: null
                        documentURL: null
                        contextURL: schema:6f4a68b6-5ef6-4145-90a3-a1c88c36b1d4
                        iri: '#6f4a68b6-5ef6-4145-90a3-a1c88c36b1d4'
                        readonly: false
                        system: false
                        active: false
                        category: POLICY
                        codeVersion: 1.2.0
                        defs: []
                        errors: []
                        document: {}
                        context: {}
                        id: 69ca33323c361aeff876bd66
                      - createDate: '2026-03-30T08:24:19.313Z'
                        updateDate: '2026-03-30T08:24:19.313Z'
                        uuid: 3056f5cf-b904-49af-9cb9-6ad71e6f885b
                        hash: ''
                        name: Project Details
                        description: ''
                        entity: NONE
                        status: DRAFT
                        documentFileId: 69ca33333c361aeff876bd8f
                        contextFileId: 69ca33333c361aeff876bd91
                        version: ''
                        sourceVersion: 1.0.0
                        creator: >-
                          did:hedera:testnet:4Rh3aC5jNAzPJwwNtsy95Ava954Thyjk41gREjynY2D9_0.0.8429609
                        owner: >-
                          did:hedera:testnet:4Rh3aC5jNAzPJwwNtsy95Ava954Thyjk41gREjynY2D9_0.0.8429609
                        topicId: 0.0.8435307
                        messageId: null
                        documentURL: null
                        contextURL: schema:3056f5cf-b904-49af-9cb9-6ad71e6f885b
                        iri: '#3056f5cf-b904-49af-9cb9-6ad71e6f885b'
                        readonly: false
                        system: false
                        active: false
                        category: POLICY
                        codeVersion: 1.2.0
                        defs: []
                        errors: []
                        document: {}
                        context: {}
                        id: 69ca33333c361aeff876bd8e
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Previews list of schemas duplicates.
      tags:
        - schemas
  /schemas/{topicId}/import/message:
    post:
      description: >-
        Imports new schema from IPFS into the local DB. Only users with the
        Standard Registry role are allowed to make the request.
      operationId: SchemaApi_importFromMessage
      parameters:
        - name: topicId
          required: true
          in: path
          description: Topic Id
          schema:
            example: 0.0.6046379
            type: string
      requestBody:
        required: true
        description: Object that contains version.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MessageSchemaDTO'
            examples:
              Message:
                value:
                  messageId: '1773670900.819264517'
      responses:
        '201':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaDTO'
              example:
                - id: f3b2a9c1e4d5678901234567
                  uuid: f3b2a9c1e4d5678901234567
                  name: Schema name
                  description: Description
                  entity: string
                  iri: string
                  status: string
                  topicId: f3b2a9c1e4d5678901234567
                  version: 1.0.0
                  owner: string
                  messageId: f3b2a9c1e4d5678901234567
                  category: string
                  documentURL: https://example.com
                  contextURL: https://example.com
                  document: {}
                  context: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Imports new schema from IPFS into the local DB.
      tags:
        - schemas
  /schemas/push/{topicId}/import/message:
    post:
      description: >-
        Imports new schema from IPFS into the local DB. Only users with the
        Standard Registry role are allowed to make the request.
      operationId: SchemaApi_importFromMessageAsync
      parameters:
        - name: topicId
          required: true
          in: path
          description: Topic Id
          schema:
            example: 0.0.6046379
            type: string
        - name: schemas
          required: false
          in: query
          description: >-
            Optional comma-separated existing schema ids to replace during
            import. These ids usually come from
            `/schemas/import/schemas/duplicates` (`schemasCanBeReplaced[].id`).
          schema:
            example: 69ca33323c361aeff876bd66,69ca33333c361aeff876bd8e
            type: string
      requestBody:
        required: true
        description: Object that contains version.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MessageSchemaDTO'
            examples:
              Message:
                value:
                  messageId: '1773670900.819264517'
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: 89e1e62a-7976-4e24-8dd3-997da02dc81e
                expectation: 3
                action: Import schema message
                userId: 69c2cfc021d39e7b6d15e236
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Imports new schema from IPFS into the local DB.
      tags:
        - schemas
  /schemas/{topicId}/import/file:
    post:
      description: >-
        Imports schemas from the uploaded archive into the local DB under the
        provided target topic id. The archive may contain the main schema
        together with nested schemas bundled in the file. Only users with the
        Standard Registry role are allowed to make the request.
      operationId: SchemaApi_importToTopicFromFile
      parameters:
        - name: topicId
          required: true
          in: path
          description: Topic Id
          schema:
            example: 0.0.6046379
            type: string
      requestBody:
        required: true
        description: Schema archive as raw binary request body.
        content:
          binary/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '201':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaDTO'
              example:
                - id: f3b2a9c1e4d5678901234567
                  uuid: f3b2a9c1e4d5678901234567
                  name: Schema name
                  description: Description
                  entity: string
                  iri: string
                  status: string
                  topicId: f3b2a9c1e4d5678901234567
                  version: 1.0.0
                  owner: string
                  messageId: f3b2a9c1e4d5678901234567
                  category: string
                  documentURL: https://example.com
                  contextURL: https://example.com
                  document: {}
                  context: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Imports schemas from an uploaded zip file into the local DB.
      tags:
        - schemas
  /schemas/push/{topicId}/import/file:
    post:
      description: >-
        Starts asynchronous import of schemas from the uploaded archive into the
        local DB under the provided target topic id. The archive may contain the
        main schema together with nested schemas bundled in the file; the
        endpoint returns a task handle. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: SchemaApi_importToTopicFromFileAsync
      parameters:
        - name: topicId
          required: true
          in: path
          description: Topic Id
          schema:
            example: 0.0.6046379
            type: string
        - name: schemas
          required: false
          in: query
          description: >-
            Optional comma-separated existing schema ids to replace during
            import. These ids usually come from
            `/schemas/import/schemas/duplicates` (`schemasCanBeReplaced[].id`).
          schema:
            example: 69ca33323c361aeff876bd66,69ca33333c361aeff876bd8e
            type: string
      requestBody:
        required: true
        description: Schema archive as raw binary request body.
        content:
          binary/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: 89e1e62a-7976-4e24-8dd3-997da02dc81e
                expectation: 3
                action: Import schema file
                userId: 69c2cfc021d39e7b6d15e236
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Starts asynchronous schema import from an uploaded zip file.
      tags:
        - schemas
  /schemas/{schemaId}/export/message:
    get:
      description: >-
        Returns Hedera message IDs of the published schemas, these messages
        contain IPFS CIDs of these schema files. Only users with the Standard
        Registry role are allowed to make the request.
      operationId: SchemaApi_exportMessage
      parameters:
        - name: schemaId
          required: true
          in: path
          description: Schema ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExportSchemaDTO'
              example:
                id: 69c8e13a81910b160912c704
                name: Project Details
                description: ''
                version: 1.0.0
                messageId: '1774774558.160429342'
                owner: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Returns Hedera message IDs of the published schemas.
      tags:
        - schemas
  /schemas/{schemaId}/export/file:
    get:
      description: >-
        Returns a zip file containing the specified schema and related export
        artifacts. Only users with the Standard Registry role are allowed to
        make the request.
      operationId: SchemaApi_exportToFile
      parameters:
        - name: schemaId
          required: true
          in: path
          description: Schema ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: >-
            Binary ZIP archive (`Content-Type: application/zip`,
            `Content-Disposition: attachment`). Not JSON.
          content:
            application/zip:
              schema:
                type: string
                format: binary
        '401':
          description: Unauthorized request.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Returns the specified schema in a zip file format.
      tags:
        - schemas
  /schemas/system/{username}:
    post:
      description: >-
        Creates a new system schema. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: SchemaApi_postSystemSchema
      parameters:
        - name: username
          required: true
          in: path
          description: >-
            Present for URL compatibility with existing clients. The server does
            not use this value when resolving the response; the returned system
            schemas are determined by the authenticated user and query
            parameters.
          schema:
            example: StandardRegistry
            type: string
      requestBody:
        required: true
        description: System schema payload.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SystemSchemaDTO'
            examples:
              createSystemSchema:
                summary: Create standard registry system schema
                value:
                  uuid: 1f3fa1e2-1579-4fcd-98ab-906fcca02972
                  hash: ''
                  name: NewStandardRegistrySystemSchema
                  description: Example of description
                  entity: STANDARD_REGISTRY
                  status: DRAFT
                  readonly: false
                  document:
                    $id: '#1f3fa1e2-1579-4fcd-98ab-906fcca02972'
                    $comment: >-
                      { "@id":
                      "schema:1f3fa1e2-1579-4fcd-98ab-906fcca02972#1f3fa1e2-1579-4fcd-98ab-906fcca02972",
                      "term": "1f3fa1e2-1579-4fcd-98ab-906fcca02972" }
                    title: NewStandardRegistrySystemSchema
                    description: Example of description
                    type: object
                    properties:
                      '@context':
                        oneOf:
                          - type: string
                          - type: array
                            items:
                              type: string
                        readOnly: true
                      type:
                        oneOf:
                          - type: string
                          - type: array
                            items:
                              type: string
                        readOnly: true
                      id:
                        type: string
                        readOnly: true
                      field0:
                        title: field0
                        description: ExampleOfNumberField
                        readOnly: false
                        type: number
                        $comment: >-
                          {"term":"field0","@id":"https://www.schema.org/text","availableOptions":[],"orderPosition":0}
                    required:
                      - '@context'
                      - type
                    additionalProperties: false
                    $defs: {}
                  context: null
                  version: ''
                  sourceVersion: ''
                  creator: ''
                  owner: ''
                  messageId: ''
                  documentURL: ''
                  contextURL: schema:1f3fa1e2-1579-4fcd-98ab-906fcca02972
                  iri: ''
                  fields: []
                  conditions: []
                  active: false
                  system: true
                  category: SYSTEM
                  errors: []
                  userDID: null
                  codeVersion: ''
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaDTO'
              example:
                id: f3b2a9c1e4d5678901234567
                uuid: f3b2a9c1e4d5678901234567
                name: Schema name
                description: Description
                entity: string
                iri: string
                status: string
                topicId: f3b2a9c1e4d5678901234567
                version: 1.0.0
                owner: string
                messageId: f3b2a9c1e4d5678901234567
                category: string
                documentURL: https://example.com
                contextURL: https://example.com
                document: {}
                context: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Creates a new system schema.
      tags:
        - schemas
    get:
      description: >-
        Returns all system schemas. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: SchemaApi_getSystemSchemaV2_2
      parameters:
        - name: username
          required: true
          in: path
          description: >-
            Present for URL compatibility with existing clients. The server does
            not use this value when resolving the response; the returned system
            schemas are determined by the authenticated user and query
            parameters.
          schema:
            example: StandardRegistry
            type: string
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
        - name: Api-Version
          in: header
          description: API version header. Use `2` for this endpoint variant.
          required: true
          schema:
            type: string
            example: '2'
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaDTO'
              example:
                - id: f3b2a9c1e4d5678901234567
                  uuid: f3b2a9c1e4d5678901234567
                  name: Schema name
                  description: Description
                  entity: string
                  iri: string
                  status: string
                  topicId: f3b2a9c1e4d5678901234567
                  version: 1.0.0
                  owner: string
                  messageId: f3b2a9c1e4d5678901234567
                  category: string
                  documentURL: https://example.com
                  contextURL: https://example.com
                  document: {}
                  context: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Return a list of all system schemas.
      tags:
        - schemas
  /schemas/system/{schemaId}:
    delete:
      description: >-
        Deletes the specified system schema. Access is restricted to the
        authenticated creator of that system schema; other Standard Registry
        users receive `403 Forbidden` with `message: "Invalid creator."`. Only
        users with the Standard Registry role are allowed to make the request.
      operationId: SchemaApi_deleteSystemSchema
      parameters:
        - name: schemaId
          required: true
          in: path
          description: Schema ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: 89e1e62a-7976-4e24-8dd3-997da02dc81e
                expectation: 2
                action: Delete schemas
                userId: 69c2cfc021d39e7b6d15e236
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: |-
            Forbidden.

            Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundErrorDTO'
              example:
                statusCode: 404
                message: Schema not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Deletes the specified system schema if the caller is its creator.
      tags:
        - schemas
    put:
      description: >-
        Updates the specified system schema. Access is restricted to the
        authenticated creator of that system schema; other Standard Registry
        users receive `403 Forbidden` with `message: "Invalid creator."`. Only
        users with the Standard Registry role are allowed to make the request.
      operationId: SchemaApi_setSystemSchema
      parameters:
        - name: schemaId
          required: true
          in: path
          description: Schema ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Updated system schema payload.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SchemaDTO'
            examples:
              updateSystemSchema:
                summary: Update standard registry system schema
                value:
                  id: 69ca4e053c361aeff876bde7
                  uuid: 1f3fa1e2-1579-4fcd-98ab-906fcca02972
                  hash: ''
                  name: NewStandardRegistrySystemSchemaUPDATED
                  description: Example of description UPDATED
                  entity: STANDARD_REGISTRY
                  status: DRAFT
                  readonly: false
                  document:
                    $id: '#1f3fa1e2-1579-4fcd-98ab-906fcca02972'
                    $comment: >-
                      { "@id":
                      "schema:1f3fa1e2-1579-4fcd-98ab-906fcca02972#1f3fa1e2-1579-4fcd-98ab-906fcca02972",
                      "term": "1f3fa1e2-1579-4fcd-98ab-906fcca02972" }
                    title: NewStandardRegistrySystemSchemaUPDATED
                    description: Example of description UPDATED
                    type: object
                    properties:
                      '@context':
                        oneOf:
                          - type: string
                          - type: array
                            items:
                              type: string
                        readOnly: true
                      type:
                        oneOf:
                          - type: string
                          - type: array
                            items:
                              type: string
                        readOnly: true
                      id:
                        type: string
                        readOnly: true
                      field0:
                        title: field0
                        description: ExampleOfNumberFieldUPDATED
                        readOnly: false
                        type: number
                        $comment: >-
                          {"term":"field0","@id":"https://www.schema.org/text","availableOptions":[],"orderPosition":0}
                    required:
                      - '@context'
                      - type
                    additionalProperties: false
                    $defs: {}
                  context: null
                  version: ''
                  sourceVersion: ''
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999
                  messageId: ''
                  documentURL: ''
                  contextURL: schema:1f3fa1e2-1579-4fcd-98ab-906fcca02972
                  iri: '#1f3fa1e2-1579-4fcd-98ab-906fcca02972'
                  type: 1f3fa1e2-1579-4fcd-98ab-906fcca02972
                  fields: []
                  conditions: []
                  active: false
                  system: true
                  category: SYSTEM
                  errors: []
                  userDID: null
                  codeVersion: 1.2.0
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaDTO'
              example:
                - id: f3b2a9c1e4d5678901234567
                  uuid: f3b2a9c1e4d5678901234567
                  name: Schema name
                  description: Description
                  entity: string
                  iri: string
                  status: string
                  topicId: f3b2a9c1e4d5678901234567
                  version: 1.0.0
                  owner: string
                  messageId: f3b2a9c1e4d5678901234567
                  category: string
                  documentURL: https://example.com
                  contextURL: https://example.com
                  document: {}
                  context: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: |-
            Forbidden.

            Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundErrorDTO'
              example:
                statusCode: 404
                message: Schema not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Updates the specified system schema if the caller is its creator.
      tags:
        - schemas
  /schemas/system/{schemaId}/active:
    put:
      description: >-
        Makes the selected scheme active. Other schemes of the same type become
        inactive Only users with the Standard Registry role are allowed to make
        the request.
      operationId: SchemaApi_activeSystemSchema
      parameters:
        - name: schemaId
          required: true
          in: path
          description: Schema ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: object
                nullable: true
                example: null
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundErrorDTO'
              example:
                statusCode: 404
                message: Schema not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Schema is active.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: >-
        Makes the selected scheme active. Other schemes of the same type become
        inactive
      tags:
        - schemas
  /schemas/system/entity/{schemaEntity}:
    get:
      description: Finds the schema using the schema type.
      operationId: SchemaApi_getSchemaEntity
      parameters:
        - name: schemaEntity
          required: true
          in: path
          description: Entity name
          schema:
            enum:
              - STANDARD_REGISTRY
              - USER
              - POLICY
              - MINT_TOKEN
              - INTEGRATION_DATA_V2
              - WIPE_TOKEN
              - MINT_NFTOKEN
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaDTO'
              examples:
                byEntity:
                  summary: System schema resolved for the entity
                  value:
                    uuid: StandardRegistry
                    iri: StandardRegistry
                    name: StandardRegistry
                    document:
                      $id: '#StandardRegistry'
                      $comment: >-
                        { "term": "StandardRegistry", "@id": "#StandardRegistry"
                        }
                      title: StandardRegistry
                      description: StandardRegistry
                      type: object
                      properties:
                        '@context':
                          oneOf:
                            - type: string
                            - type: array
                              items:
                                type: string
                          readOnly: true
                        type:
                          oneOf:
                            - type: string
                            - type: array
                              items:
                                type: string
                          readOnly: true
                        id:
                          type: string
                          readOnly: true
                        OrganizationName:
                          title: OrganizationName
                          description: OrganizationName
                          readOnly: false
                          type: string
                          $comment: >-
                            {"term":"OrganizationName","@id":"https://www.schema.org/text","orderPosition":0}
                        Website:
                          title: Website
                          description: Website
                          readOnly: false
                          type: string
                          $comment: >-
                            {"term":"Website","@id":"https://www.schema.org/text","orderPosition":1}
                        Tags:
                          title: Tags
                          description: Tags
                          readOnly: false
                          type: string
                          $comment: >-
                            {"term":"Tags","@id":"https://www.schema.org/text","orderPosition":2}
                      required:
                        - OrganizationName
                        - Website
                        - Tags
                      additionalProperties: false
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Finds the schema using the schema type.
      tags:
        - schemas
  /schemas/{schemaId}/export/xlsx:
    get:
      description: >-
        Returns an XLSX export file for the specified schema. Only users with
        the Standard Registry role are allowed to make the request.
      operationId: SchemaApi_getPolicyExportXlsx
      parameters:
        - name: schemaId
          required: true
          in: path
          description: Schema ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: >-
            Binary file download (`Content-Type: application/zip`,
            `Content-Disposition: attachment`). Not JSON.
          content:
            application/zip:
              schema:
                type: string
                format: binary
        '401':
          description: Unauthorized request.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Returns the specified schema in an XLSX export format.
      tags:
        - schemas
  /schemas/{topicId}/import/xlsx:
    post:
      description: >-
        Imports one or more schemas parsed from the uploaded XLSX file into the
        local DB for the specified topic. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: SchemaApi_importPolicyFromXlsx
      parameters:
        - name: topicId
          required: true
          in: path
          description: Topic Id
          schema:
            example: 0.0.6046379
            type: string
      requestBody:
        required: true
        description: >-
          Raw XLSX file bytes containing schema config. The Excel file is
          processed as a ZIP-based archive. Send with `Content-Type:
          binary/octet-stream`.
        content:
          binary/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '201':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaDTO'
              example:
                - id: f3b2a9c1e4d5678901234567
                  uuid: f3b2a9c1e4d5678901234567
                  name: Schema name
                  description: Description
                  entity: string
                  iri: string
                  status: string
                  topicId: f3b2a9c1e4d5678901234567
                  version: 1.0.0
                  owner: string
                  messageId: f3b2a9c1e4d5678901234567
                  category: string
                  documentURL: https://example.com
                  contextURL: https://example.com
                  document: {}
                  context: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Imports schemas from an XLSX file into the local DB.
      tags:
        - schemas
  /schemas/push/{topicId}/import/xlsx:
    post:
      description: >-
        Queues asynchronous import of one or more schemas parsed from the
        uploaded XLSX file into the local DB for the specified topic. Only users
        with the Standard Registry role are allowed to make the request.
      operationId: SchemaApi_importPolicyFromXlsxAsync
      parameters:
        - name: topicId
          required: true
          in: path
          description: Topic Id
          schema:
            example: 0.0.1
            type: string
        - name: schemas
          required: false
          in: query
          description: >-
            Optional comma-separated list of schema IDs to import from the
            uploaded XLSX file.
          schema:
            example: 69c38f81462c9c1141de2df2,69c38f81462c9c1141de2df3
            type: string
      requestBody:
        required: true
        description: >-
          Raw XLSX file bytes containing schema config. The Excel file is
          processed as a ZIP-based archive. Send with `Content-Type:
          binary/octet-stream`.
        content:
          binary/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: object
              example:
                taskId: 89e1e62a-7976-4e24-8dd3-997da02dc81e
                expectation: 3
                action: Import schema file
                userId: 69c2cfc021d39e7b6d15e236
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: >-
        Starts asynchronous import of schemas from an XLSX file into the local
        DB.
      tags:
        - schemas
  /schemas/import/xlsx/preview:
    post:
      description: >-
        Previews the schema from a xlsx file. Only users with the Standard
        Registry role are allowed to make the request.
      operationId: SchemaApi_importPolicyFromXlsxPreview
      parameters: []
      requestBody:
        required: true
        description: >-
          Raw XLSX file bytes containing schema config. The Excel file is
          processed as a ZIP-based archive. Send with `Content-Type:
          binary/octet-stream`.
        content:
          binary/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: object
              examples:
                preview:
                  summary: Preview of schemas and tools parsed from the XLSX file
                  value:
                    schemas:
                      - iri: '#10deca32-b66e-43c0-b744-bc0ed15d4917'
                        name: Monitoring Report
                        description: Monitoring Report
                        version: ''
                        status: DRAFT
                      - iri: '#3b92df74-ad23-4a73-8297-108437900d16'
                        name: Project Description
                        description: Project Description
                        version: ''
                        status: DRAFT
                      - iri: '#ece2072e-e031-4bf8-9fd6-9c1be591c598'
                        name: VVB
                        description: VVB
                        version: ''
                        status: DRAFT
                      - iri: '#af17530b-47e6-4eb1-b35e-9e515920ebb2'
                        name: PP
                        description: null
                        version: ''
                        status: DRAFT
                      - iri: '#aabea446-e5e0-49f9-b5ab-9b0aa4df31c9'
                        name: Date Range
                        description: null
                        version: ''
                        status: DRAFT
                      - iri: '#356d60fc-3199-470f-8452-cfdf10e77355'
                        name: Baseline Emissions Per Lamp Type and Charging Method
                        description: null
                        version: ''
                        status: DRAFT
                      - iri: '#40e36ff6-6938-49af-9e20-b80d8ac16ce3'
                        name: >-
                          Emissions Reduction (for all project lamp types and
                          charging methods)
                        description: null
                        version: ''
                        status: DRAFT
                      - iri: '#aab7e58c-94a7-43e3-aae6-128c5f439b41'
                        name: Default Annual Baseline Emissions Factor
                        description: null
                        version: ''
                        status: DRAFT
                      - iri: '#284ad979-321c-4faf-a56f-25586b8edd8f'
                        name: Additionality Determination
                        description: null
                        version: ''
                        status: DRAFT
                      - iri: '#faa9b06a-fede-4cca-97c9-47541b2f02ae'
                        name: >-
                          Minimum Requirements for the Design Specifications of
                          Project Lamps
                        description: null
                        version: ''
                        status: DRAFT
                      - iri: '#98607eef-e463-4301-ac34-1582ff902d7e'
                        name: Project Emissions Per Lamp Type and Charging Method
                        description: null
                        version: ''
                        status: DRAFT
                      - iri: '#88bbf6fc-c828-4b42-a7bc-cb43f096ea7e'
                        name: Project lamp type and charging method
                        description: null
                        version: ''
                        status: DRAFT
                      - iri: '#33379ea8-8d6c-4559-bdb4-79d72ac1596a'
                        name: Project Details
                        description: null
                        version: ''
                        status: DRAFT
                    tools:
                      - uuid: aed9799a-1273-41cd-a7a1-3e4fae066f71
                        name: Tool 07
                        messageId: '1706867530.884259218'
                      - uuid: 0edcecb5-743d-4d83-ac0f-1a9f102db873
                        name: Tool 19
                        messageId: '1706869798.177938003'
                      - uuid: 01356919-66ef-435e-ab58-3648c19ee2e2
                        name: Tool 21
                        messageId: '1706873385.455822873'
                      - uuid: 8772ca4b-4efe-4517-93ae-6c63a4281257
                        name: Tool 33
                        messageId: '1726593517.484578000'
                    errors: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Previews the schema from a xlsx file.
      tags:
        - schemas
  /schemas/export/template:
    get:
      description: >-
        Returns the XLSX template file used as a starting point for schema
        import/export workflows. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: SchemaApi_exportTemplate
      parameters: []
      responses:
        '200':
          description: >-
            Binary file download (`Content-Type: application/zip`,
            `Content-Disposition: attachment`). Not JSON.
          content:
            application/json:
              schema:
                type: string
                format: binary
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Downloads the schema XLSX template file.
      tags:
        - schemas
  /schemas/topic/{topicId}:
    delete:
      description: >-
        Deletes all schemas by topic id. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: SchemaApi_deleteSchemasByTopicId
      parameters:
        - name: topicId
          required: true
          in: path
          description: Topic Id
          schema:
            example: 0.0.1
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
                example: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundErrorDTO'
              example:
                statusCode: 404
                message: Schemas not found
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Deletes all schemas by topic id.
      tags:
        - schemas
  /schemas/deletionPreview:
    post:
      description: Returns all child schemas.
      operationId: SchemaApi_getSchemaDeletionPreview
      parameters: []
      requestBody:
        required: true
        description: Schema IDs to include into deletion preview.
        content:
          application/json:
            schema:
              type: object
              required:
                - schemaIds
              properties:
                schemaIds:
                  type: array
                  items:
                    type: string
                  example:
                    - 69aeb71ef8c5b278e3bab4e5
                    - 69b8115f3dc0fa022156fb89
      responses:
        '200':
          description: Schema deletion preview.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaDeletionPreviewDTO'
              examples:
                preview:
                  summary: Deletable and blocked child schemas
                  value:
                    deletableChildren:
                      - name: Energy Sources
                        status: DRAFT
                        version: ''
                        sourceVersion: 1.0.0
                        iri: '#c0040849-87bc-4173-9301-d84af5adfd92'
                        category: POLICY
                        id: 69ca5ccd89551902666683e0
                    blockedChildren:
                      - schema: Contact Details
                        blockingSchemas:
                          - I-REC Registrant & Participant App
                          - I-REC Issue Request
                      - schema: Production Device
                        blockingSchemas:
                          - I-REC Issue Request
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Returns all child schemas.
      tags:
        - schemas
  /schemas/delete-multiple:
    post:
      description: >-
        Deletes the schema with the provided schema ID. Only users with the
        Standard Registry role are allowed to make the request.
      operationId: SchemaApi_deleteSchemas
      parameters:
        - name: includeChildren
          required: false
          in: query
          description: Include child schemas
          schema:
            example: false
            type: boolean
      requestBody:
        required: true
        description: Schema IDs to delete.
        content:
          application/json:
            schema:
              type: object
              required:
                - schemaIds
              properties:
                schemaIds:
                  type: array
                  items:
                    type: string
                  example:
                    - 69aeb71ef8c5b278e3bab4e5
                    - 69b8115f3dc0fa022156fb89
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              example:
                taskId: 89e1e62a-7976-4e24-8dd3-997da02dc81e
                expectation: 3
                action: Delete schemas
                userId: 69c2cfc021d39e7b6d15e236
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                result: ok
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              example:
                statusCode: 422
                message: Error message
                error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                code: 500
                message: Error message
      security:
        - bearer: []
      summary: Deletes the schema with the provided schema ID.
      tags:
        - schemas
  /settings:
    post:
      description: Set settings. For users with the Standard Registry role only.
      operationId: SettingsApi_updateSettings
      parameters: []
      requestBody:
        required: true
        description: Settings.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SettingsDTO'
            examples:
              default:
                summary: Update settings
                value:
                  operatorId: 0.0.1858
                  operatorKey: ''
                  ipfsStorageApiKey: ''
      responses:
        '204':
          description: Settings updated successfully. No response body.
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Set settings.
      tags:
        - settings
    get:
      description: >-
        Returns current settings. For users with the Standard Registry role
        only.
      operationId: SettingsApi_getSettings
      parameters: []
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettingsDTO'
              examples:
                default:
                  summary: Current settings
                  value:
                    operatorId: 0.0.1858
                    operatorKey: ''
                    ipfsStorageApiKey: ''
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Returns current settings.
      tags:
        - settings
  /settings/environment:
    get:
      description: Returns current environment name.
      operationId: SettingsApi_getEnvironment
      parameters: []
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: string
              examples:
                default:
                  summary: Environment name
                  value: testnet
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Returns current environment name.
      tags:
        - settings
  /settings/about:
    get:
      description: Returns package version. For users with the Standard Registry role only.
      operationId: SettingsApi_getAbout
      parameters: []
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AboutResponseDTO'
              examples:
                default:
                  summary: Package version
                  value:
                    version: 2.8.1
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Returns package version.
      tags:
        - settings
  /tags:
    post:
      description: Creates new tag.
      operationId: TagsApi_setTags
      parameters: []
      requestBody:
        required: true
        description: Object that contains tag information.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TagDTO'
      responses:
        '201':
          description: Created tag.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TagDTO'
              examples:
                default:
                  summary: Created tag
                  value:
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    name: Carbon Credit Verification
                    description: Tag for verified carbon credit documents
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    date: '2026-03-03T17:25:53.312Z'
                    entity: PolicyDocument
                    status: Published
                    operation: Create
                    topicId: 0.0.6046379
                    messageId: '1773670900.819264517'
                    policyId: 69b411d8b23f3b6a77d12742
                    uri: >-
                      ipfs://bafkreihj7gclc4qgem27tre5je6a3t7tpdrk4li6oamdl6bnflwnoyfs5i
                    target: '1773670900.819264517'
                    localTarget: 69b411d8b23f3b6a77d12742
                    document: {}
                    tagSchemaId: null
                    inheritTags: false
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Creates new tag.
      tags:
        - tags
  /tags/search:
    post:
      description: Search tags.
      operationId: TagsApi_searchTags
      parameters: []
      requestBody:
        required: true
        description: Object that contains filters
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TagFilterDTO'
            examples:
              Single:
                value:
                  entity: PolicyDocument
                  target: '1773670900.819264517'
              Multiple:
                value:
                  entity: PolicyDocument
                  targets:
                    - '1773670900.819264517'
                    - '1773670900.819264517'
      responses:
        '200':
          description: >-
            Successful operation. Returns an object keyed by localTarget ID,
            where each value is a TagMapDTO with tags array.
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    entity:
                      type: string
                    target:
                      type: string
                    refreshDate:
                      type: string
                    tags:
                      type: array
                      items:
                        type: object
              examples:
                withTags:
                  summary: Tags found for target
                  value:
                    69b83f18cd6b7c4adf4139bc:
                      entity: PolicyDocument
                      target: '1773670900.819264517'
                      refreshDate: '2026-03-03T17:30:00.000Z'
                      tags:
                        - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                          name: Carbon Credit Verification
                          description: Tag for verified carbon credit documents
                          owner: >-
                            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                          date: '2026-03-03T17:25:53.312Z'
                          entity: PolicyDocument
                          status: Published
                          operation: Create
                          topicId: 0.0.6046379
                          messageId: '1773670900.819264517'
                          policyId: 69b411d8b23f3b6a77d12742
                          target: '1773670900.819264517'
                          localTarget: 69b411d8b23f3b6a77d12742
                empty:
                  summary: No tags found
                  value: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidEntity:
                  summary: Invalid entity type
                  value:
                    statusCode: 422
                    message: Invalid entity
                invalidTarget:
                  summary: Invalid or missing target
                  value:
                    statusCode: 422
                    message: Invalid target
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Search tags.
      tags:
        - tags
  /tags/{uuid}:
    delete:
      description: Delete tag.
      operationId: TagsApi_deleteTag
      parameters:
        - name: uuid
          required: true
          in: path
          description: Tag identifier
          schema:
            example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              examples:
                default:
                  summary: Tag deleted
                  value: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidUuid:
                  summary: Missing or invalid tag UUID
                  value:
                    statusCode: 422
                    message: Invalid uuid
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Delete tag.
      tags:
        - tags
  /tags/synchronization:
    post:
      description: Synchronization of tags with an external network.
      operationId: TagsApi_synchronizationTags
      parameters: []
      requestBody:
        required: true
        description: Object that contains filters
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TagFilterDTO'
            examples:
              Single:
                value:
                  entity: PolicyDocument
                  target: '1773670900.819264517'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TagMapDTO'
              examples:
                default:
                  summary: Tag map
                  value:
                    entity: PolicyDocument
                    target: '1773670900.819264517'
                    refreshDate: '2026-03-03T17:30:00.000Z'
                    tags:
                      - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        name: Carbon Credit Verification
                        description: Tag for verified carbon credit documents
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        date: '2026-03-03T17:25:53.312Z'
                        entity: PolicyDocument
                        status: Published
                        operation: Create
                        topicId: 0.0.6046379
                        messageId: '1773670900.819264517'
                        policyId: 69b411d8b23f3b6a77d12742
                        target: '1773670900.819264517'
                        localTarget: 69b411d8b23f3b6a77d12742
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidEntity:
                  summary: Invalid entity type
                  value:
                    statusCode: 422
                    message: Invalid entity
                invalidTarget:
                  summary: Invalid or missing target
                  value:
                    statusCode: 422
                    message: Invalid target
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Synchronization of tags with an external network.
      tags:
        - tags
  /tags/schemas:
    get:
      description: >-
        Returns all tag schemas. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: TagsApi_getSchemasV2_2
      parameters:
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaDTO'
              example:
                - id: 69aeb71ef8c5b278e3bab4e5
                  uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                  name: Tag Schema
                  description: Schema for carbon credit verification tags
                  entity: TAG
                  iri: '#tag-schema'
                  status: PUBLISHED
                  topicId: 0.0.6046379
                  version: 1.0.0
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                  messageId: '1773670900.819264517'
                  category: TAG
                  documentURL: https://ipfs.io/ipfs/example
                  contextURL: https://ipfs.io/ipfs/example
                  document: {}
                  context: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Return a list of all tag schemas.
      tags:
        - tags
    post:
      description: >-
        Creates a new tag schema. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: TagsApi_postSchemas
      parameters: []
      requestBody:
        required: true
        description: Schema config.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SchemaDTO'
      responses:
        '201':
          description: Created schema.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaDTO'
              example:
                id: 69aeb71ef8c5b278e3bab4e5
                uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                name: Tag Schema
                description: Schema for carbon credit verification tags
                entity: TAG
                iri: '#tag-schema'
                status: DRAFT
                topicId: 0.0.6046379
                version: ''
                owner: >-
                  did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                messageId: ''
                category: TAG
                documentURL: ''
                contextURL: ''
                document: {}
                context: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                schemaNotExist:
                  summary: Schema does not exist
                  value:
                    statusCode: 422
                    message: Schema does not exist.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Creates a new tag schema.
      tags:
        - tags
  /tags/schemas/{schemaId}:
    delete:
      description: >-
        Deletes the schema with the provided schema ID. Only users with the
        Standard Registry role are allowed to make the request.
      operationId: TagsApi_deleteSchema
      parameters:
        - name: schemaId
          required: true
          in: path
          description: Schema Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              examples:
                default:
                  summary: Task created
                  value:
                    taskId: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    expectation: 0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: |-
            Forbidden. Insufficient permissions.

            Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
              examples:
                default:
                  summary: Forbidden
                  value:
                    statusCode: 403
                    message: Forbidden resource
                    error: Forbidden
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Deletes the schema.
      tags:
        - tags
    put:
      description: >-
        Updates schema configuration for the specified schema ID. Only users
        with the Standard Registry role are allowed to make the request.
      operationId: TagsApi_updateSchema
      parameters:
        - name: schemaId
          required: true
          in: path
          description: Schema Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Schema config.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SchemaDTO'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaDTO'
              example:
                - id: 69aeb71ef8c5b278e3bab4e5
                  uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                  name: Tag Schema
                  description: Schema for carbon credit verification tags
                  entity: TAG
                  iri: '#tag-schema'
                  status: PUBLISHED
                  topicId: 0.0.6046379
                  version: 1.0.0
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                  messageId: '1773670900.819264517'
                  category: TAG
                  documentURL: https://ipfs.io/ipfs/example
                  contextURL: https://ipfs.io/ipfs/example
                  document: {}
                  context: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: |-
            Forbidden. Insufficient permissions.

            Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
              examples:
                default:
                  summary: Forbidden
                  value:
                    statusCode: 403
                    message: Forbidden resource
                    error: Forbidden
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Updates schema configuration.
      tags:
        - tags
  /tags/schemas/{schemaId}/publish:
    put:
      description: >-
        Publishes the schema with the provided (internal) schema ID onto IPFS,
        sends a message featuring IPFS CID into the corresponding Hedera topic.
        Only users with the Standard Registry role are allowed to make the
        request.
      operationId: TagsApi_publishTag
      parameters:
        - name: schemaId
          required: true
          in: path
          description: Schema Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaDTO'
              example:
                - id: 69aeb71ef8c5b278e3bab4e5
                  uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                  name: Tag Schema
                  description: Schema for carbon credit verification tags
                  entity: TAG
                  iri: '#tag-schema'
                  status: PUBLISHED
                  topicId: 0.0.6046379
                  version: 1.0.0
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                  messageId: '1773670900.819264517'
                  category: TAG
                  documentURL: https://ipfs.io/ipfs/example
                  contextURL: https://ipfs.io/ipfs/example
                  document: {}
                  context: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: |-
            Forbidden. Insufficient permissions.

            Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
              examples:
                default:
                  summary: Forbidden
                  value:
                    statusCode: 403
                    message: Forbidden resource
                    error: Forbidden
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Publishes the schema.
      tags:
        - tags
  /tags/schemas/published:
    get:
      description: >-
        Return a list of all published schemas. Only users with the Standard
        Registry role are allowed to make the request.
      operationId: TagsApi_getPublished
      parameters: []
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaDTO'
              example:
                - id: 69aeb71ef8c5b278e3bab4e5
                  uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                  name: Tag Schema
                  description: Schema for carbon credit verification tags
                  entity: TAG
                  iri: '#tag-schema'
                  status: PUBLISHED
                  topicId: 0.0.6046379
                  version: 1.0.0
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                  messageId: '1773670900.819264517'
                  category: TAG
                  documentURL: https://ipfs.io/ipfs/example
                  contextURL: https://ipfs.io/ipfs/example
                  document: {}
                  context: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Return a list of all published schemas.
      tags:
        - tags
  /tasks/{taskId}:
    get:
      description: Returns task statuses by Id.
      operationId: TaskApi_getTask
      parameters:
        - name: taskId
          required: true
          in: path
          description: Task Id
          schema:
            example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskStatusDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    action: Create policy
                    userId: 69aeb71ef8c5b278e3bab4e5
                    expectation: 0
                    taskId: 69aeb71ef8c5b278e3bab4e5
                    date: string
                    statuses:
                      - message: string
                        type: Info
                    result: {}
                    error: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Returns task statuses by Id.
      tags:
        - tasks
  /tasks/onboard/{taskId}:
    get:
      description: Returns task status of user onboarding by Id. No Bearer token required.
      operationId: TaskApi_getTaskStatus
      parameters:
        - name: taskId
          required: true
          in: path
          description: Task Id returned by the initiating endpoint
          schema:
            example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskStatusDTO'
        '401':
          description: Task exists but is not an onboarding task.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      summary: Returns task status of user onboarding by Id without authentication.
      tags:
        - tasks
  /tokens:
    get:
      description: >-
        Returns all tokens. For the Standard Registry role it returns only the
        list of tokens, for other users it also returns token balances as well
        as the KYC, Freeze, and Association statuses. Not allowed for the
        Auditor role.
      operationId: TokensApi_getTokensV2_2
      parameters:
        - name: policyId
          required: false
          in: query
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: status
          required: false
          in: query
          description: Token status
          schema:
            enum:
              - Associated
              - All
            type: string
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TokenDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - createDate: '2026-03-10T13:18:36.660Z'
                      updateDate: '2026-03-10T13:18:36.660Z'
                      tokenId: 737a27a4-5706-4d87-b5a2-c8a12c45d109
                      tokenName: VCU
                      tokenSymbol: VCU
                      tokenType: non-fungible
                      decimals: 0
                      initialSupply: 0
                      adminId: null
                      changeSupply: true
                      enableAdmin: true
                      enableKYC: true
                      enableFreeze: true
                      enableWipe: true
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      policyId: null
                      draftToken: true
                      id: 69b01a2c3f674c474aa928e4
                      policies:
                        - VM0042 10/27 (DRAFT)
                      policyIds:
                        - 69b01a323f674c474aa931ba
                      canDelete: true
                      associated: false
                      frozen: false
                      kyc: false
                      balance: '0'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Return a list of tokens.
      tags:
        - tokens
    post:
      description: >-
        Creates a new token. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: TokensApi_newToken
      parameters: []
      requestBody:
        required: true
        description: Object that contains token information.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TokenDTO'
            examples:
              createToken:
                value:
                  createDate: '2026-03-10T13:18:36.660Z'
                  updateDate: '2026-03-10T13:18:36.660Z'
                  tokenId: 737a27a4-5706-4d87-b5a2-c8a12c45d109
                  tokenName: VCU
                  tokenSymbol: VCU
                  tokenType: non-fungible
                  decimals: 0
                  initialSupply: 0
                  adminId: null
                  changeSupply: true
                  enableAdmin: true
                  enableKYC: true
                  enableFreeze: true
                  enableWipe: true
                  owner: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                  creator: >-
                    did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                  policyId: null
                  draftToken: true
                  id: 69b01a2c3f674c474aa928e4
                  policies:
                    - VM0042 10/27 (DRAFT)
                  policyIds:
                    - 69b01a323f674c474aa931ba
                  canDelete: true
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TokenDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - createDate: '2026-03-10T13:18:36.660Z'
                      updateDate: '2026-03-10T13:18:36.660Z'
                      tokenId: 737a27a4-5706-4d87-b5a2-c8a12c45d109
                      tokenName: VCU
                      tokenSymbol: VCU
                      tokenType: non-fungible
                      decimals: 0
                      initialSupply: 0
                      adminId: null
                      changeSupply: true
                      enableAdmin: true
                      enableKYC: true
                      enableFreeze: true
                      enableWipe: true
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      policyId: null
                      draftToken: true
                      id: 69b01a2c3f674c474aa928e4
                      policies:
                        - VM0042 10/27 (DRAFT)
                      policyIds:
                        - 69b01a323f674c474aa931ba
                      canDelete: true
                      associated: false
                      frozen: false
                      kyc: false
                      balance: '0'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Creates a new token.
      tags:
        - tokens
    put:
      description: >-
        Update token. Only users with the Standard Registry role are allowed to
        make the request.
      operationId: TokensApi_updateToken
      parameters: []
      requestBody:
        required: true
        description: Object that contains token information.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TokenDTO'
      responses:
        '201':
          description: Updated token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-10T13:18:36.660Z'
                    updateDate: '2026-03-10T13:18:36.660Z'
                    tokenId: 737a27a4-5706-4d87-b5a2-c8a12c45d109
                    tokenName: VCU
                    tokenSymbol: VCU
                    tokenType: non-fungible
                    decimals: 0
                    initialSupply: 0
                    adminId: null
                    changeSupply: true
                    enableAdmin: true
                    enableKYC: true
                    enableFreeze: true
                    enableWipe: true
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    policyId: null
                    draftToken: true
                    id: 69b01a2c3f674c474aa928e4
                    policies:
                      - VM0042 10/27 (DRAFT)
                    policyIds:
                      - 69b01a323f674c474aa931ba
                    canDelete: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: |-
            Forbidden.

            Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
              examples:
                invalidCreator:
                  summary: Not the token creator
                  value:
                    statusCode: 403
                    message: Invalid creator.
                cannotDelete:
                  summary: Token linked to active policy
                  value:
                    statusCode: 403
                    message: Token cannot be deleted.
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                tokenNotFound:
                  summary: Token not found
                  value:
                    statusCode: 404
                    message: Token not found.
                userNotFound:
                  summary: User not found
                  value:
                    statusCode: 404
                    message: User not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                userNotRegistered:
                  summary: User Hedera profile not registered
                  value:
                    statusCode: 422
                    message: User is not registered.
                invalidTokenId:
                  summary: Missing token ID
                  value:
                    statusCode: 422
                    message: The field tokenId is required.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Update token.
      tags:
        - tokens
  /tokens/{tokenId}:
    get:
      description: Return the token.
      operationId: TokensApi_getTokenByIdWithPolicies
      parameters:
        - name: tokenId
          required: true
          in: path
          description: Token identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: policyId
          required: false
          in: query
          description: Optional policy ID to filter linked policies in response
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-10T13:18:36.660Z'
                    updateDate: '2026-03-10T13:18:36.660Z'
                    tokenId: 737a27a4-5706-4d87-b5a2-c8a12c45d109
                    tokenName: VCU
                    tokenSymbol: VCU
                    tokenType: non-fungible
                    decimals: 0
                    initialSupply: 0
                    adminId: null
                    changeSupply: true
                    enableAdmin: true
                    enableKYC: true
                    enableFreeze: true
                    enableWipe: true
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    policyId: null
                    draftToken: true
                    id: 69b01a2c3f674c474aa928e4
                    policies:
                      - VM0042 10/27 (DRAFT)
                    policyIds:
                      - 69b01a323f674c474aa931ba
                    canDelete: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Return a token by id.
      tags:
        - tokens
  /tokens/push:
    post:
      description: >-
        Creates a new token. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: TokensApi_pushTokenAsync
      parameters: []
      requestBody:
        required: true
        description: Object that contains token information.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TokenDTO'
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    taskId: f3b2a9c1e4d5678901234567
                    expectation: 0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                userNotRegistered:
                  summary: User Hedera profile not registered
                  value:
                    statusCode: 422
                    message: User is not registered.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Creates a new token.
      tags:
        - tokens
    put:
      description: >-
        Update token. Only users with the Standard Registry role are allowed to
        make the request.
      operationId: TokensApi_updateTokenAsync
      parameters: []
      requestBody:
        required: true
        description: Object that contains token information.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TokenDTO'
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    taskId: f3b2a9c1e4d5678901234567
                    expectation: 0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: |-
            Forbidden.

            Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
              examples:
                invalidCreator:
                  summary: Not the token creator
                  value:
                    statusCode: 403
                    message: Invalid creator.
                cannotDelete:
                  summary: Token linked to active policy
                  value:
                    statusCode: 403
                    message: Token cannot be deleted.
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                tokenNotFound:
                  summary: Token not found
                  value:
                    statusCode: 404
                    message: Token not found.
                userNotFound:
                  summary: User not found
                  value:
                    statusCode: 404
                    message: User not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                userNotRegistered:
                  summary: User not registered
                  value:
                    statusCode: 422
                    message: User is not registered.
                invalidTokenId:
                  summary: Invalid token ID
                  value:
                    statusCode: 422
                    message: Invalid token id.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Update token.
      tags:
        - tokens
  /tokens/push/{tokenId}:
    delete:
      description: >-
        Deletes the token with the provided schema ID. Only users with the
        Standard Registry role are allowed to make the request.
      operationId: TokensApi_deleteTokenAsync
      parameters:
        - name: tokenId
          required: true
          in: path
          description: Token ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    taskId: f3b2a9c1e4d5678901234567
                    expectation: 0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: >-
            Token cannot be deleted by current user or token is used in a
            published policy.


            Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
              examples:
                invalidCreator:
                  summary: Invalid creator
                  value:
                    statusCode: 403
                    message: Invalid creator.
                cannotDelete:
                  summary: Token cannot be deleted
                  value:
                    statusCode: 403
                    message: Token cannot be deleted.
        '404':
          description: Token does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Token does not exist
                  value:
                    statusCode: 404
                    message: Token does not exist.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Deletes the token with the provided schema ID.
      tags:
        - tokens
  /tokens/push/delete-multiple:
    post:
      description: >-
        Delete multiple tokens by their IDs. Only users with the Standard
        Registry role are allowed to make the request.
      operationId: TokensApi_deleteTokensAsync
      parameters: []
      requestBody:
        required: true
        description: List of token IDs to delete.
        content:
          application/json:
            schema:
              type: object
              required:
                - tokenIds
              properties:
                tokenIds:
                  type: array
                  items:
                    type: string
                  example:
                    - 69aeb71ef8c5b278e3bab4e5
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    taskId: f3b2a9c1e4d5678901234567
                    expectation: 0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: >-
            One or more tokens cannot be deleted by current user or are used in
            published policies.


            Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
              examples:
                invalidCreator:
                  summary: Invalid creator
                  value:
                    statusCode: 403
                    message: Invalid creator.
                cannotDelete:
                  summary: Token cannot be deleted
                  value:
                    statusCode: 403
                    message: Token <name> (<id>) cannot be deleted.
        '404':
          description: No tokens found for provided IDs.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Token does not exist
                  value:
                    statusCode: 404
                    message: Token does not exist.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Delete multiple tokens.
      tags:
        - tokens
  /tokens/{tokenId}/associate:
    put:
      description: >-
        Associates the user with the provided Hedera token. Only users with the
        Installer role are allowed to make the request.
      operationId: TokensApi_associateToken
      parameters:
        - name: tokenId
          required: true
          in: path
          description: Token ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenInfoDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-10T13:18:36.660Z'
                    updateDate: '2026-03-10T13:18:36.660Z'
                    tokenId: 737a27a4-5706-4d87-b5a2-c8a12c45d109
                    tokenName: VCU
                    tokenSymbol: VCU
                    tokenType: non-fungible
                    decimals: 0
                    initialSupply: 0
                    adminId: null
                    changeSupply: true
                    enableAdmin: true
                    enableKYC: true
                    enableFreeze: true
                    enableWipe: true
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    policyId: null
                    draftToken: true
                    id: 69b01a2c3f674c474aa928e4
                    policies:
                      - VM0042 10/27 (DRAFT)
                    policyIds:
                      - 69b01a323f674c474aa931ba
                    canDelete: true
                    associated: false
                    frozen: false
                    kyc: false
                    balance: '0'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                tokenNotFound:
                  summary: Token not found
                  value:
                    statusCode: 404
                    message: Token not found.
                userNotFound:
                  summary: User not found
                  value:
                    statusCode: 404
                    message: User not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                userNotRegistered:
                  summary: User Hedera profile not registered
                  value:
                    statusCode: 422
                    message: User is not registered.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Associates the user with the provided Hedera token.
      tags:
        - tokens
  /tokens/push/{tokenId}/associate:
    put:
      description: >-
        Associates the user with the provided Hedera token. Only users with the
        Installer role are allowed to make the request.
      operationId: TokensApi_associateTokenAsync
      parameters:
        - name: tokenId
          required: true
          in: path
          description: Token ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    taskId: f3b2a9c1e4d5678901234567
                    expectation: 0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                userNotRegistered:
                  summary: User Hedera profile not registered
                  value:
                    statusCode: 422
                    message: User is not registered.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Associates the user with the provided Hedera token.
      tags:
        - tokens
  /tokens/{tokenId}/dissociate:
    put:
      description: >-
        Disassociates the user with the provided Hedera token. Only users with
        the Installer role are allowed to make the request.
      operationId: TokensApi_dissociateToken
      parameters:
        - name: tokenId
          required: true
          in: path
          description: Token ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenInfoDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-10T13:18:36.660Z'
                    updateDate: '2026-03-10T13:18:36.660Z'
                    tokenId: 737a27a4-5706-4d87-b5a2-c8a12c45d109
                    tokenName: VCU
                    tokenSymbol: VCU
                    tokenType: non-fungible
                    decimals: 0
                    initialSupply: 0
                    adminId: null
                    changeSupply: true
                    enableAdmin: true
                    enableKYC: true
                    enableFreeze: true
                    enableWipe: true
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    policyId: null
                    draftToken: true
                    id: 69b01a2c3f674c474aa928e4
                    policies:
                      - VM0042 10/27 (DRAFT)
                    policyIds:
                      - 69b01a323f674c474aa931ba
                    canDelete: true
                    associated: false
                    frozen: false
                    kyc: false
                    balance: '0'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                tokenNotFound:
                  summary: Token not found
                  value:
                    statusCode: 404
                    message: Token not found.
                userNotFound:
                  summary: User not found
                  value:
                    statusCode: 404
                    message: User not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                userNotRegistered:
                  summary: User Hedera profile not registered
                  value:
                    statusCode: 422
                    message: User is not registered.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Associate the user with the provided Hedera token.
      tags:
        - tokens
  /tokens/push/{tokenId}/dissociate:
    put:
      description: >-
        Disassociates the user with the provided Hedera token. Only users with
        the Installer role are allowed to make the request.
      operationId: TokensApi_dissociateTokenAsync
      parameters:
        - name: tokenId
          required: true
          in: path
          description: Token ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    taskId: f3b2a9c1e4d5678901234567
                    expectation: 0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                userNotRegistered:
                  summary: User Hedera profile not registered
                  value:
                    statusCode: 422
                    message: User is not registered.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Associate the user with the provided Hedera token.
      tags:
        - tokens
  /tokens/{tokenId}/transfer:
    post:
      description: >-
        Transfers fungible or non-fungible tokens from the authenticated user's
        Hedera account to the specified target account. For FT, specify amount.
        For NFT, specify serialNumbers or amount (picks from end).
      operationId: TokensApi_transferToken
      parameters:
        - name: tokenId
          required: true
          in: path
          description: Token ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferTokenDTO'
      responses:
        '200':
          description: Successful operation.
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: Transfers tokens from the authenticated user to the target account.
      tags:
        - tokens
  /tokens/push/{tokenId}/transfer:
    post:
      description: >-
        Transfers fungible or non-fungible tokens asynchronously. Returns a task
        ID for tracking.
      operationId: TokensApi_transferTokenAsync
      parameters:
        - name: tokenId
          required: true
          in: path
          description: Token ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferTokenDTO'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: Transfers tokens from the authenticated user to the target account.
      tags:
        - tokens
  /tokens/{tokenId}/{username}/grant-kyc:
    put:
      description: >-
        Sets the KYC flag for the user. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: TokensApi_grantKyc
      parameters:
        - name: tokenId
          required: true
          in: path
          description: Token ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: username
          required: true
          in: path
          description: Username
          schema:
            example: username
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenInfoDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-10T13:18:36.660Z'
                    updateDate: '2026-03-10T13:18:36.660Z'
                    tokenId: 737a27a4-5706-4d87-b5a2-c8a12c45d109
                    tokenName: VCU
                    tokenSymbol: VCU
                    tokenType: non-fungible
                    decimals: 0
                    initialSupply: 0
                    adminId: null
                    changeSupply: true
                    enableAdmin: true
                    enableKYC: true
                    enableFreeze: true
                    enableWipe: true
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    policyId: null
                    draftToken: true
                    id: 69b01a2c3f674c474aa928e4
                    policies:
                      - VM0042 10/27 (DRAFT)
                    policyIds:
                      - 69b01a323f674c474aa931ba
                    canDelete: true
                    associated: false
                    frozen: false
                    kyc: false
                    balance: '0'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                tokenNotFound:
                  summary: Token not found
                  value:
                    statusCode: 404
                    message: Token not found.
                userNotFound:
                  summary: User not found
                  value:
                    statusCode: 404
                    message: User not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                userNotRegistered:
                  summary: User Hedera profile not registered
                  value:
                    statusCode: 422
                    message: User is not registered.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Sets the KYC flag for the user.
      tags:
        - tokens
  /tokens/push/{tokenId}/{username}/grant-kyc:
    put:
      description: >-
        Sets the KYC flag for the user. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: TokensApi_grantKycAsync
      parameters:
        - name: tokenId
          required: true
          in: path
          description: Token ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: username
          required: true
          in: path
          description: Username
          schema:
            example: username
            type: string
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    taskId: f3b2a9c1e4d5678901234567
                    expectation: 0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                userNotRegistered:
                  summary: User Hedera profile not registered
                  value:
                    statusCode: 422
                    message: User is not registered.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Sets the KYC flag for the user.
      tags:
        - tokens
  /tokens/{tokenId}/{username}/revoke-kyc:
    put:
      description: >-
        Unsets the KYC flag for the user. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: TokensApi_revokeKyc
      parameters:
        - name: tokenId
          required: true
          in: path
          description: Token ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: username
          required: true
          in: path
          description: Username
          schema:
            example: username
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenInfoDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-10T13:18:36.660Z'
                    updateDate: '2026-03-10T13:18:36.660Z'
                    tokenId: 737a27a4-5706-4d87-b5a2-c8a12c45d109
                    tokenName: VCU
                    tokenSymbol: VCU
                    tokenType: non-fungible
                    decimals: 0
                    initialSupply: 0
                    adminId: null
                    changeSupply: true
                    enableAdmin: true
                    enableKYC: true
                    enableFreeze: true
                    enableWipe: true
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    policyId: null
                    draftToken: true
                    id: 69b01a2c3f674c474aa928e4
                    policies:
                      - VM0042 10/27 (DRAFT)
                    policyIds:
                      - 69b01a323f674c474aa931ba
                    canDelete: true
                    associated: false
                    frozen: false
                    kyc: false
                    balance: '0'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                tokenNotFound:
                  summary: Token not found
                  value:
                    statusCode: 404
                    message: Token not found.
                userNotFound:
                  summary: User not found
                  value:
                    statusCode: 404
                    message: User not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                userNotRegistered:
                  summary: User Hedera profile not registered
                  value:
                    statusCode: 422
                    message: User is not registered.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Unsets the KYC flag for the user.
      tags:
        - tokens
  /tokens/push/{tokenId}/{username}/revoke-kyc:
    put:
      description: >-
        Unsets the KYC flag for the user. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: TokensApi_revokeKycAsync
      parameters:
        - name: tokenId
          required: true
          in: path
          description: Token ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: username
          required: true
          in: path
          description: Username
          schema:
            example: username
            type: string
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    taskId: f3b2a9c1e4d5678901234567
                    expectation: 0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                userNotRegistered:
                  summary: User Hedera profile not registered
                  value:
                    statusCode: 422
                    message: User is not registered.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Unsets the KYC flag for the user.
      tags:
        - tokens
  /tokens/{tokenId}/{username}/freeze:
    put:
      description: >-
        Freezes transfers of the specified token for the user. Only users with
        the Standard Registry role are allowed to make the request.
      operationId: TokensApi_freezeToken
      parameters:
        - name: tokenId
          required: true
          in: path
          description: Token ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: username
          required: true
          in: path
          description: Username
          schema:
            example: username
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenInfoDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-10T13:18:36.660Z'
                    updateDate: '2026-03-10T13:18:36.660Z'
                    tokenId: 737a27a4-5706-4d87-b5a2-c8a12c45d109
                    tokenName: VCU
                    tokenSymbol: VCU
                    tokenType: non-fungible
                    decimals: 0
                    initialSupply: 0
                    adminId: null
                    changeSupply: true
                    enableAdmin: true
                    enableKYC: true
                    enableFreeze: true
                    enableWipe: true
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    policyId: null
                    draftToken: true
                    id: 69b01a2c3f674c474aa928e4
                    policies:
                      - VM0042 10/27 (DRAFT)
                    policyIds:
                      - 69b01a323f674c474aa931ba
                    canDelete: true
                    associated: false
                    frozen: false
                    kyc: false
                    balance: '0'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                tokenNotFound:
                  summary: Token not found
                  value:
                    statusCode: 404
                    message: Token not found.
                userNotFound:
                  summary: User not found
                  value:
                    statusCode: 404
                    message: User not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                userNotRegistered:
                  summary: User Hedera profile not registered
                  value:
                    statusCode: 422
                    message: User is not registered.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Freeze transfers of the specified token for the user.
      tags:
        - tokens
  /tokens/{tokenId}/{username}/unfreeze:
    put:
      description: >-
        Unfreezes transfers of the specified token for the user. Only users with
        the Standard Registry role are allowed to make the request.
      operationId: TokensApi_unfreezeToken
      parameters:
        - name: tokenId
          required: true
          in: path
          description: Token ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: username
          required: true
          in: path
          description: Username
          schema:
            example: username
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenInfoDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-10T13:18:36.660Z'
                    updateDate: '2026-03-10T13:18:36.660Z'
                    tokenId: 737a27a4-5706-4d87-b5a2-c8a12c45d109
                    tokenName: VCU
                    tokenSymbol: VCU
                    tokenType: non-fungible
                    decimals: 0
                    initialSupply: 0
                    adminId: null
                    changeSupply: true
                    enableAdmin: true
                    enableKYC: true
                    enableFreeze: true
                    enableWipe: true
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    policyId: null
                    draftToken: true
                    id: 69b01a2c3f674c474aa928e4
                    policies:
                      - VM0042 10/27 (DRAFT)
                    policyIds:
                      - 69b01a323f674c474aa931ba
                    canDelete: true
                    associated: false
                    frozen: false
                    kyc: false
                    balance: '0'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                tokenNotFound:
                  summary: Token not found
                  value:
                    statusCode: 404
                    message: Token not found.
                userNotFound:
                  summary: User not found
                  value:
                    statusCode: 404
                    message: User not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                userNotRegistered:
                  summary: User Hedera profile not registered
                  value:
                    statusCode: 422
                    message: User is not registered.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Unfreezes transfers of the specified token for the user.
      tags:
        - tokens
  /tokens/push/{tokenId}/{username}/freeze:
    put:
      description: >-
        Freezes transfers of the specified token for the user. Only users with
        the Standard Registry role are allowed to make the request.
      operationId: TokensApi_freezeTokenAsync
      parameters:
        - name: tokenId
          required: true
          in: path
          description: Token ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: username
          required: true
          in: path
          description: Username
          schema:
            example: username
            type: string
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    taskId: f3b2a9c1e4d5678901234567
                    expectation: 0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                userNotRegistered:
                  summary: User Hedera profile not registered
                  value:
                    statusCode: 422
                    message: User is not registered.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Freeze transfers of the specified token for the user.
      tags:
        - tokens
  /tokens/push/{tokenId}/{username}/unfreeze:
    put:
      description: >-
        Unfreezes transfers of the specified token for the user. Only users with
        the Standard Registry role are allowed to make the request.
      operationId: TokensApi_unfreezeTokenAsync
      parameters:
        - name: tokenId
          required: true
          in: path
          description: Token ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: username
          required: true
          in: path
          description: Username
          schema:
            example: username
            type: string
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    taskId: f3b2a9c1e4d5678901234567
                    expectation: 0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                userNotRegistered:
                  summary: User Hedera profile not registered
                  value:
                    statusCode: 422
                    message: User is not registered.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Unfreezes transfers of the specified token for the user.
      tags:
        - tokens
  /tokens/{tokenId}/{username}/info:
    get:
      description: >-
        Returns user information for the selected token. Only users with the
        Standard Registry role are allowed to make the request.
      operationId: TokensApi_getTokenInfo
      parameters:
        - name: tokenId
          required: true
          in: path
          description: Token ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: username
          required: true
          in: path
          description: Username
          schema:
            example: username
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenInfoDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-10T13:18:36.660Z'
                    updateDate: '2026-03-10T13:18:36.660Z'
                    tokenId: 737a27a4-5706-4d87-b5a2-c8a12c45d109
                    tokenName: VCU
                    tokenSymbol: VCU
                    tokenType: non-fungible
                    decimals: 0
                    initialSupply: 0
                    adminId: null
                    changeSupply: true
                    enableAdmin: true
                    enableKYC: true
                    enableFreeze: true
                    enableWipe: true
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    policyId: null
                    draftToken: true
                    id: 69b01a2c3f674c474aa928e4
                    policies:
                      - VM0042 10/27 (DRAFT)
                    policyIds:
                      - 69b01a323f674c474aa931ba
                    canDelete: true
                    associated: false
                    frozen: false
                    kyc: false
                    balance: '0'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                tokenNotFound:
                  summary: Token not found
                  value:
                    statusCode: 404
                    message: Token not found.
                userNotFound:
                  summary: User not found
                  value:
                    statusCode: 404
                    message: User not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                userNotRegistered:
                  summary: User Hedera profile not registered
                  value:
                    statusCode: 422
                    message: User is not registered.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Returns user information for the selected token.
      tags:
        - tokens
  /tokens/{tokenId}/serials:
    get:
      description: Returns token serials of current user.
      operationId: TokensApi_getTokenSerials
      parameters:
        - name: tokenId
          required: true
          in: path
          description: Token ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Token serials.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: number
              examples:
                default:
                  summary: Default example
                  value: 0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                tokenNotFound:
                  summary: Token not found
                  value:
                    statusCode: 404
                    message: Token not found.
                userNotFound:
                  summary: User not found
                  value:
                    statusCode: 404
                    message: User not found.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Return token serials.
      tags:
        - tokens
  /tokens/menu/all:
    get:
      description: >-
        Returns tokens menu. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: TokensApi_getMenu
      parameters: []
      responses:
        '200':
          description: Modules.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TokenDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - createDate: '2026-03-10T13:18:36.660Z'
                      updateDate: '2026-03-10T13:18:36.660Z'
                      tokenId: 737a27a4-5706-4d87-b5a2-c8a12c45d109
                      tokenName: VCU
                      tokenSymbol: VCU
                      tokenType: non-fungible
                      decimals: 0
                      initialSupply: 0
                      adminId: null
                      changeSupply: true
                      enableAdmin: true
                      enableKYC: true
                      enableFreeze: true
                      enableWipe: true
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      policyId: null
                      draftToken: true
                      id: 69b01a2c3f674c474aa928e4
                      policies:
                        - VM0042 10/27 (DRAFT)
                      policyIds:
                        - 69b01a323f674c474aa931ba
                      canDelete: true
                      associated: false
                      frozen: false
                      kyc: false
                      balance: '0'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Return a list of tokens.
      tags:
        - tokens
  /tokens/{tokenId}/relayer-accounts/{relayerAccountId}/info:
    get:
      description: >-
        Returns user information for the selected token. Only users with the
        Standard Registry role are allowed to make the request.
      operationId: TokensApi_getRelayerAccountInfo
      parameters:
        - name: tokenId
          required: true
          in: path
          description: Token ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: relayerAccountId
          required: true
          in: path
          description: Relayer Account Id
          schema:
            example: 0.0.6046379
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenInfoDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-10T13:18:36.660Z'
                    updateDate: '2026-03-10T13:18:36.660Z'
                    tokenId: 737a27a4-5706-4d87-b5a2-c8a12c45d109
                    tokenName: VCU
                    tokenSymbol: VCU
                    tokenType: non-fungible
                    decimals: 0
                    initialSupply: 0
                    adminId: null
                    changeSupply: true
                    enableAdmin: true
                    enableKYC: true
                    enableFreeze: true
                    enableWipe: true
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    policyId: null
                    draftToken: true
                    id: 69b01a2c3f674c474aa928e4
                    policies:
                      - VM0042 10/27 (DRAFT)
                    policyIds:
                      - 69b01a323f674c474aa931ba
                    canDelete: true
                    associated: false
                    frozen: false
                    kyc: false
                    balance: '0'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                tokenNotFound:
                  summary: Token not found
                  value:
                    statusCode: 404
                    message: Token not found.
                userNotFound:
                  summary: User not found
                  value:
                    statusCode: 404
                    message: User not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                userNotRegistered:
                  summary: User Hedera profile not registered
                  value:
                    statusCode: 422
                    message: User is not registered.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Returns user information for the selected token.
      tags:
        - tokens
  /tokens/{tokenId}/associate/{accountId}:
    put:
      description: >-
        Associates the user with the provided Hedera token. Only users with the
        Installer role are allowed to make the request.
      operationId: TokensApi_associateWithAccountToken
      parameters:
        - name: tokenId
          required: true
          in: path
          description: Token ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: accountId
          required: true
          in: path
          description: Account ID
          schema:
            example: 0.0.6046379
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenInfoDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-10T13:18:36.660Z'
                    updateDate: '2026-03-10T13:18:36.660Z'
                    tokenId: 737a27a4-5706-4d87-b5a2-c8a12c45d109
                    tokenName: VCU
                    tokenSymbol: VCU
                    tokenType: non-fungible
                    decimals: 0
                    initialSupply: 0
                    adminId: null
                    changeSupply: true
                    enableAdmin: true
                    enableKYC: true
                    enableFreeze: true
                    enableWipe: true
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    policyId: null
                    draftToken: true
                    id: 69b01a2c3f674c474aa928e4
                    policies:
                      - VM0042 10/27 (DRAFT)
                    policyIds:
                      - 69b01a323f674c474aa931ba
                    canDelete: true
                    associated: false
                    frozen: false
                    kyc: false
                    balance: '0'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                tokenNotFound:
                  summary: Token not found
                  value:
                    statusCode: 404
                    message: Token not found.
                userNotFound:
                  summary: User not found
                  value:
                    statusCode: 404
                    message: User not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                userNotRegistered:
                  summary: User Hedera profile not registered
                  value:
                    statusCode: 422
                    message: User is not registered.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Associates the user with the provided Hedera token.
      tags:
        - tokens
  /tokens/push/{tokenId}/associate/{accountId}:
    put:
      description: >-
        Associates the user with the provided Hedera token. Only users with the
        Installer role are allowed to make the request.
      operationId: TokensApi_associateTokenWithAccountAsync
      parameters:
        - name: tokenId
          required: true
          in: path
          description: Token ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: accountId
          required: true
          in: path
          description: Account ID
          schema:
            example: 0.0.6046379
            type: string
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    taskId: f3b2a9c1e4d5678901234567
                    expectation: 0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                userNotRegistered:
                  summary: User Hedera profile not registered
                  value:
                    statusCode: 422
                    message: User is not registered.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Associates the user with the provided Hedera token.
      tags:
        - tokens
  /tokens/{tokenId}/dissociate/{accountId}:
    put:
      description: >-
        Disassociates the user with the provided Hedera token. Only users with
        the Installer role are allowed to make the request.
      operationId: TokensApi_dissociateWithAccountToken
      parameters:
        - name: tokenId
          required: true
          in: path
          description: Token ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: accountId
          required: true
          in: path
          description: Account ID
          schema:
            example: 0.0.6046379
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenInfoDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-10T13:18:36.660Z'
                    updateDate: '2026-03-10T13:18:36.660Z'
                    tokenId: 737a27a4-5706-4d87-b5a2-c8a12c45d109
                    tokenName: VCU
                    tokenSymbol: VCU
                    tokenType: non-fungible
                    decimals: 0
                    initialSupply: 0
                    adminId: null
                    changeSupply: true
                    enableAdmin: true
                    enableKYC: true
                    enableFreeze: true
                    enableWipe: true
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    policyId: null
                    draftToken: true
                    id: 69b01a2c3f674c474aa928e4
                    policies:
                      - VM0042 10/27 (DRAFT)
                    policyIds:
                      - 69b01a323f674c474aa931ba
                    canDelete: true
                    associated: false
                    frozen: false
                    kyc: false
                    balance: '0'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                tokenNotFound:
                  summary: Token not found
                  value:
                    statusCode: 404
                    message: Token not found.
                userNotFound:
                  summary: User not found
                  value:
                    statusCode: 404
                    message: User not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                userNotRegistered:
                  summary: User Hedera profile not registered
                  value:
                    statusCode: 422
                    message: User is not registered.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Associate the user with the provided Hedera token.
      tags:
        - tokens
  /tokens/push/{tokenId}/dissociate/{accountId}:
    put:
      description: >-
        Disassociates the user with the provided Hedera token. Only users with
        the Installer role are allowed to make the request.
      operationId: TokensApi_dissociateTokenWithAccountAsync
      parameters:
        - name: tokenId
          required: true
          in: path
          description: Token ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: accountId
          required: true
          in: path
          description: Account ID
          schema:
            example: 0.0.6046379
            type: string
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    taskId: f3b2a9c1e4d5678901234567
                    expectation: 0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                userNotRegistered:
                  summary: User Hedera profile not registered
                  value:
                    statusCode: 422
                    message: User is not registered.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Associate the user with the provided Hedera token.
      tags:
        - tokens
  /themes:
    post:
      description: >-
        Creates a new theme. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: ThemesApi_setThemes
      parameters: []
      requestBody:
        required: true
        description: Object that contains a theme.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ThemeDTO'
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThemeDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-25T14:36:51.320Z'
                    updateDate: '2026-03-25T14:36:51.320Z'
                    uuid: 71725b88-1801-4ab6-b672-3c133cd73e89
                    name: Test Theme
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    rules:
                      - description: Container style
                        text: '#ffffff'
                        background: '#1a1a2e'
                        border: '#16213e'
                        shape: '0'
                        borderWidth: 2px
                        filterType: type
                        filterValue: interfaceContainerBlock
                    id: 69c3f303810b639b34bae861
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Creates a new theme.
      tags:
        - themes
    get:
      description: >-
        Returns a list of all themes. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: ThemesApi_getThemes
      parameters: []
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ThemeDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - createDate: '2026-03-25T14:36:51.320Z'
                      updateDate: '2026-03-25T14:36:51.320Z'
                      uuid: 71725b88-1801-4ab6-b672-3c133cd73e89
                      name: Test Theme
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      rules:
                        - description: Container style
                          text: '#ffffff'
                          background: '#1a1a2e'
                          border: '#16213e'
                          shape: '0'
                          borderWidth: 2px
                          filterType: type
                          filterValue: interfaceContainerBlock
                      id: 69c3f303810b639b34bae861
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Returns a list of all themes.
      tags:
        - themes
  /themes/{themeId}:
    put:
      description: >-
        Updates theme configuration for the specified theme ID. Only users with
        the Standard Registry role are allowed to make the request.
      operationId: ThemesApi_updateTheme
      parameters:
        - name: themeId
          required: true
          in: path
          description: Theme Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Object that contains a theme.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ThemeDTO'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThemeDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-25T14:36:51.320Z'
                    updateDate: '2026-03-25T14:36:51.320Z'
                    uuid: 71725b88-1801-4ab6-b672-3c133cd73e89
                    name: Test Theme
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    rules:
                      - description: Container style
                        text: '#ffffff'
                        background: '#1a1a2e'
                        border: '#16213e'
                        shape: '0'
                        borderWidth: 2px
                        filterType: type
                        filterValue: interfaceContainerBlock
                    id: 69c3f303810b639b34bae861
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Theme not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Theme not found
                  value:
                    statusCode: 404
                    message: Theme not found.
        '422':
          description: Invalid theme ID.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                default:
                  summary: Invalid theme ID
                  value:
                    statusCode: 422
                    message: Invalid theme id
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Updates theme configuration.
      tags:
        - themes
    delete:
      description: >-
        Deletes the theme with the provided theme ID. Only users with the
        Standard Registry role are allowed to make the request.
      operationId: ThemesApi_deleteTheme
      parameters:
        - name: themeId
          required: true
          in: path
          description: Theme Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              examples:
                default:
                  summary: Default example
                  value: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Invalid theme ID.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                default:
                  summary: Invalid theme ID
                  value:
                    statusCode: 422
                    message: Invalid theme id
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                themeNotFound:
                  summary: Theme not found in guardian-service
                  value:
                    statusCode: 500
                    message: Theme is not found
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Deletes the theme.
      tags:
        - themes
  /themes/import/file:
    post:
      description: >-
        Imports new theme from the provided zip file into the local DB. Only
        users with the Standard Registry role are allowed to make the request.
      operationId: ThemesApi_importTheme
      parameters: []
      requestBody:
        required: true
        description: A zip file containing theme to be imported.
        content:
          application/json:
            schema:
              type: string
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThemeDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-25T14:36:51.320Z'
                    updateDate: '2026-03-25T14:36:51.320Z'
                    uuid: 71725b88-1801-4ab6-b672-3c133cd73e89
                    name: Test Theme
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    rules:
                      - description: Container style
                        text: '#ffffff'
                        background: '#1a1a2e'
                        border: '#16213e'
                        shape: '0'
                        borderWidth: 2px
                        filterType: type
                        filterValue: interfaceContainerBlock
                    id: 69c3f303810b639b34bae861
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Imports new theme from a zip file.
      tags:
        - themes
  /themes/{themeId}/export/file:
    get:
      description: >-
        Returns a zip file containing the theme. Only users with the Standard
        Registry role are allowed to make the request.
      operationId: ThemesApi_exportTheme
      parameters:
        - name: themeId
          required: true
          in: path
          description: Theme Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation. Response zip file.
          content:
            application/zip:
              schema:
                type: string
                format: binary
        '401':
          description: Unauthorized request.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Returns a zip file containing the theme.
      tags:
        - themes
  /trust-chains:
    get:
      description: >-
        Returns a list of all VP documents. Only users with the Standard
        Registry role are allowed to make the request.
      operationId: TrustChainsApi_getTrustChains
      parameters:
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
        - name: policyId
          required: false
          in: query
          description: Filter by policy database ID
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: policyOwner
          required: false
          in: query
          description: Filter by policy owner DID
          schema:
            example: >-
              did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
            type: string
      responses:
        '200':
          description: >-
            Successful operation. Returns VP documents array and total count in
            X-Total-Count header.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VpDocumentDTO'
              examples:
                withDocuments:
                  summary: VP documents found
                  value:
                    - id: 69aeb71ef8c5b278e3bab4e5
                      hash: GcDE9NsPJc7oCZvSVJySCZHxTxvjc3ZAMgtKozP1r1Eh
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      type: VP
                      policyId: 69b411d8b23f3b6a77d12742
                      tag: mint_token
                      createDate: '2026-03-03T17:25:53.312Z'
                      updateDate: '2026-03-03T17:26:10.000Z'
                      document:
                        id: urn:uuid:962aa166-7da1-4fab-ad88-6681ac55f770
                        type:
                          - VerifiablePresentation
                        '@context':
                          - https://www.w3.org/2018/credentials/v1
                empty:
                  summary: No VP documents match the filter
                  value: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Returns a list of all VP documents.
      tags:
        - trust-chains
  /trust-chains/{hash}:
    get:
      description: >-
        Builds and returns a trustchain, from the VP to the root VC document.
        Only users with the Standard Registry role are allowed to make the
        request.
      operationId: TrustChainsApi_getTrustChainByHash
      parameters:
        - name: hash
          required: true
          in: path
          description: VP document hash used to build the trust chain
          schema:
            example: GcDE9NsPJc7oCZvSVJySCZHxTxvjc3ZAMgtKozP1r1Eh
            type: string
      responses:
        '200':
          description: Successful operation. Returns the trust chain and user map.
          content:
            application/json:
              schema:
                type: object
                properties:
                  chain:
                    type: array
                    description: >-
                      Ordered array of documents forming the trust chain (from
                      VP to root VC)
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: Document ID or DID
                        type:
                          type: string
                          description: Document type (VC, VP, DID)
                        tag:
                          type: string
                          description: Policy block tag
                        label:
                          type: string
                          description: Human-readable label
                        schema:
                          type: string
                          description: Schema identifier
                        owner:
                          type: string
                          description: Document owner DID
                        document:
                          type: object
                          description: Raw document content
                      required:
                        - id
                        - type
                        - tag
                        - label
                        - schema
                        - owner
                        - document
                  userMap:
                    type: array
                    description: >-
                      Mapping of DIDs to usernames for all users in the trust
                      chain
                    items:
                      type: object
                      properties:
                        did:
                          type: string
                          description: User DID
                        username:
                          type: string
                          description: Username
                      required:
                        - did
                        - username
                required:
                  - chain
                  - userMap
              examples:
                default:
                  summary: Default example
                  value:
                    chain:
                      - id: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        type: DID
                        tag: ''
                        label: DID Document
                        schema: ''
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        document: {}
                      - id: urn:uuid:962aa166-7da1-4fab-ad88-6681ac55f770
                        type: VC
                        tag: create_vc
                        label: Verifiable Credential
                        schema: '#StandardRegistry'
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        document: {}
                    userMap:
                      - did: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        username: StandardRegistry
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Builds and returns a trustchain, from the VP to the root VC document.
      tags:
        - trust-chains
  /wizard/policy:
    post:
      description: >-
        Creates a new policy by wizard. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: WizardApi_setPolicy
      parameters: []
      requestBody:
        required: true
        description: >-
          Wizard configuration containing policy metadata, roles, schemas, and
          trust chain settings.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WizardConfigDTO'
            examples:
              wizardConfig:
                value:
                  roles:
                    - Project_Proponent
                    - VVB
                  policy:
                    name: New Wizard Policy
                    description: Policy created by wizard
                    topicDescription: Wizard policy topic
                    policyTag: Tag_wizard_1773408686116
                  schemas: []
                  trustChain: []
      responses:
        '201':
          description: >-
            Successful operation. Returns the created policy ID and the wizard
            configuration used.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WizardResultDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    policyId: 69b411d8b23f3b6a77d12742
                    wizardConfig:
                      roles:
                        - Project_Proponent
                        - VVB
                      policy:
                        name: New Wizard Policy
                        description: Policy created by wizard
                        topicDescription: Wizard policy topic
                        policyTag: Tag_wizard_1773408686116
                      schemas: []
                      trustChain: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Creates a new policy.
      tags:
        - wizard
  /wizard/push/policy:
    post:
      description: >-
        Creates a new policy by wizard. Only users with the Standard Registry
        role are allowed to make the request.
      operationId: WizardApi_setPolicyAsync
      parameters: []
      requestBody:
        required: true
        description: >-
          Wizard configuration with saveState flag. When saveState is true, the
          wizard state is persisted for future editing.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WizardConfigAsyncDTO'
            examples:
              wizardConfigAsync:
                value:
                  saveState: true
                  wizardConfig:
                    roles:
                      - Project_Proponent
                      - VVB
                    policy:
                      name: New Wizard Policy
                      description: Policy created by wizard
                      topicDescription: Wizard policy topic
                      policyTag: Tag_wizard_1773408686116
                    schemas: []
                    trustChain: []
      responses:
        '202':
          description: Task accepted. Use the returned taskId to poll for the result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    taskId: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    expectation: 0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Creates a new policy.
      tags:
        - wizard
  /wizard/{policyId}/config:
    post:
      description: >-
        Get policy config by wizard. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: WizardApi_setPolicyConfig
      parameters:
        - name: policyId
          required: true
          in: path
          description: Database ID of the policy to get the wizard configuration for
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Wizard configuration to apply to the existing policy.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WizardConfigDTO'
            examples:
              wizardConfig:
                value:
                  roles:
                    - Project_Proponent
                    - VVB
                  policy:
                    name: New Wizard Policy
                    description: Policy created by wizard
                    topicDescription: Wizard policy topic
                    policyTag: Tag_wizard_1773408686116
                  schemas: []
                  trustChain: []
      responses:
        '200':
          description: >-
            Successful operation. Returns the policy config preview and the
            wizard configuration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WizardPreviewDTO'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Get policy config.
      tags:
        - wizard
  /branding:
    post:
      description: >-
        Update branding. Only users with the Standard Registry role are allowed
        to make the request.
      operationId: BrandingApi_setBranding
      parameters: []
      requestBody:
        required: true
        description: Object that contains config.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BrandingDTO'
            examples:
              default:
                summary: Update branding
                value:
                  headerColor: '#0031ff'
                  headerColor1: '#8259ef'
                  primaryColor: '#0031ff'
                  companyName: GUARDIAN
                  companyLogoUrl: /assets/images/logo.png
                  loginBannerUrl: /assets/bg.jpg
                  faviconUrl: favicon.ico
      responses:
        '204':
          description: Branding updated successfully. No response body.
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Update branding.
      tags:
        - branding
    get:
      description: Returns current branding configuration.
      operationId: BrandingApi_getBranding
      parameters: []
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandingDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    headerColor: '#0031ff'
                    headerColor1: '#8259ef'
                    primaryColor: '#0031ff'
                    companyName: GUARDIAN
                    companyLogoUrl: /assets/images/logo.png
                    loginBannerUrl: /assets/bg.jpg
                    faviconUrl: favicon.ico
                    termsAndConditions: Lorem Ipsum Version Introduction...
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      summary: Returns branding configuration.
      tags:
        - branding
  /suggestions:
    post:
      description: >-
        Get next and nested suggested block types. Only users with the Standard
        Registry role are allowed to make the request.
      operationId: SuggestionsApi_policySuggestions
      parameters: []
      requestBody:
        required: true
        description: Data.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SuggestionsInputDTO'
            examples:
              default:
                summary: Get block suggestions
                value:
                  blockType: interfaceContainerBlock
      responses:
        '200':
          description: >-
            Successful operation. Suggested next and nested block types
            respectively.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestionsOutputDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    next: string
                    nested: string
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Get next and nested suggested block types
      tags:
        - suggestions
  /suggestions/config:
    post:
      description: >-
        Set suggestions config. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: SuggestionsApi_setPolicySuggestionsConfig
      parameters: []
      requestBody:
        required: true
        description: Suggestions config.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SuggestionsConfigDTO'
            examples:
              default:
                summary: Update config
                value:
                  items:
                    - id: 69aeb71ef8c5b278e3bab4e5
                      type: block
                      index: 0
      responses:
        '201':
          description: Successful operation. Returns the updated suggestions config.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestionsConfigDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    items:
                      - id: 69aeb71ef8c5b278e3bab4e5
                        type: string
                        index: 0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Set suggestions config
      tags:
        - suggestions
    get:
      description: >-
        Get suggestions config. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: SuggestionsApi_getPolicySuggestionsConfig
      parameters: []
      responses:
        '200':
          description: Successful operation. Response suggestions config.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestionsConfigDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    items:
                      - id: 69aeb71ef8c5b278e3bab4e5
                        type: string
                        index: 0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Get suggestions config
      tags:
        - suggestions
  /notifications:
    get:
      description: Returns all notifications.
      operationId: NotificationsApi_getAllNotifications
      parameters:
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: Successful operation. Returns notifications and count.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/NotificationDTO'
              examples:
                withNotifications:
                  summary: Notifications list
                  value:
                    - createDate: '2026-03-25T14:40:28.853Z'
                      updateDate: '2026-03-25T14:40:28.853Z'
                      userId: 69b00a309fe1408d21bea39a
                      title: Policy published
                      type: SUCCESS
                      action: POLICY_CONFIGURATION
                      result: 69b83f18cd6b7c4adf4139bc
                      message: Policy 69b83f18cd6b7c4adf4139bc published
                      read: false
                      old: false
                      id: 69c3f3dc0c86dc7119046b9f
                    - createDate: '2026-03-10T13:15:21.260Z'
                      updateDate: '2026-03-10T13:15:21.260Z'
                      userId: 69b00a309fe1408d21bea39a
                      title: Import schema file
                      type: ERROR
                      message: >-
                        Cannot destructure property 'category' of '(intermediate
                        value)' as it is null.
                      read: false
                      old: false
                      id: 69b01969b8a32e85cd3714bd
                empty:
                  summary: No notifications
                  value: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Get all notifications
      tags:
        - notifications
  /notifications/new:
    get:
      description: Returns new notifications.
      operationId: NotificationsApi_getNewNotifications
      parameters: []
      responses:
        '200':
          description: Successful operation. Returns new notifications.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/NotificationDTO'
              examples:
                default:
                  summary: New notifications
                  value:
                    - createDate: '2026-03-25T14:40:28.853Z'
                      updateDate: '2026-03-25T14:40:28.853Z'
                      userId: 69b00a309fe1408d21bea39a
                      title: Policy published
                      type: SUCCESS
                      action: POLICY_CONFIGURATION
                      result: 69b83f18cd6b7c4adf4139bc
                      message: Policy 69b83f18cd6b7c4adf4139bc published
                      read: false
                      old: false
                      id: 69c3f3dc0c86dc7119046b9f
                    - createDate: '2026-03-10T13:15:21.260Z'
                      updateDate: '2026-03-10T13:15:21.260Z'
                      userId: 69b00a309fe1408d21bea39a
                      title: Import schema file
                      type: ERROR
                      message: >-
                        Cannot destructure property 'category' of '(intermediate
                        value)' as it is null.
                      read: false
                      old: false
                      id: 69b01969b8a32e85cd3714bd
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                userNotRegistered:
                  summary: User is not registered
                  value:
                    statusCode: 500
                    message: User is not registered
                generic:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Get new notifications
      tags:
        - notifications
  /notifications/progresses:
    get:
      description: Returns progresses.
      operationId: NotificationsApi_getProgresses
      parameters: []
      responses:
        '200':
          description: Successful operation. Returns progresses.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProgressDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - action: string
                      message: string
                      progress: 0
                      type: string
                      taskId: 69aeb71ef8c5b278e3bab4e5
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                userNotRegistered:
                  summary: User is not registered
                  value:
                    statusCode: 500
                    message: User is not registered
                generic:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Get progresses
      tags:
        - notifications
  /notifications/read/all:
    post:
      description: Marks all notifications as read and returns them.
      operationId: NotificationsApi_readAll
      parameters: []
      responses:
        '200':
          description: Successful operation. Returns notifications.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/NotificationDTO'
              examples:
                default:
                  summary: Notifications marked as read
                  value:
                    - createDate: '2026-03-25T14:40:28.853Z'
                      updateDate: '2026-03-25T14:40:28.853Z'
                      userId: 69b00a309fe1408d21bea39a
                      title: Policy published
                      type: SUCCESS
                      action: POLICY_CONFIGURATION
                      result: 69b83f18cd6b7c4adf4139bc
                      message: Policy 69b83f18cd6b7c4adf4139bc published
                      read: false
                      old: false
                      id: 69c3f3dc0c86dc7119046b9f
                    - createDate: '2026-03-10T13:15:21.260Z'
                      updateDate: '2026-03-10T13:15:21.260Z'
                      userId: 69b00a309fe1408d21bea39a
                      title: Import schema file
                      type: ERROR
                      message: >-
                        Cannot destructure property 'category' of '(intermediate
                        value)' as it is null.
                      read: false
                      old: false
                      id: 69b01969b8a32e85cd3714bd
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                userNotRegistered:
                  summary: User is not registered
                  value:
                    statusCode: 500
                    message: User is not registered
                generic:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Read all notifications
      tags:
        - notifications
  /notifications/delete/{notificationId}:
    delete:
      description: Returns deleted notifications count.
      operationId: NotificationsApi_delete
      parameters:
        - name: notificationId
          required: true
          in: path
          description: Notification Identifier
          schema:
            example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
            type: string
      responses:
        '200':
          description: Successful operation. Returns deleted notifications count.
          content:
            application/json:
              schema:
                type: number
              examples:
                default:
                  summary: Default example
                  value: 0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      security:
        - bearer: []
      summary: Delete notifications up to this point
      tags:
        - notifications
  /projects/search:
    post:
      description: Search projects by filters
      operationId: ProjectsAPI_projectSearch
      parameters: []
      requestBody:
        required: true
        description: >-
          Search filters for projects. Optionally filter by category IDs and/or
          policy IDs.
        content:
          application/json:
            schema:
              type: object
              properties:
                categoryIds:
                  type: array
                  items:
                    type: string
                  description: Filter by category IDs
                policyIds:
                  type: array
                  items:
                    type: string
                  description: Filter by policy IDs
            examples:
              withFilters:
                summary: Filter by policy IDs
                value:
                  policyIds:
                    - 69aeb71ef8c5b278e3bab4e5
              noFilters:
                summary: Get all projects
                value: {}
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - id: 69aeb71ef8c5b278e3bab4e5
                      policyId: 69aeb71ef8c5b278e3bab4e5
                      policyName: string
                      registered: string
                      title: string
                      companyName: string
                      sectoralScope: string
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      summary: Search projects
      tags:
        - projects
  /projects/compare/documents:
    post:
      description: Compare documents.
      operationId: ProjectsAPI_compareDocumentsV2_2
      parameters: []
      requestBody:
        required: true
        description: Filters.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterDocumentsDTO'
            examples:
              Filter1:
                value:
                  documentId1: 69aeb71ef8c5b278e3bab4e5
                  documentId2: 69aeb71ef8c5b278e3bab4e5
              Filter2:
                value:
                  documentIds:
                    - 69aeb71ef8c5b278e3bab4e5
                    - 69aeb71ef8c5b278e3bab4e5
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompareDocumentsV2DTO'
              examples:
                default:
                  summary: Default example
                  value:
                    projects:
                      documents: {}
                      left: {}
                      right: {}
                      total: {}
                    presentations:
                      documents: {}
                      left: {}
                      right: {}
                      total: {}
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                default:
                  summary: Invalid parameters
                  value:
                    statusCode: 422
                    message: Invalid parameters
                    error: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      summary: Compare documents.
      tags:
        - projects
  /projects/properties:
    get:
      description: Get all properties
      operationId: ProjectsAPI_getPolicyProperties
      parameters: []
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PropertiesDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - id: 69aeb71ef8c5b278e3bab4e5
                      title: string
                      value: string
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Internal server error
                  value:
                    statusCode: 500
                    message: Something went wrong
      summary: Get all properties
      tags:
        - projects
  /record/{policyId}/status:
    get:
      description: >-
        Get recording or running status. Policy must be in dry-run mode,
        otherwise returns 403 "Invalid status.". Only users with the Standard
        Registry role are allowed to make the request.
      operationId: RecordApi_getRecordStatus
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordStatusDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    type: string
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    status: string
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidStatus:
                  summary: Policy is not in dry-run mode
                  value:
                    statusCode: 403
                    message: Invalid status.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Get recording or running status.
      tags:
        - record
  /record/{policyId}/recording/start:
    post:
      description: >-
        Start recording. Only users with the Standard Registry role are allowed
        to make the request.
      operationId: RecordApi_startRecord
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Object that contains options
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Object'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              examples:
                default:
                  summary: Default example
                  value: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidStatus:
                  summary: Policy is not in dry-run mode
                  value:
                    statusCode: 403
                    message: Invalid status.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Start recording.
      tags:
        - record
  /record/{policyId}/recording/stop:
    post:
      description: >-
        Stop recording. Only users with the Standard Registry role are allowed
        to make the request.
      operationId: RecordApi_stopRecord
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Object that contains options
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Object'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: string
                format: binary
              examples:
                default:
                  summary: Default example
                  value:
                    result: ok
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidStatus:
                  summary: Policy is not in dry-run mode
                  value:
                    statusCode: 403
                    message: Invalid status.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Stop recording.
      tags:
        - record
  /record/{policyId}/recording/actions:
    get:
      description: >-
        Get recorded actions. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: RecordApi_getRecordActions
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RecordActionDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      policyId: 69aeb71ef8c5b278e3bab4e5
                      method: string
                      action: string
                      time: string
                      user: string
                      target: string
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidStatus:
                  summary: Policy is not in dry-run mode
                  value:
                    statusCode: 403
                    message: Invalid status.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Get recorded actions.
      tags:
        - record
  /record/{policyId}/running/start:
    post:
      description: >-
        Run record from a zip file. Only users with the Standard Registry role
        are allowed to make the request.
      operationId: RecordApi_runRecord
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: importRecords
          required: true
          in: query
          schema:
            type: string
        - name: syncNewRecords
          required: true
          in: query
          schema:
            type: string
        - name: fromPolicyId
          required: true
          in: query
          schema:
            type: string
      requestBody:
        required: true
        description: A zip file containing record to be run.
        content:
          application/json:
            schema:
              type: string
      responses:
        '200':
          description: Record UUID.
          content:
            application/json:
              schema:
                type: string
              examples:
                default:
                  summary: Default example
                  value: string
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidStatus:
                  summary: Policy is not in dry-run mode
                  value:
                    statusCode: 403
                    message: Invalid status.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Run record from a zip file.
      tags:
        - record
  /record/{policyId}/running/stop:
    post:
      description: >-
        Stop running. Only users with the Standard Registry role are allowed to
        make the request.
      operationId: RecordApi_stopRunning
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Object that contains options
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Object'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              examples:
                default:
                  summary: Default example
                  value: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidStatus:
                  summary: Policy is not in dry-run mode
                  value:
                    statusCode: 403
                    message: Invalid status.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Stop running.
      tags:
        - record
  /record/{policyId}/running/results:
    get:
      description: >-
        Get running results. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: RecordApi_getRecordResults
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RunningResultDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    info:
                      tokens: eyJhbGciOi...
                      documents: 0
                    total: 0
                    documents:
                      - type: string
                        schema: string
                        rate: string
                        documents: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidStatus:
                  summary: Policy is not in dry-run mode
                  value:
                    statusCode: 403
                    message: Invalid status.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Get running results.
      tags:
        - record
  /record/{policyId}/recording/action-documents:
    get:
      description: >-
        Returns all VC and VP documents from the dry-run store that share the
        given recordActionId. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: RecordApi_getRecordActionDocuments
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: recordActionId
          required: true
          in: query
          description: Record action UUID
          schema:
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
      security:
        - bearer: []
      summary: Get documents produced by a recorded action.
      tags:
        - record
  /record/{policyId}/running/details:
    get:
      description: >-
        Get running details. Only users with the Standard Registry role are
        allowed to make the request.
      operationId: RecordApi_getRecordDetails
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RunningDetailsDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    left: {}
                    right: {}
                    total: 0
                    documents: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidStatus:
                  summary: Policy is not in dry-run mode
                  value:
                    statusCode: 403
                    message: Invalid status.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Get running details.
      tags:
        - record
  /record/{policyId}/running/fast-forward:
    post:
      description: >-
        Fast Forward. Only users with the Standard Registry role are allowed to
        make the request.
      operationId: RecordApi_fastForward
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Object that contains options
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Object'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              examples:
                default:
                  summary: Default example
                  value: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidStatus:
                  summary: Policy is not in dry-run mode
                  value:
                    statusCode: 403
                    message: Invalid status.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Fast Forward.
      tags:
        - record
  /record/{policyId}/running/retry:
    post:
      description: >-
        Retry step. Only users with the Standard Registry role are allowed to
        make the request.
      operationId: RecordApi_retryStep
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Object that contains options
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Object'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              examples:
                default:
                  summary: Default example
                  value: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidStatus:
                  summary: Policy is not in dry-run mode
                  value:
                    statusCode: 403
                    message: Invalid status.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Retry step.
      tags:
        - record
  /record/{policyId}/running/skip:
    post:
      description: >-
        Skip step. Only users with the Standard Registry role are allowed to
        make the request.
      operationId: RecordApi_skipStep
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Object that contains options
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Object'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              examples:
                default:
                  summary: Default example
                  value: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidStatus:
                  summary: Policy is not in dry-run mode
                  value:
                    statusCode: 403
                    message: Invalid status.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Skip step.
      tags:
        - record
  /ai-suggestions/ask:
    get:
      description: Returns AI response to the current question
      operationId: AISuggestionsAPI_getAIAnswer
      parameters:
        - name: q
          required: true
          in: query
          description: The question of choosing a methodology
          schema:
            example: Find me large scale projects
            type: string
      responses:
        '200':
          description: >-
            Successful operation. Returns a comma-separated list of suggested
            methodology codes.
          content:
            application/json:
              schema:
                type: string
              examples:
                withSuggestions:
                  summary: AI returned suggestions
                  value: ACM0001, ACM0002, ACM0006, ACM0007, ACM0018
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 500
                    message: Error message
      summary: Get methodology suggestion
      tags:
        - ai-suggestions
  /ai-suggestions/rebuild-vector:
    put:
      description: Rebuilds vector based on policy data in the DB
      operationId: AISuggestionsAPI_rebuildVector
      parameters: []
      responses:
        '200':
          description: Successful operation. Returns true when vector rebuild is complete.
          content:
            application/json:
              schema:
                type: boolean
              examples:
                success:
                  summary: Vector rebuilt successfully
                  value: true
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 500
                    message: Error message
      summary: Rebuild AI vector
      tags:
        - ai-suggestions
  /permissions:
    get:
      description: >-
        Returns the complete list of available permissions in the system. Each
        permission has a category, entity, action, and optional dependencies on
        other permissions.
      operationId: PermissionsApi_getPermissions
      parameters: []
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PermissionsDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - name: ANALYTIC_POLICY_READ
                      category: ANALYTIC
                      entity: POLICY
                      action: READ
                      disabled: false
                      dependOn:
                        - POLICIES_POLICY_READ
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidRole:
                  summary: Role not found or invalid
                  value:
                    statusCode: 500
                    message: Invalid role
                userNotFound:
                  summary: User does not exist
                  value:
                    statusCode: 500
                    message: User does not exist
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Return a list of all permissions.
      tags:
        - permissions
  /permissions/roles:
    get:
      description: >-
        Returns a paginated list of custom roles created by the current Standard
        Registry. Filter by role name with partial match.
      operationId: PermissionsApi_getRoles
      parameters:
        - name: name
          required: false
          in: query
          description: >-
            Filter by role name (case-insensitive, partial match). Leave empty
            to return all.
          schema:
            example: ''
            type: string
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: >-
            Successful operation. Returns roles array and total count in
            X-Total-Count header.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RoleDTO'
              examples:
                withRoles:
                  summary: Roles found
                  value:
                    - createDate: '2026-03-10T13:06:42.559Z'
                      updateDate: '2026-03-10T13:06:54.056Z'
                      uuid: 5c4eb19b-a946-4edb-a79f-e7199317824c
                      name: Policy User
                      description: ''
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      permissions:
                        - CONTRACTS_CONTRACT_READ
                        - POLICIES_POLICY_EXECUTE
                        - POLICIES_POLICY_READ
                        - TOKENS_TOKEN_READ
                        - TAGS_TAG_READ
                      default: false
                      readonly: false
                      id: 69b017625a07d3f3b40a9acd
                empty:
                  summary: No roles
                  value: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidRole:
                  summary: Role not found or invalid
                  value:
                    statusCode: 500
                    message: Invalid role
                userNotFound:
                  summary: User does not exist
                  value:
                    statusCode: 500
                    message: User does not exist
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Return a list of all roles.
      tags:
        - permissions
    post:
      description: Creates new role.
      operationId: PermissionsApi_createRole
      parameters: []
      requestBody:
        required: true
        description: Object that contains role information.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RoleDTO'
            examples:
              createRole:
                summary: Create a new custom role
                value:
                  name: Custom Role
                  description: Role for VVB users
                  permissions:
                    - POLICIES_POLICY_READ
                    - TOKENS_TOKEN_READ
      responses:
        '201':
          description: Created role.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-10T13:06:42.559Z'
                    updateDate: '2026-03-10T13:06:54.056Z'
                    uuid: 5c4eb19b-a946-4edb-a79f-e7199317824c
                    name: Policy User
                    description: ''
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    permissions:
                      - CONTRACTS_CONTRACT_READ
                      - POLICIES_POLICY_EXECUTE
                      - POLICIES_POLICY_READ
                      - TOKENS_TOKEN_READ
                      - TAGS_TAG_READ
                    default: false
                    readonly: false
                    id: 69b017625a07d3f3b40a9acd
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidRole:
                  summary: Role not found or invalid
                  value:
                    statusCode: 500
                    message: Invalid role
                userNotFound:
                  summary: User does not exist
                  value:
                    statusCode: 500
                    message: User does not exist
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Creates new role.
      tags:
        - permissions
  /permissions/roles/{id}:
    put:
      description: Updates role configuration for the specified role ID.
      operationId: PermissionsApi_updateRole
      parameters:
        - name: id
          required: true
          in: path
          description: Role Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Role configuration.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RoleDTO'
            examples:
              updateRole:
                summary: Update an existing role
                value:
                  name: Custom Role
                  description: Role for VVB users
                  permissions:
                    - POLICIES_POLICY_READ
                    - TOKENS_TOKEN_READ
      responses:
        '200':
          description: Role configuration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-10T13:06:42.559Z'
                    updateDate: '2026-03-10T13:06:54.056Z'
                    uuid: 5c4eb19b-a946-4edb-a79f-e7199317824c
                    name: Policy User
                    description: ''
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    permissions:
                      - CONTRACTS_CONTRACT_READ
                      - POLICIES_POLICY_EXECUTE
                      - POLICIES_POLICY_READ
                      - TOKENS_TOKEN_READ
                      - TAGS_TAG_READ
                    default: false
                    readonly: false
                    id: 69b017625a07d3f3b40a9acd
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Role not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: Role does not exist.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidRole:
                  summary: Role not found or invalid
                  value:
                    statusCode: 500
                    message: Invalid role
                userNotFound:
                  summary: User does not exist
                  value:
                    statusCode: 500
                    message: User does not exist
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Updates role configuration.
      tags:
        - permissions
    delete:
      description: Deletes the role with the provided role ID.
      operationId: PermissionsApi_deleteModule
      parameters:
        - name: id
          required: true
          in: path
          description: Role Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              examples:
                default:
                  summary: Default example
                  value: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 422
                    message: Invalid id
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidRole:
                  summary: Role not found or invalid
                  value:
                    statusCode: 500
                    message: Invalid role
                userNotFound:
                  summary: User does not exist
                  value:
                    statusCode: 500
                    message: User does not exist
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Deletes the role.
      tags:
        - permissions
  /permissions/roles/default:
    post:
      description: Set the role as default for new users.
      operationId: PermissionsApi_setDefaultRole
      parameters: []
      requestBody:
        required: true
        description: Object that contains role information.
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: Role Identifier
                  example: 69aeb71ef8c5b278e3bab4e5
              required:
                - id
            examples:
              Default:
                value:
                  id: 69aeb71ef8c5b278e3bab4e5
      responses:
        '201':
          description: Created role.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-10T13:06:42.559Z'
                    updateDate: '2026-03-10T13:06:54.056Z'
                    uuid: 5c4eb19b-a946-4edb-a79f-e7199317824c
                    name: Policy User
                    description: ''
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    permissions:
                      - CONTRACTS_CONTRACT_READ
                      - POLICIES_POLICY_EXECUTE
                      - POLICIES_POLICY_READ
                      - TOKENS_TOKEN_READ
                      - TAGS_TAG_READ
                    default: false
                    readonly: false
                    id: 69b017625a07d3f3b40a9acd
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidRole:
                  summary: Role not found or invalid
                  value:
                    statusCode: 500
                    message: Invalid role
                userNotFound:
                  summary: User does not exist
                  value:
                    statusCode: 500
                    message: User does not exist
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Set default role.
      tags:
        - permissions
  /permissions/users:
    get:
      description: Returns all users.
      operationId: PermissionsApi_getUsers
      parameters:
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
        - name: role
          required: false
          in: query
          description: Filter by role
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: status
          required: false
          in: query
          description: Filter by status
          schema:
            enum:
              - Active
              - Inactive
            type: string
        - name: username
          required: false
          in: query
          description: Filter by username
          schema:
            example: username
            type: string
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - username: username
                      role: STANDARD_REGISTRY
                      permissionsGroup:
                        - {}
                      permissions:
                        - POLICIES_POLICY_READ
                      did: did:hedera:testnet:abc123
                      parent: string
                      hederaAccountId: 0.0.1001
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidRole:
                  summary: Role not found or invalid
                  value:
                    statusCode: 500
                    message: Invalid role
                userNotFound:
                  summary: User does not exist
                  value:
                    statusCode: 500
                    message: User does not exist
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Return a list of all users.
      tags:
        - permissions
  /permissions/users/{username}:
    get:
      description: Updates user permissions for the specified username.
      operationId: PermissionsApi_getUser
      parameters:
        - name: username
          required: true
          in: path
          description: User Identifier
          schema:
            example: username
            type: string
      responses:
        '200':
          description: User permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    username: username
                    role: USER
                    permissionsGroup:
                      - {}
                    permissions:
                      - POLICIES_POLICY_READ
                    did: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    parent: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    hederaAccountId: 0.0.6046379
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: User not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: User does not exist.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidRole:
                  summary: Role not found or invalid
                  value:
                    statusCode: 500
                    message: Invalid role
                userNotFound:
                  summary: User does not exist
                  value:
                    statusCode: 500
                    message: User does not exist
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Updates user permissions.
      tags:
        - permissions
    put:
      description: Updates user permissions for the specified username.
      operationId: PermissionsApi_updateUser
      parameters:
        - name: username
          required: true
          in: path
          description: User Identifier
          schema:
            example: username
            type: string
      requestBody:
        required: true
        description: User permissions.
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
            examples:
              Roles:
                value:
                  - 69aeb71ef8c5b278e3bab4e5
                  - 69aeb71ef8c5b278e3bab4e5
      responses:
        '200':
          description: User permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    username: username
                    role: USER
                    permissionsGroup:
                      - {}
                    permissions:
                      - POLICIES_POLICY_READ
                    did: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    parent: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    hederaAccountId: 0.0.6046379
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: User not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: User does not exist.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidRole:
                  summary: Role not found or invalid
                  value:
                    statusCode: 500
                    message: Invalid role
                userNotFound:
                  summary: User does not exist
                  value:
                    statusCode: 500
                    message: User does not exist
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Updates user permissions.
      tags:
        - permissions
  /permissions/users/{username}/policies:
    get:
      description: Returns all roles.
      operationId: PermissionsApi_getAssignedPolicies
      parameters:
        - name: username
          required: true
          in: path
          description: User Identifier
          schema:
            example: username
            type: string
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
        - name: status
          required: false
          in: query
          description: Filter by status
          schema:
            enum:
              - DRY-RUN
              - DRAFT
              - PUBLISH_ERROR
              - PUBLISH
              - DISCONTINUED
              - DEMO
              - VIEW
            type: string
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PolicyDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - id: 69aeb71ef8c5b278e3bab4e5
                      uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      name: Policy name
                      description: Description
                      topicDescription: Description
                      policyTag: Tag
                      status: string
                      creator: string
                      owner: string
                      topicId: 0.0.6046379
                      messageId: '1773670900.819264517'
                      codeVersion: 1.0.0
                      createDate: string
                      version: 1.0.0
                      originalChanged: true
                      config: {}
                      userRole: Installer
                      userRoles:
                        - Installer
                      userGroup:
                        uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        role: Installer
                        groupLabel: Label
                        groupName: Name
                        active: true
                      userGroups:
                        - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                          role: Installer
                          groupLabel: Label
                          groupName: Name
                          active: true
                      policyRoles:
                        - Registrant
                      policyNavigation:
                        - role: Registrant
                          steps:
                            - block: Block tag
                              level: 1
                              name: Step name
                      policyTopics:
                        - name: Project
                          description: Project
                          memoObj: topic
                          static: false
                          type: any
                      policyTokens:
                        - tokenName: Token name
                          tokenSymbol: Token symbol
                          tokenType: non-fungible
                          decimals: ''
                          changeSupply: true
                          enableAdmin: true
                          enableFreeze: true
                          enableKYC: true
                          enableWipe: true
                          templateTokenTag: token_template_0
                      policyGroups:
                        - name: Group name
                          creator: Registrant
                          groupAccessType: Private
                          groupRelationshipType: Multiple
                          members:
                            - Registrant
                      categories:
                        - string
                      projectSchema: string
                      tests:
                        - id: 69aeb71ef8c5b278e3bab4e5
                          uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                          name: Test Name
                          policyId: 69aeb71ef8c5b278e3bab4e5
                          owner: string
                          status: string
                          date: string
                          duration: 0
                          progress: 0
                          resultId: 69aeb71ef8c5b278e3bab4e5
                          result: {}
                      ignoreRules:
                        - code: string
                          blockType: string
                          property: string
                          contains: string
                          severity: warning
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: User not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: User does not exist.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidRole:
                  summary: Role not found or invalid
                  value:
                    statusCode: 500
                    message: Invalid role
                userNotFound:
                  summary: User does not exist
                  value:
                    statusCode: 500
                    message: User does not exist
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Return a list of all roles.
      tags:
        - permissions
  /permissions/users/{username}/policies/assign:
    post:
      description: Assign policy.
      operationId: PermissionsApi_assignPolicy
      parameters:
        - name: username
          required: true
          in: path
          description: User Identifier
          schema:
            example: username
            type: string
      requestBody:
        required: true
        description: Options.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssignPolicyDTO'
            examples:
              assignPolicy:
                summary: Assign policies to a user
                value:
                  policyIds:
                    - 69aeb71ef8c5b278e3bab4e5
                  assign: true
              unassignPolicy:
                summary: Unassign policies from a user
                value:
                  policyIds:
                    - 69aeb71ef8c5b278e3bab4e5
                  assign: false
      responses:
        '201':
          description: Assigned policy.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    name: Policy name
                    description: Description
                    topicDescription: Description
                    policyTag: Tag
                    status: DRAFT
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    topicId: 0.0.6046379
                    messageId: '1773670900.819264517'
                    codeVersion: 1.0.0
                    createDate: '2026-03-03T17:25:53.312Z'
                    version: 1.0.0
                    originalChanged: true
                    config: {}
                    userRole: Installer
                    userRoles:
                      - Installer
                    userGroup:
                      uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      role: Installer
                      groupLabel: Label
                      groupName: Name
                      active: true
                    userGroups:
                      - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        role: Installer
                        groupLabel: Label
                        groupName: Name
                        active: true
                    policyRoles:
                      - Registrant
                    policyNavigation:
                      - role: Registrant
                        steps:
                          - block: Block tag
                            level: 1
                            name: Step name
                    policyTopics:
                      - name: Project
                        description: Project
                        memoObj: topic
                        static: false
                        type: any
                    policyTokens:
                      - tokenName: Token name
                        tokenSymbol: Token symbol
                        tokenType: non-fungible
                        decimals: ''
                        changeSupply: true
                        enableAdmin: true
                        enableFreeze: true
                        enableKYC: true
                        enableWipe: true
                        templateTokenTag: token_template_0
                    policyGroups:
                      - name: Group name
                        creator: Registrant
                        groupAccessType: Private
                        groupRelationshipType: Multiple
                        members:
                          - Registrant
                    categories:
                      - string
                    projectSchema: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    tests:
                      - id: 69aeb71ef8c5b278e3bab4e5
                        uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        name: Test Name
                        policyId: 69aeb71ef8c5b278e3bab4e5
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        status: NEW
                        date: '2026-03-03T17:25:53.312Z'
                        duration: 0
                        progress: 0
                        resultId: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        result: {}
                    ignoreRules:
                      - code: string
                        blockType: string
                        property: string
                        contains: string
                        severity: warning
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: User not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: User does not exist.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidRole:
                  summary: Role not found or invalid
                  value:
                    statusCode: 500
                    message: Invalid role
                userNotFound:
                  summary: User does not exist
                  value:
                    statusCode: 500
                    message: User does not exist
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Assign policy.
      tags:
        - permissions
  /permissions/users/{username}/delegate:
    put:
      description: Delegate user permissions for the specified username.
      operationId: PermissionsApi_delegateRole
      parameters:
        - name: username
          required: true
          in: path
          description: User Identifier
          schema:
            example: username
            type: string
      requestBody:
        required: true
        description: User permissions.
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
            examples:
              Roles:
                value:
                  - 69aeb71ef8c5b278e3bab4e5
                  - 69aeb71ef8c5b278e3bab4e5
      responses:
        '200':
          description: User permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    username: username
                    role: USER
                    permissionsGroup:
                      - {}
                    permissions:
                      - POLICIES_POLICY_READ
                    did: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    parent: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    hederaAccountId: 0.0.6046379
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: User not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: User does not exist.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidRole:
                  summary: Role not found or invalid
                  value:
                    statusCode: 500
                    message: Invalid role
                userNotFound:
                  summary: User does not exist
                  value:
                    statusCode: 500
                    message: User does not exist
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Delegate user permissions.
      tags:
        - permissions
  /permissions/users/{username}/policies/delegate:
    post:
      description: Delegate policy.
      operationId: PermissionsApi_delegatePolicy
      parameters:
        - name: username
          required: true
          in: path
          description: User Identifier
          schema:
            example: username
            type: string
      requestBody:
        required: true
        description: Options.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssignPolicyDTO'
            examples:
              delegatePolicy:
                summary: Delegate policies to a user
                value:
                  policyIds:
                    - 69aeb71ef8c5b278e3bab4e5
                  assign: true
              undelegatePolicy:
                summary: Remove delegation from a user
                value:
                  policyIds:
                    - 69aeb71ef8c5b278e3bab4e5
                  assign: false
      responses:
        '201':
          description: Assigned policy.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    name: Policy name
                    description: Description
                    topicDescription: Description
                    policyTag: Tag
                    status: DRAFT
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    topicId: 0.0.6046379
                    messageId: '1773670900.819264517'
                    codeVersion: 1.0.0
                    createDate: '2026-03-03T17:25:53.312Z'
                    version: 1.0.0
                    originalChanged: true
                    config: {}
                    userRole: Installer
                    userRoles:
                      - Installer
                    userGroup:
                      uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      role: Installer
                      groupLabel: Label
                      groupName: Name
                      active: true
                    userGroups:
                      - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        role: Installer
                        groupLabel: Label
                        groupName: Name
                        active: true
                    policyRoles:
                      - Registrant
                    policyNavigation:
                      - role: Registrant
                        steps:
                          - block: Block tag
                            level: 1
                            name: Step name
                    policyTopics:
                      - name: Project
                        description: Project
                        memoObj: topic
                        static: false
                        type: any
                    policyTokens:
                      - tokenName: Token name
                        tokenSymbol: Token symbol
                        tokenType: non-fungible
                        decimals: ''
                        changeSupply: true
                        enableAdmin: true
                        enableFreeze: true
                        enableKYC: true
                        enableWipe: true
                        templateTokenTag: token_template_0
                    policyGroups:
                      - name: Group name
                        creator: Registrant
                        groupAccessType: Private
                        groupRelationshipType: Multiple
                        members:
                          - Registrant
                    categories:
                      - string
                    projectSchema: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    tests:
                      - id: 69aeb71ef8c5b278e3bab4e5
                        uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        name: Test Name
                        policyId: 69aeb71ef8c5b278e3bab4e5
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        status: NEW
                        date: '2026-03-03T17:25:53.312Z'
                        duration: 0
                        progress: 0
                        resultId: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        result: {}
                    ignoreRules:
                      - code: string
                        blockType: string
                        property: string
                        contains: string
                        severity: warning
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: User not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: User does not exist.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidRole:
                  summary: Role not found or invalid
                  value:
                    statusCode: 500
                    message: Invalid role
                userNotFound:
                  summary: User does not exist
                  value:
                    statusCode: 500
                    message: User does not exist
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Delegate policy.
      tags:
        - permissions
  /policy-statistics:
    post:
      description: >-
        Creates a new statistic definition linked to a policy. Defines metrics
        and rules for collecting and aggregating policy document data.
      operationId: PolicyStatisticsApi_createStatisticDefinition
      parameters: []
      requestBody:
        required: true
        description: Configuration.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StatisticDefinitionDTO'
            examples:
              createDefinition:
                summary: Create a new statistic definition
                value:
                  name: Carbon Stats
                  description: Track emissions reductions
                  policyId: 69aeb71ef8c5b278e3bab4e5
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatisticDefinitionDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    name: Carbon Statistics
                    description: Description
                    creator: string
                    owner: string
                    topicId: 0.0.6046379
                    messageId: '1773670900.819264517'
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    policyTopicId: 69aeb71ef8c5b278e3bab4e5
                    policyInstanceTopicId: 69aeb71ef8c5b278e3bab4e5
                    status: string
                    config: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item already published.
                notPublished:
                  summary: Item is not published (for assessments)
                  value:
                    statusCode: 500
                    message: Item is not published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Creates a new statistic definition.
      tags:
        - policy-statistics
    get:
      description: >-
        Returns a paginated list of statistic definitions owned by the current
        user. Optionally filter by policy instance topic ID.
      operationId: PolicyStatisticsApi_getStatisticDefinitions
      parameters:
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
        - name: policyInstanceTopicId
          required: false
          in: query
          description: Policy Instance Topic Id
          schema:
            example: 0.0.6046379
            type: string
      responses:
        '200':
          description: >-
            Successful operation. Returns statistic definitions array and total
            count in X-Total-Count header.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StatisticDefinitionDTO'
              examples:
                withDefinitions:
                  summary: Statistic definitions found
                  value:
                    - id: 69aeb71ef8c5b278e3bab4e5
                      name: Carbon Emission Statistics
                      description: >-
                        Tracks carbon emission reductions across policy
                        documents
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      topicId: 0.0.6046379
                      messageId: '1773670900.819264517'
                      policyId: 69aeb71ef8c5b278e3bab4e5
                      status: DRAFT
                      config: {}
                empty:
                  summary: No statistic definitions
                  value: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item already published.
                notPublished:
                  summary: Item is not published (for assessments)
                  value:
                    statusCode: 500
                    message: Item is not published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Return a list of all statistic definitions.
      tags:
        - policy-statistics
  /policy-statistics/{definitionId}:
    get:
      description: Retrieves statistic definition for the specified ID.
      operationId: PolicyStatisticsApi_getStatisticDefinitionById
      parameters:
        - name: definitionId
          required: true
          in: path
          description: Statistic Definition Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatisticDefinitionDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    name: Carbon Statistics
                    description: Description
                    creator: string
                    owner: string
                    topicId: 0.0.6046379
                    messageId: '1773670900.819264517'
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    policyTopicId: 69aeb71ef8c5b278e3bab4e5
                    policyInstanceTopicId: 69aeb71ef8c5b278e3bab4e5
                    status: string
                    config: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item already published.
                notPublished:
                  summary: Item is not published (for assessments)
                  value:
                    statusCode: 500
                    message: Item is not published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Retrieves statistic definition.
      tags:
        - policy-statistics
    put:
      description: >-
        Updates statistic definition configuration for the specified statistic
        ID.
      operationId: PolicyStatisticsApi_updateStatisticDefinition
      parameters:
        - name: definitionId
          required: true
          in: path
          description: Statistic Definition Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Object that contains a configuration.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StatisticDefinitionDTO'
            examples:
              updateDefinition:
                summary: Update a statistic definition
                value:
                  name: Updated Carbon Stats
                  description: Updated description for emissions tracking
                  policyId: 69aeb71ef8c5b278e3bab4e5
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatisticDefinitionDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    name: Carbon Statistics
                    description: Description
                    creator: string
                    owner: string
                    topicId: 0.0.6046379
                    messageId: '1773670900.819264517'
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    policyTopicId: 69aeb71ef8c5b278e3bab4e5
                    policyInstanceTopicId: 69aeb71ef8c5b278e3bab4e5
                    status: string
                    config: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Item not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: Item not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item already published.
                notPublished:
                  summary: Item is not published (for assessments)
                  value:
                    statusCode: 500
                    message: Item is not published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Updates statistic definition.
      tags:
        - policy-statistics
    delete:
      description: Deletes the statistic definition with the provided ID.
      operationId: PolicyStatisticsApi_deleteStatisticDefinition
      parameters:
        - name: definitionId
          required: true
          in: path
          description: Statistic Definition Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              examples:
                default:
                  summary: Default example
                  value: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item already published.
                notPublished:
                  summary: Item is not published (for assessments)
                  value:
                    statusCode: 500
                    message: Item is not published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Deletes the statistic definition.
      tags:
        - policy-statistics
  /policy-statistics/{definitionId}/publish:
    put:
      description: Publishes statistic definition for the specified statistic ID.
      operationId: PolicyStatisticsApi_publishStatisticDefinition
      parameters:
        - name: definitionId
          required: true
          in: path
          description: Statistic Definition Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatisticDefinitionDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    name: Carbon Statistics
                    description: Description
                    creator: string
                    owner: string
                    topicId: 0.0.6046379
                    messageId: '1773670900.819264517'
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    policyTopicId: 69aeb71ef8c5b278e3bab4e5
                    policyInstanceTopicId: 69aeb71ef8c5b278e3bab4e5
                    status: string
                    config: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Item not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: Item not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item already published.
                notPublished:
                  summary: Item is not published (for assessments)
                  value:
                    statusCode: 500
                    message: Item is not published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Publishes statistic definition.
      tags:
        - policy-statistics
  /policy-statistics/{definitionId}/relationships:
    get:
      description: Retrieves statistic relationships for the specified ID.
      operationId: PolicyStatisticsApi_getStatisticRelationships
      parameters:
        - name: definitionId
          required: true
          in: path
          description: Statistic Definition Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatisticDefinitionRelationshipsDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    policy:
                      id: 69aeb71ef8c5b278e3bab4e5
                      uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      name: Policy name
                      description: Description
                      topicDescription: Description
                      policyTag: Tag
                      status: DRAFT
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      topicId: 0.0.6046379
                      messageId: '1773670900.819264517'
                      codeVersion: 1.0.0
                      createDate: '2026-03-03T17:25:53.312Z'
                      version: 1.0.0
                      originalChanged: true
                      config: {}
                      userRole: Installer
                      userRoles:
                        - Installer
                      userGroup:
                        uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        role: Installer
                        groupLabel: Label
                        groupName: Name
                        active: true
                      userGroups:
                        - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                          role: Installer
                          groupLabel: Label
                          groupName: Name
                          active: true
                      policyRoles:
                        - Registrant
                      policyNavigation:
                        - role: Registrant
                          steps:
                            - block: Block tag
                              level: 1
                              name: Step name
                      policyTopics:
                        - name: Project
                          description: Project
                          memoObj: topic
                          static: false
                          type: any
                      policyTokens:
                        - tokenName: Token name
                          tokenSymbol: Token symbol
                          tokenType: non-fungible
                          decimals: ''
                          changeSupply: true
                          enableAdmin: true
                          enableFreeze: true
                          enableKYC: true
                          enableWipe: true
                          templateTokenTag: token_template_0
                      policyGroups:
                        - name: Group name
                          creator: Registrant
                          groupAccessType: Private
                          groupRelationshipType: Multiple
                          members:
                            - Registrant
                      categories:
                        - string
                      projectSchema: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      tests:
                        - id: 69aeb71ef8c5b278e3bab4e5
                          uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                          name: Test Name
                          policyId: 69aeb71ef8c5b278e3bab4e5
                          owner: >-
                            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                          status: NEW
                          date: '2026-03-03T17:25:53.312Z'
                          duration: 0
                          progress: 0
                          resultId: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                          result: {}
                      ignoreRules:
                        - code: string
                          blockType: string
                          property: string
                          contains: string
                          severity: warning
                    schemas:
                      - id: 69aeb71ef8c5b278e3bab4e5
                        uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        name: Schema name
                        description: Description
                        entity: POLICY
                        iri: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        status: DRAFT
                        topicId: 0.0.6046379
                        version: 1.0.0
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        messageId: '1773670900.819264517'
                        category: POLICY
                        documentURL: ipfs://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                        contextURL: ipfs://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                        document: {}
                        context: {}
                    schema:
                      id: 69aeb71ef8c5b278e3bab4e5
                      uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      name: Schema name
                      description: Description
                      entity: POLICY
                      iri: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      status: DRAFT
                      topicId: 0.0.6046379
                      version: 1.0.0
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      messageId: '1773670900.819264517'
                      category: POLICY
                      documentURL: ipfs://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                      contextURL: ipfs://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                      document: {}
                      context: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item already published.
                notPublished:
                  summary: Item is not published (for assessments)
                  value:
                    statusCode: 500
                    message: Item is not published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Retrieves statistic relationships.
      tags:
        - policy-statistics
  /policy-statistics/{definitionId}/documents:
    get:
      description: Returns all documents.
      operationId: PolicyStatisticsApi_getStatisticDocuments
      parameters:
        - name: definitionId
          required: true
          in: path
          description: Statistic Definition Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VcDocumentDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - id: 69aeb71ef8c5b278e3bab4e5
                      policyId: 69aeb71ef8c5b278e3bab4e5
                      hash: hash
                      signature: 0
                      status: NEW
                      tag: Block tag
                      type: Document type
                      createDate: string
                      updateDate: string
                      owner: string
                      document:
                        id: 69aeb71ef8c5b278e3bab4e5
                        type:
                          - string
                        credentialSubject: {}
                        issuer: {}
                        issuanceDate: string
                        proof:
                          type: string
                          created: string
                          verificationMethod: string
                          proofPurpose: string
                          jws: string
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item already published.
                notPublished:
                  summary: Item is not published (for assessments)
                  value:
                    statusCode: 500
                    message: Item is not published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Return a list of all documents.
      tags:
        - policy-statistics
  /policy-statistics/{definitionId}/assessment:
    post:
      description: Creates a new statistic assessment.
      operationId: PolicyStatisticsApi_createStatisticAssessment
      parameters:
        - name: definitionId
          required: true
          in: path
          description: Statistic Definition Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Configuration.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StatisticAssessmentDTO'
            examples:
              createAssessment:
                summary: Create a new statistic assessment
                value:
                  definitionId: 69aeb71ef8c5b278e3bab4e5
                  policyId: 69aeb71ef8c5b278e3bab4e5
                  target: 69aeb71ef8c5b278e3bab4e5
                  document: {}
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatisticAssessmentDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    definitionId: 69aeb71ef8c5b278e3bab4e5
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    policyTopicId: 69aeb71ef8c5b278e3bab4e5
                    policyInstanceTopicId: 69aeb71ef8c5b278e3bab4e5
                    topicId: 0.0.6046379
                    creator: string
                    owner: string
                    messageId: '1773670900.819264517'
                    target: string
                    relationships:
                      - message-id
                    document: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item already published.
                notPublished:
                  summary: Item is not published (for assessments)
                  value:
                    statusCode: 500
                    message: Item is not published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Creates a new statistic assessment.
      tags:
        - policy-statistics
    get:
      description: Returns all statistic assessment.
      operationId: PolicyStatisticsApi_getStatisticAssessments
      parameters:
        - name: definitionId
          required: true
          in: path
          description: Statistic Definition Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StatisticAssessmentDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - id: 69aeb71ef8c5b278e3bab4e5
                      definitionId: 69aeb71ef8c5b278e3bab4e5
                      policyId: 69aeb71ef8c5b278e3bab4e5
                      policyTopicId: 69aeb71ef8c5b278e3bab4e5
                      policyInstanceTopicId: 69aeb71ef8c5b278e3bab4e5
                      topicId: 0.0.6046379
                      creator: string
                      owner: string
                      messageId: '1773670900.819264517'
                      target: string
                      relationships:
                        - '1773670900.819264517'
                      document: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item already published.
                notPublished:
                  summary: Item is not published (for assessments)
                  value:
                    statusCode: 500
                    message: Item is not published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Return a list of all statistic assessment.
      tags:
        - policy-statistics
  /policy-statistics/{definitionId}/assessment/{assessmentId}:
    get:
      description: Retrieves statistic assessment for the specified ID.
      operationId: PolicyStatisticsApi_getStatisticAssessment
      parameters:
        - name: definitionId
          required: true
          in: path
          description: Statistic Definition Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: assessmentId
          required: true
          in: path
          description: Statistic Assessment Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatisticAssessmentDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    definitionId: 69aeb71ef8c5b278e3bab4e5
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    policyTopicId: 69aeb71ef8c5b278e3bab4e5
                    policyInstanceTopicId: 69aeb71ef8c5b278e3bab4e5
                    topicId: 0.0.6046379
                    creator: string
                    owner: string
                    messageId: '1773670900.819264517'
                    target: string
                    relationships:
                      - message-id
                    document: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item already published.
                notPublished:
                  summary: Item is not published (for assessments)
                  value:
                    statusCode: 500
                    message: Item is not published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Retrieves statistic assessment.
      tags:
        - policy-statistics
  /policy-statistics/{definitionId}/assessment/{assessmentId}/relationships:
    get:
      description: Retrieves assessment relationships for the specified ID.
      operationId: PolicyStatisticsApi_getStatisticAssessmentRelationships
      parameters:
        - name: definitionId
          required: true
          in: path
          description: Statistic Definition Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: assessmentId
          required: true
          in: path
          description: Statistic Assessment Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatisticAssessmentRelationshipsDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    target:
                      id: 69aeb71ef8c5b278e3bab4e5
                      policyId: 69aeb71ef8c5b278e3bab4e5
                      hash: hash
                      signature: 0
                      status: NEW
                      tag: Block tag
                      type: Document type
                      createDate: string
                      updateDate: string
                      owner: string
                      document:
                        id: 69aeb71ef8c5b278e3bab4e5
                        type:
                          - string
                        credentialSubject: {}
                        issuer: {}
                        issuanceDate: string
                        proof:
                          type: string
                          created: string
                          verificationMethod: string
                          proofPurpose: string
                          jws: string
                    relationships:
                      - id: 69aeb71ef8c5b278e3bab4e5
                        policyId: 69aeb71ef8c5b278e3bab4e5
                        hash: hash
                        signature: 0
                        status: NEW
                        tag: Block tag
                        type: Document type
                        createDate: string
                        updateDate: string
                        owner: string
                        document:
                          id: 69aeb71ef8c5b278e3bab4e5
                          type:
                            - {}
                          credentialSubject: {}
                          issuer: {}
                          issuanceDate: string
                          proof:
                            type: {}
                            created: {}
                            verificationMethod: {}
                            proofPurpose: {}
                            jws: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item already published.
                notPublished:
                  summary: Item is not published (for assessments)
                  value:
                    statusCode: 500
                    message: Item is not published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Retrieves assessment relationships.
      tags:
        - policy-statistics
  /policy-statistics/{policyId}/import/file:
    post:
      description: >-
        Imports new statistic definition from the provided zip file into the
        local DB.
      operationId: PolicyStatisticsApi_importStatisticDefinition
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: A binary/zip file containing statistic definition to be imported.
        content:
          application/json:
            schema:
              type: string
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatisticDefinitionDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    name: Carbon Statistics
                    description: Description
                    creator: string
                    owner: string
                    topicId: 0.0.6046379
                    messageId: '1773670900.819264517'
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    policyTopicId: 69aeb71ef8c5b278e3bab4e5
                    policyInstanceTopicId: 69aeb71ef8c5b278e3bab4e5
                    status: string
                    config: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item already published.
                notPublished:
                  summary: Item is not published (for assessments)
                  value:
                    statusCode: 500
                    message: Item is not published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Imports new statistic definition from a zip file.
      tags:
        - policy-statistics
  /policy-statistics/{definitionId}/export/file:
    get:
      description: Returns a zip file containing statistic definition.
      operationId: PolicyStatisticsApi_exportStatisticDefinition
      parameters:
        - name: definitionId
          required: true
          in: path
          description: Statistic Definition Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation. Response zip file.
          content:
            application/zip:
              schema:
                type: string
                format: binary
              examples:
                default:
                  summary: Default example
                  value:
                    result: ok
        '401':
          description: Unauthorized request.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item already published.
                notPublished:
                  summary: Item is not published (for assessments)
                  value:
                    statusCode: 500
                    message: Item is not published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Returns a zip file containing statistic definition.
      tags:
        - policy-statistics
  /policy-statistics/import/file/preview:
    post:
      description: Imports a zip file containing statistic definition.
      operationId: PolicyStatisticsApi_previewStatisticDefinition
      parameters: []
      requestBody:
        required: true
        description: A binary/zip file containing statistic definition to preview.
        content:
          application/json:
            schema:
              type: string
      responses:
        '200':
          description: Statistic definition preview.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatisticDefinitionDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    name: Carbon Statistics
                    description: Description
                    creator: string
                    owner: string
                    topicId: 0.0.6046379
                    messageId: '1773670900.819264517'
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    policyTopicId: 69aeb71ef8c5b278e3bab4e5
                    policyInstanceTopicId: 69aeb71ef8c5b278e3bab4e5
                    status: string
                    config: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item already published.
                notPublished:
                  summary: Item is not published (for assessments)
                  value:
                    statusCode: 500
                    message: Item is not published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Imports a zip file containing statistic definition.
      tags:
        - policy-statistics
  /schema-rules:
    post:
      description: >-
        Creates a new schema rule linked to a policy. Schema rules define
        validation and transformation logic applied to documents within the
        policy.
      operationId: SchemaRulesApi_createSchemaRule
      parameters: []
      requestBody:
        required: true
        description: >-
          Schema rule configuration. Must include name, description, and
          policyId.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SchemaRuleDTO'
            examples:
              createRule:
                summary: Create a new schema rule
                value:
                  name: Test Schema Rule
                  description: Description of test schema rule
                  policyId: 69b83f18cd6b7c4adf4139bc
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaRuleDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-25T15:34:42.540Z'
                    updateDate: '2026-03-25T15:34:42.540Z'
                    uuid: f11d9161-a429-46de-989d-3d7bdeb32da6
                    name: Test Schema Rule
                    description: Description of test schema rule
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    status: DRAFT
                    policyId: 69b83f18cd6b7c4adf4139bc
                    policyTopicId: 0.0.8251226
                    policyInstanceTopicId: 0.0.8372748
                    config:
                      fields: []
                    id: 69c40092810b639b34bae8a2
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemActive:
                  summary: Item is already active/inactive
                  value:
                    statusCode: 500
                    message: Item is already active.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Creates a new schema rule.
      tags:
        - schema-rules
    get:
      description: >-
        Returns a paginated list of schema rules owned by the current user.
        Optionally filter by policy ID.
      operationId: SchemaRulesApi_getSchemaRules
      parameters:
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
        - name: policyInstanceTopicId
          required: false
          in: query
          description: Policy Instance Topic Id
          schema:
            example: 0.0.6046379
            type: string
      responses:
        '200':
          description: >-
            Successful operation. Returns schema rules array and total count in
            X-Total-Count header.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaRuleDTO'
              examples:
                withRules:
                  summary: Schema rules found (list returns fewer fields than GET /:id)
                  value:
                    - name: Test Schema Rule
                      description: Description of test schema rule
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      status: DRAFT
                      policyId: 69b83f18cd6b7c4adf4139bc
                      config:
                        fields: []
                      id: 69c40092810b639b34bae8a2
                empty:
                  summary: No schema rules
                  value: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemActive:
                  summary: Item is already active/inactive
                  value:
                    statusCode: 500
                    message: Item is already active.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Return a list of all schema rules.
      tags:
        - schema-rules
  /schema-rules/{ruleId}:
    get:
      description: Retrieves schema rule for the specified ID.
      operationId: SchemaRulesApi_getSchemaRuleById
      parameters:
        - name: ruleId
          required: true
          in: path
          description: Schema rule Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaRuleDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-25T15:34:42.540Z'
                    updateDate: '2026-03-25T15:34:42.540Z'
                    uuid: f11d9161-a429-46de-989d-3d7bdeb32da6
                    name: Test Schema Rule
                    description: Description of test schema rule
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    status: DRAFT
                    policyId: 69b83f18cd6b7c4adf4139bc
                    policyTopicId: 0.0.8251226
                    policyInstanceTopicId: 0.0.8372748
                    config:
                      fields: []
                    id: 69c40092810b639b34bae8a2
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemActive:
                  summary: Item is already active/inactive
                  value:
                    statusCode: 500
                    message: Item is already active.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Retrieves schema rule.
      tags:
        - schema-rules
    put:
      description: Updates schema rule configuration for the specified rule ID.
      operationId: SchemaRulesApi_updateSchemaRule
      parameters:
        - name: ruleId
          required: true
          in: path
          description: Schema Rule Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Object that contains a configuration.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SchemaRuleDTO'
            examples:
              updateRule:
                summary: Update a schema rule
                value:
                  name: Updated Rule
                  description: Updated description
                  policyId: 69aeb71ef8c5b278e3bab4e5
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaRuleDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-25T15:34:42.540Z'
                    updateDate: '2026-03-25T15:34:42.540Z'
                    uuid: f11d9161-a429-46de-989d-3d7bdeb32da6
                    name: Test Schema Rule
                    description: Description of test schema rule
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    status: DRAFT
                    policyId: 69b83f18cd6b7c4adf4139bc
                    policyTopicId: 0.0.8251226
                    policyInstanceTopicId: 0.0.8372748
                    config:
                      fields: []
                    id: 69c40092810b639b34bae8a2
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Item not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: Item not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemActive:
                  summary: Item is already active/inactive
                  value:
                    statusCode: 500
                    message: Item is already active.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Updates schema rule.
      tags:
        - schema-rules
    delete:
      description: Deletes the schema rule with the provided ID.
      operationId: SchemaRulesApi_deleteSchemaRule
      parameters:
        - name: ruleId
          required: true
          in: path
          description: Schema Rule Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              examples:
                default:
                  summary: Default example
                  value: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemActive:
                  summary: Item is already active/inactive
                  value:
                    statusCode: 500
                    message: Item is already active.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Deletes the schema rule.
      tags:
        - schema-rules
  /schema-rules/{ruleId}/activate:
    put:
      description: Activates schema rule for the specified rule ID.
      operationId: SchemaRulesApi_activateSchemaRule
      parameters:
        - name: ruleId
          required: true
          in: path
          description: Schema Rule Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaRuleDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-25T15:34:42.540Z'
                    updateDate: '2026-03-25T15:34:42.540Z'
                    uuid: f11d9161-a429-46de-989d-3d7bdeb32da6
                    name: Test Schema Rule
                    description: Description of test schema rule
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    status: DRAFT
                    policyId: 69b83f18cd6b7c4adf4139bc
                    policyTopicId: 0.0.8251226
                    policyInstanceTopicId: 0.0.8372748
                    config:
                      fields: []
                    id: 69c40092810b639b34bae8a2
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Item not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: Item not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemActive:
                  summary: Item is already active/inactive
                  value:
                    statusCode: 500
                    message: Item is already active.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Activates schema rule.
      tags:
        - schema-rules
  /schema-rules/{ruleId}/inactivate:
    put:
      description: Inactivates schema rule for the specified rule ID.
      operationId: SchemaRulesApi_inactivateSchemaRule
      parameters:
        - name: ruleId
          required: true
          in: path
          description: Schema Rule Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaRuleDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-25T15:34:42.540Z'
                    updateDate: '2026-03-25T15:34:42.540Z'
                    uuid: f11d9161-a429-46de-989d-3d7bdeb32da6
                    name: Test Schema Rule
                    description: Description of test schema rule
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    status: DRAFT
                    policyId: 69b83f18cd6b7c4adf4139bc
                    policyTopicId: 0.0.8251226
                    policyInstanceTopicId: 0.0.8372748
                    config:
                      fields: []
                    id: 69c40092810b639b34bae8a2
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Item not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: Item not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemActive:
                  summary: Item is already active/inactive
                  value:
                    statusCode: 500
                    message: Item is already active.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Inactivates schema rule.
      tags:
        - schema-rules
  /schema-rules/{ruleId}/relationships:
    get:
      description: Retrieves schema rule relationships for the specified ID.
      operationId: SchemaRulesApi_getSchemaRuleRelationships
      parameters:
        - name: ruleId
          required: true
          in: path
          description: Schema Rule Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaRuleRelationshipsDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    policy:
                      id: 69aeb71ef8c5b278e3bab4e5
                      uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      name: Policy name
                      description: Description
                      topicDescription: Description
                      policyTag: Tag
                      status: DRAFT
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      topicId: 0.0.6046379
                      messageId: '1773670900.819264517'
                      codeVersion: 1.0.0
                      createDate: '2026-03-03T17:25:53.312Z'
                      version: 1.0.0
                      originalChanged: true
                      config: {}
                      userRole: Installer
                      userRoles:
                        - Installer
                      userGroup:
                        uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        role: Installer
                        groupLabel: Label
                        groupName: Name
                        active: true
                      userGroups:
                        - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                          role: Installer
                          groupLabel: Label
                          groupName: Name
                          active: true
                      policyRoles:
                        - Registrant
                      policyNavigation:
                        - role: Registrant
                          steps:
                            - block: Block tag
                              level: 1
                              name: Step name
                      policyTopics:
                        - name: Project
                          description: Project
                          memoObj: topic
                          static: false
                          type: any
                      policyTokens:
                        - tokenName: Token name
                          tokenSymbol: Token symbol
                          tokenType: non-fungible
                          decimals: ''
                          changeSupply: true
                          enableAdmin: true
                          enableFreeze: true
                          enableKYC: true
                          enableWipe: true
                          templateTokenTag: token_template_0
                      policyGroups:
                        - name: Group name
                          creator: Registrant
                          groupAccessType: Private
                          groupRelationshipType: Multiple
                          members:
                            - Registrant
                      categories:
                        - string
                      projectSchema: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      tests:
                        - id: 69aeb71ef8c5b278e3bab4e5
                          uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                          name: Test Name
                          policyId: 69aeb71ef8c5b278e3bab4e5
                          owner: >-
                            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                          status: NEW
                          date: '2026-03-03T17:25:53.312Z'
                          duration: 0
                          progress: 0
                          resultId: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                          result: {}
                      ignoreRules:
                        - code: string
                          blockType: string
                          property: string
                          contains: string
                          severity: warning
                    schemas:
                      - id: 69aeb71ef8c5b278e3bab4e5
                        uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        name: Schema name
                        description: Description
                        entity: POLICY
                        iri: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        status: DRAFT
                        topicId: 0.0.6046379
                        version: 1.0.0
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        messageId: '1773670900.819264517'
                        category: POLICY
                        documentURL: ipfs://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                        contextURL: ipfs://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                        document: {}
                        context: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemActive:
                  summary: Item is already active/inactive
                  value:
                    statusCode: 500
                    message: Item is already active.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Retrieves schema rule relationships.
      tags:
        - schema-rules
  /schema-rules/data:
    post:
      description: Retrieves schema rule data based on the provided options.
      operationId: SchemaRulesApi_getSchemaRuleData
      parameters: []
      requestBody:
        required: true
        description: Options.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SchemaRuleOptionsDTO'
            examples:
              getSchemaRuleData:
                summary: Retrieve schema rule data for a document
                value:
                  policyId: 69aeb71ef8c5b278e3bab4e5
                  schemaId: 69aeb71ef8c5b278e3bab4e5
                  documentId: 69aeb71ef8c5b278e3bab4e5
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaRuleDataDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - rules:
                        id: 69aeb71ef8c5b278e3bab4e5
                        uuid: 69aeb71ef8c5b278e3bab4e5
                        name: Validation Rule
                        description: Description
                        creator: string
                        owner: string
                        policyId: 69aeb71ef8c5b278e3bab4e5
                        policyTopicId: 69aeb71ef8c5b278e3bab4e5
                        policyInstanceTopicId: 69aeb71ef8c5b278e3bab4e5
                        status: string
                        config: {}
                      document:
                        id: 69aeb71ef8c5b278e3bab4e5
                        policyId: 69aeb71ef8c5b278e3bab4e5
                        hash: hash
                        signature: 0
                        status: NEW
                        tag: Block tag
                        type: Document type
                        createDate: string
                        updateDate: string
                        owner: string
                        document:
                          id: 69aeb71ef8c5b278e3bab4e5
                          type:
                            - string
                          credentialSubject: {}
                          issuer: {}
                          issuanceDate: string
                          proof:
                            type: string
                            created: string
                            verificationMethod: string
                            proofPurpose: string
                            jws: string
                      relationships:
                        - id: 69aeb71ef8c5b278e3bab4e5
                          policyId: 69aeb71ef8c5b278e3bab4e5
                          hash: hash
                          signature: 0
                          status: NEW
                          tag: Block tag
                          type: Document type
                          createDate: string
                          updateDate: string
                          owner: string
                          document:
                            id: 69aeb71ef8c5b278e3bab4e5
                            type:
                              - {}
                            credentialSubject: {}
                            issuer: {}
                            issuanceDate: string
                            proof:
                              type: {}
                              created: {}
                              verificationMethod: {}
                              proofPurpose: {}
                              jws: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemActive:
                  summary: Item is already active/inactive
                  value:
                    statusCode: 500
                    message: Item is already active.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Retrieves schema rule data.
      tags:
        - schema-rules
  /schema-rules/{policyId}/import/file:
    post:
      description: Imports new rules from the provided zip file into the local DB.
      operationId: SchemaRulesApi_importSchemaRule
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: A binary/zip file containing rules to be imported.
        content:
          application/json:
            schema:
              type: string
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaRuleDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-25T15:34:42.540Z'
                    updateDate: '2026-03-25T15:34:42.540Z'
                    uuid: f11d9161-a429-46de-989d-3d7bdeb32da6
                    name: Test Schema Rule
                    description: Description of test schema rule
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    status: DRAFT
                    policyId: 69b83f18cd6b7c4adf4139bc
                    policyTopicId: 0.0.8251226
                    policyInstanceTopicId: 0.0.8372748
                    config:
                      fields: []
                    id: 69c40092810b639b34bae8a2
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemActive:
                  summary: Item is already active/inactive
                  value:
                    statusCode: 500
                    message: Item is already active.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Imports new rules from a zip file.
      tags:
        - schema-rules
  /schema-rules/{ruleId}/export/file:
    get:
      description: Returns a zip file containing rules.
      operationId: SchemaRulesApi_exportSchemaRule
      parameters:
        - name: ruleId
          required: true
          in: path
          description: Schema Rule Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation. Response zip file.
          content:
            application/zip:
              schema:
                type: string
                format: binary
              examples:
                default:
                  summary: Default example
                  value:
                    result: ok
        '401':
          description: Unauthorized request.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemActive:
                  summary: Item is already active/inactive
                  value:
                    statusCode: 500
                    message: Item is already active.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Returns a zip file containing rules.
      tags:
        - schema-rules
  /schema-rules/import/file/preview:
    post:
      description: Imports a zip file containing rules.
      operationId: SchemaRulesApi_previewSchemaRule
      parameters: []
      requestBody:
        required: true
        description: A binary/zip file containing rules to preview.
        content:
          application/json:
            schema:
              type: string
      responses:
        '200':
          description: Schema rule preview.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaRuleDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-25T15:34:42.540Z'
                    updateDate: '2026-03-25T15:34:42.540Z'
                    uuid: f11d9161-a429-46de-989d-3d7bdeb32da6
                    name: Test Schema Rule
                    description: Description of test schema rule
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    status: DRAFT
                    policyId: 69b83f18cd6b7c4adf4139bc
                    policyTopicId: 0.0.8251226
                    policyInstanceTopicId: 0.0.8372748
                    config:
                      fields: []
                    id: 69c40092810b639b34bae8a2
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemActive:
                  summary: Item is already active/inactive
                  value:
                    statusCode: 500
                    message: Item is already active.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Imports a zip file containing rules.
      tags:
        - schema-rules
  /formulas:
    post:
      description: >-
        Creates a new formula linked to a policy. The formula defines
        calculation logic using variables, constants, and mathematical
        expressions that reference schema fields.
      operationId: FormulasApi_createFormula
      parameters: []
      requestBody:
        required: true
        description: Configuration.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FormulaDTO'
            examples:
              createFormula:
                value:
                  name: New Formula
                  description: Formula description
                  policyId: 69b83f18cd6b7c4adf4139bc
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormulaDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-16T17:35:18.617Z'
                    updateDate: '2026-03-25T14:40:22.393Z'
                    uuid: fb7980f1-f347-47f3-9c1d-698b60162aba
                    name: Test 3
                    description: ''
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    status: PUBLISHED
                    messageId: '1774449622.177353801'
                    policyId: 69b83f18cd6b7c4adf4139bc
                    policyTopicId: 0.0.8251226
                    policyInstanceTopicId: 0.0.8372748
                    id: 69b83f56cd6b7c4adf413a1e
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item is already published.
                policyNotPublished:
                  summary: Policy has not been published yet
                  value:
                    statusCode: 500
                    message: The policy has not published yet.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Creates a new formula.
      tags:
        - formulas
    get:
      description: >-
        Returns a paginated list of formulas owned by the current user.
        Optionally filter by policy ID.
      operationId: FormulasApi_getFormulas
      parameters:
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
        - name: policyId
          required: false
          in: query
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: >-
            Successful operation. Returns formulas array and total count in
            X-Total-Count header.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FormulaDTO'
              examples:
                withFormulas:
                  summary: Formulas found (list returns fewer fields than GET /:id)
                  value:
                    - name: Test 3
                      description: ''
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      status: PUBLISHED
                      policyId: 69b83f18cd6b7c4adf4139bc
                      policyTopicId: 0.0.8251226
                      policyInstanceTopicId: 0.0.8372748
                      id: 69b83f56cd6b7c4adf413a1e
                empty:
                  summary: No formulas
                  value: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item is already published.
                policyNotPublished:
                  summary: Policy has not been published yet
                  value:
                    statusCode: 500
                    message: The policy has not published yet.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Return a list of all formulas.
      tags:
        - formulas
  /formulas/{formulaId}:
    get:
      description: >-
        Returns the full formula object including config with variables,
        constants, and expressions. Returns additional fields compared to the
        list endpoint (uuid, createDate, updateDate, messageId, config).
      operationId: FormulasApi_getFormulaById
      parameters:
        - name: formulaId
          required: true
          in: path
          description: Formula Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormulaDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-16T17:35:18.617Z'
                    updateDate: '2026-03-25T14:40:22.393Z'
                    uuid: fb7980f1-f347-47f3-9c1d-698b60162aba
                    name: Test 3
                    description: ''
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    status: PUBLISHED
                    messageId: '1774449622.177353801'
                    policyId: 69b83f18cd6b7c4adf4139bc
                    policyTopicId: 0.0.8251226
                    policyInstanceTopicId: 0.0.8372748
                    id: 69b83f56cd6b7c4adf413a1e
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item is already published.
                policyNotPublished:
                  summary: Policy has not been published yet
                  value:
                    statusCode: 500
                    message: The policy has not published yet.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Retrieves formula by ID.
      tags:
        - formulas
    put:
      description: Updates formula configuration for the specified formula ID.
      operationId: FormulasApi_updateFormula
      parameters:
        - name: formulaId
          required: true
          in: path
          description: Formula Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Object that contains a configuration.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FormulaDTO'
            examples:
              updateFormula:
                summary: Update a formula
                value:
                  name: Updated Formula
                  description: Updated formula description
                  policyId: 69aeb71ef8c5b278e3bab4e5
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormulaDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-16T17:35:18.617Z'
                    updateDate: '2026-03-25T14:40:22.393Z'
                    uuid: fb7980f1-f347-47f3-9c1d-698b60162aba
                    name: Test 3
                    description: ''
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    status: PUBLISHED
                    messageId: '1774449622.177353801'
                    policyId: 69b83f18cd6b7c4adf4139bc
                    policyTopicId: 0.0.8251226
                    policyInstanceTopicId: 0.0.8372748
                    id: 69b83f56cd6b7c4adf413a1e
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Item not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: Item not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item is already published.
                policyNotPublished:
                  summary: Policy has not been published yet
                  value:
                    statusCode: 500
                    message: The policy has not published yet.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Updates formula.
      tags:
        - formulas
    delete:
      description: Deletes the formula with the provided ID.
      operationId: FormulasApi_deleteFormula
      parameters:
        - name: formulaId
          required: true
          in: path
          description: Formula Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              examples:
                default:
                  summary: Default example
                  value: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item is already published.
                policyNotPublished:
                  summary: Policy has not been published yet
                  value:
                    statusCode: 500
                    message: The policy has not published yet.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Deletes the formula.
      tags:
        - formulas
  /formulas/{formulaId}/relationships:
    get:
      description: Retrieves Formula relationships for the specified ID.
      operationId: FormulasApi_getSchemaRuleRelationships
      parameters:
        - name: formulaId
          required: true
          in: path
          description: Formula Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormulaRelationshipsDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    policy:
                      id: 69aeb71ef8c5b278e3bab4e5
                      uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      name: Policy name
                      description: Description
                      topicDescription: Description
                      policyTag: Tag
                      status: DRAFT
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      topicId: 0.0.6046379
                      messageId: '1773670900.819264517'
                      codeVersion: 1.0.0
                      createDate: '2026-03-03T17:25:53.312Z'
                      version: 1.0.0
                      originalChanged: true
                      config: {}
                      userRole: Installer
                      userRoles:
                        - Installer
                      userGroup:
                        uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        role: Installer
                        groupLabel: Label
                        groupName: Name
                        active: true
                      userGroups:
                        - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                          role: Installer
                          groupLabel: Label
                          groupName: Name
                          active: true
                      policyRoles:
                        - Registrant
                      policyNavigation:
                        - role: Registrant
                          steps:
                            - block: Block tag
                              level: 1
                              name: Step name
                      policyTopics:
                        - name: Project
                          description: Project
                          memoObj: topic
                          static: false
                          type: any
                      policyTokens:
                        - tokenName: Token name
                          tokenSymbol: Token symbol
                          tokenType: non-fungible
                          decimals: ''
                          changeSupply: true
                          enableAdmin: true
                          enableFreeze: true
                          enableKYC: true
                          enableWipe: true
                          templateTokenTag: token_template_0
                      policyGroups:
                        - name: Group name
                          creator: Registrant
                          groupAccessType: Private
                          groupRelationshipType: Multiple
                          members:
                            - Registrant
                      categories:
                        - string
                      projectSchema: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      tests:
                        - id: 69aeb71ef8c5b278e3bab4e5
                          uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                          name: Test Name
                          policyId: 69aeb71ef8c5b278e3bab4e5
                          owner: >-
                            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                          status: NEW
                          date: '2026-03-03T17:25:53.312Z'
                          duration: 0
                          progress: 0
                          resultId: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                          result: {}
                      ignoreRules:
                        - code: string
                          blockType: string
                          property: string
                          contains: string
                          severity: warning
                    schemas:
                      - id: 69aeb71ef8c5b278e3bab4e5
                        uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        name: Schema name
                        description: Description
                        entity: POLICY
                        iri: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        status: DRAFT
                        topicId: 0.0.6046379
                        version: 1.0.0
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        messageId: '1773670900.819264517'
                        category: POLICY
                        documentURL: ipfs://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                        contextURL: ipfs://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                        document: {}
                        context: {}
                    formulas:
                      - id: 69aeb71ef8c5b278e3bab4e5
                        uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        name: Emission Formula
                        description: Description
                        creator: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        messageId: '1773670900.819264517'
                        policyId: 69aeb71ef8c5b278e3bab4e5
                        policyTopicId: 0.0.6046379
                        policyInstanceTopicId: 0.0.6046379
                        status: DRAFT
                        config: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item is already published.
                policyNotPublished:
                  summary: Policy has not been published yet
                  value:
                    statusCode: 500
                    message: The policy has not published yet.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Retrieves Formula relationships.
      tags:
        - formulas
  /formulas/{policyId}/import/file:
    post:
      description: Imports new formula from the provided zip file into the local DB.
      operationId: FormulasApi_importFormula
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: A binary/zip file containing formula to be imported.
        content:
          application/json:
            schema:
              type: string
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormulaDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-16T17:35:18.617Z'
                    updateDate: '2026-03-25T14:40:22.393Z'
                    uuid: fb7980f1-f347-47f3-9c1d-698b60162aba
                    name: Test 3
                    description: ''
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    status: PUBLISHED
                    messageId: '1774449622.177353801'
                    policyId: 69b83f18cd6b7c4adf4139bc
                    policyTopicId: 0.0.8251226
                    policyInstanceTopicId: 0.0.8372748
                    id: 69b83f56cd6b7c4adf413a1e
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item is already published.
                policyNotPublished:
                  summary: Policy has not been published yet
                  value:
                    statusCode: 500
                    message: The policy has not published yet.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Imports new formula from a zip file.
      tags:
        - formulas
  /formulas/{formulaId}/export/file:
    get:
      description: Returns a zip file containing formula.
      operationId: FormulasApi_exportFormula
      parameters:
        - name: formulaId
          required: true
          in: path
          description: Formula Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation. Response zip file.
          content:
            application/zip:
              schema:
                type: string
                format: binary
              examples:
                default:
                  summary: Default example
                  value:
                    result: ok
        '401':
          description: Unauthorized request.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item is already published.
                policyNotPublished:
                  summary: Policy has not been published yet
                  value:
                    statusCode: 500
                    message: The policy has not published yet.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Returns a zip file containing formula.
      tags:
        - formulas
  /formulas/import/file/preview:
    post:
      description: Imports a zip file containing formula.
      operationId: FormulasApi_previewFormula
      parameters: []
      requestBody:
        required: true
        description: A binary/zip file containing formula to preview.
        content:
          application/json:
            schema:
              type: string
      responses:
        '200':
          description: Formula preview.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormulaDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-16T17:35:18.617Z'
                    updateDate: '2026-03-25T14:40:22.393Z'
                    uuid: fb7980f1-f347-47f3-9c1d-698b60162aba
                    name: Test 3
                    description: ''
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    status: PUBLISHED
                    messageId: '1774449622.177353801'
                    policyId: 69b83f18cd6b7c4adf4139bc
                    policyTopicId: 0.0.8251226
                    policyInstanceTopicId: 0.0.8372748
                    id: 69b83f56cd6b7c4adf413a1e
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item is already published.
                policyNotPublished:
                  summary: Policy has not been published yet
                  value:
                    statusCode: 500
                    message: The policy has not published yet.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Imports a zip file containing formula.
      tags:
        - formulas
  /formulas/{formulaId}/draft:
    put:
      description: Return formula to editing for the specified formula ID.
      operationId: FormulasApi_draftFormula
      parameters:
        - name: formulaId
          required: true
          in: path
          description: Formula Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormulaDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-16T17:35:18.617Z'
                    updateDate: '2026-03-25T14:40:22.393Z'
                    uuid: fb7980f1-f347-47f3-9c1d-698b60162aba
                    name: Test 3
                    description: ''
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    status: PUBLISHED
                    messageId: '1774449622.177353801'
                    policyId: 69b83f18cd6b7c4adf4139bc
                    policyTopicId: 0.0.8251226
                    policyInstanceTopicId: 0.0.8372748
                    id: 69b83f56cd6b7c4adf413a1e
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Item not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: Item not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item is already published.
                policyNotPublished:
                  summary: Policy has not been published yet
                  value:
                    statusCode: 500
                    message: The policy has not published yet.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Return formula to editing.
      tags:
        - formulas
  /formulas/{formulaId}/dry-run:
    put:
      description: >-
        Run formula without making any persistent changes or executing
        transaction.
      operationId: FormulasApi_dryRunFormula
      parameters:
        - name: formulaId
          required: true
          in: path
          description: Formula Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormulaDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-16T17:35:18.617Z'
                    updateDate: '2026-03-25T14:40:22.393Z'
                    uuid: fb7980f1-f347-47f3-9c1d-698b60162aba
                    name: Test 3
                    description: ''
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    status: PUBLISHED
                    messageId: '1774449622.177353801'
                    policyId: 69b83f18cd6b7c4adf4139bc
                    policyTopicId: 0.0.8251226
                    policyInstanceTopicId: 0.0.8372748
                    id: 69b83f56cd6b7c4adf413a1e
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Item not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: Item not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item is already published.
                policyNotPublished:
                  summary: Policy has not been published yet
                  value:
                    statusCode: 500
                    message: The policy has not published yet.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Dry Run formula.
      tags:
        - formulas
  /formulas/{formulaId}/publish:
    put:
      description: Publishes formula for the specified formula ID.
      operationId: FormulasApi_publishFormula
      parameters:
        - name: formulaId
          required: true
          in: path
          description: Formula Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormulaDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-16T17:35:18.617Z'
                    updateDate: '2026-03-25T14:40:22.393Z'
                    uuid: fb7980f1-f347-47f3-9c1d-698b60162aba
                    name: Test 3
                    description: ''
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    status: PUBLISHED
                    messageId: '1774449622.177353801'
                    policyId: 69b83f18cd6b7c4adf4139bc
                    policyTopicId: 0.0.8251226
                    policyInstanceTopicId: 0.0.8372748
                    id: 69b83f56cd6b7c4adf413a1e
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Item not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: Item not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item is already published.
                policyNotPublished:
                  summary: Policy has not been published yet
                  value:
                    statusCode: 500
                    message: The policy has not published yet.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Publishes formula.
      tags:
        - formulas
  /formulas/data:
    post:
      description: >-
        Retrieves formulas and their associated data based on the provided
        options.
      operationId: FormulasApi_getSchemaRuleData
      parameters: []
      requestBody:
        required: true
        description: Options.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FormulasOptionsDTO'
            examples:
              getFormulasData:
                summary: Retrieve formulas data for a document
                value:
                  policyId: 69aeb71ef8c5b278e3bab4e5
                  schemaId: 69aeb71ef8c5b278e3bab4e5
                  documentId: 69aeb71ef8c5b278e3bab4e5
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormulasDataDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    formulas:
                      - createDate: '2026-03-16T17:35:18.617Z'
                        updateDate: '2026-03-25T14:40:22.393Z'
                        uuid: fb7980f1-f347-47f3-9c1d-698b60162aba
                        name: Test 3
                        description: ''
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        creator: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        status: PUBLISHED
                        messageId: '1774449622.177353801'
                        policyId: 69b83f18cd6b7c4adf4139bc
                        policyTopicId: 0.0.8251226
                        policyInstanceTopicId: 0.0.8372748
                        id: 69b83f56cd6b7c4adf413a1e
                    document:
                      id: 69aeb71ef8c5b278e3bab4e5
                      policyId: 69aeb71ef8c5b278e3bab4e5
                      hash: GcDE9NsPJc7oCZvSVJySCZHxTxvjc3ZAMgtKozP1r1Eh
                      signature: 0
                      status: NEW
                      tag: Block tag
                      type: Document type
                      createDate: '2026-03-03T17:25:53.312Z'
                      updateDate: '2026-03-03T17:25:53.312Z'
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      document:
                        id: 69aeb71ef8c5b278e3bab4e5
                        type:
                          - string
                        credentialSubject: {}
                        issuer: {}
                        issuanceDate: '2026-03-03T17:25:53.312Z'
                        proof:
                          type: string
                          created: '2026-03-03T17:25:53.312Z'
                          verificationMethod: string
                          proofPurpose: string
                          jws: string
                    relationships:
                      - id: 69aeb71ef8c5b278e3bab4e5
                        policyId: 69aeb71ef8c5b278e3bab4e5
                        hash: GcDE9NsPJc7oCZvSVJySCZHxTxvjc3ZAMgtKozP1r1Eh
                        signature: 0
                        status: NEW
                        tag: Block tag
                        type: Document type
                        createDate: '2026-03-03T17:25:53.312Z'
                        updateDate: '2026-03-03T17:25:53.312Z'
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        document:
                          id: 69aeb71ef8c5b278e3bab4e5
                          type:
                            - {}
                          credentialSubject: {}
                          issuer: {}
                          issuanceDate: '2026-03-03T17:25:53.312Z'
                          proof:
                            type: {}
                            created: {}
                            verificationMethod: {}
                            proofPurpose: {}
                            jws: {}
                    schemas:
                      - id: 69aeb71ef8c5b278e3bab4e5
                        uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        name: Schema name
                        description: Description
                        entity: POLICY
                        iri: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        status: DRAFT
                        topicId: 0.0.6046379
                        version: 1.0.0
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        messageId: '1773670900.819264517'
                        category: POLICY
                        documentURL: ipfs://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                        contextURL: ipfs://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                        document: {}
                        context: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                itemPublished:
                  summary: Item is already published or in wrong state
                  value:
                    statusCode: 500
                    message: Item is already published.
                policyNotPublished:
                  summary: Policy has not been published yet
                  value:
                    statusCode: 500
                    message: The policy has not published yet.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Retrieves formulas and associated data.
      tags:
        - formulas
  /external-policies:
    get:
      description: Returns the list of requests for adding remote policies.
      operationId: ExternalPoliciesApi_getExternalPolicies
      parameters:
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ExternalPolicyDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      name: Policy Name
                      description: Policy Description
                      version: 1.0.0
                      topicId: 0.0.6046379
                      instanceTopicId: 0.0.6046379
                      messageId: '1773670900.819264517'
                      policyTag: Tag
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      status: DRAFT
                      username: Username
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                policyPrivate:
                  summary: Policy is private and cannot be imported
                  value:
                    statusCode: 500
                    message: Policy is private.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Returns the list of requests for adding remote policies.
      tags:
        - external-policies
  /external-policies/preview:
    post:
      description: Returns preview of the remote policies.
      operationId: ExternalPoliciesApi_previewExternalPolicy
      parameters: []
      requestBody:
        required: true
        description: Message.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportMessageDTO'
            examples:
              previewPolicy:
                summary: Preview a remote policy by message ID
                value:
                  messageId: '1773670900.819264517'
      responses:
        '200':
          description: Policy preview.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyPreviewDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    policy:
                      uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      name: Test policy
                      version: 1.0.0
                      description: ''
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      topicId: 0.0.6046379
                      instanceTopicId: 0.0.6046379
                      policyTag: Tag_1773682447599
                      codeVersion: 1.5.1
                      tools: []
                      id: 69aeb71ef8c5b278e3bab4e5
                    tokens: []
                    schemas: []
                    systemSchemas: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                emptyMessageId:
                  summary: Empty message ID in request body
                  value:
                    statusCode: 422
                    message: Message ID in body is empty
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                policyPrivate:
                  summary: Policy is private and cannot be imported
                  value:
                    statusCode: 500
                    message: Policy is private.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Returns preview of the remote policies.
      tags:
        - external-policies
  /external-policies/import:
    post:
      description: Creates a request to import a remote policy.
      operationId: ExternalPoliciesApi_importExternalPolicy
      parameters: []
      requestBody:
        required: true
        description: Message.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportMessageDTO'
            examples:
              importPolicy:
                summary: Import a remote policy by message ID
                value:
                  messageId: '1773670900.819264517'
      responses:
        '200':
          description: Policy.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalPolicyDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    name: Policy Name
                    description: Policy Description
                    version: 1.0.0
                    topicId: 0.0.6046379
                    instanceTopicId: 0.0.6046379
                    messageId: '1773670900.819264517'
                    policyTag: Tag
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    status: DRAFT
                    username: Username
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                emptyMessageId:
                  summary: Empty message ID in request body
                  value:
                    statusCode: 422
                    message: Message ID in body is empty
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                policyPrivate:
                  summary: Policy is private and cannot be imported
                  value:
                    statusCode: 500
                    message: Policy is private.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Creates a request to import a remote policy.
      tags:
        - external-policies
  /external-policies/push/{messageId}/approve:
    post:
      description: Approves the request to import a remote policy, and imports it.
      operationId: ExternalPoliciesApi_approveExternalPolicyAsync
      parameters:
        - name: messageId
          required: true
          in: path
          description: Policy message id
          schema:
            example: '1773670900.819264517'
            type: string
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    taskId: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    expectation: 0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Item not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: Item not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                emptyMessageId:
                  summary: Empty message ID in request body
                  value:
                    statusCode: 422
                    message: Message ID in body is empty
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                policyPrivate:
                  summary: Policy is private and cannot be imported
                  value:
                    statusCode: 500
                    message: Policy is private.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Approves the request to import a remote policy, and imports it.
      tags:
        - external-policies
  /external-policies/push/{messageId}/reject:
    post:
      description: Rejects the request to import a remote policy.
      operationId: ExternalPoliciesApi_rejectExternalPolicyAsync
      parameters:
        - name: messageId
          required: true
          in: path
          description: Policy message id
          schema:
            example: '1773670900.819264517'
            type: string
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    taskId: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    expectation: 0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Item not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: Item not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                emptyMessageId:
                  summary: Empty message ID in request body
                  value:
                    statusCode: 422
                    message: Message ID in body is empty
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                policyPrivate:
                  summary: Policy is private and cannot be imported
                  value:
                    statusCode: 500
                    message: Policy is private.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Rejects the request to import a remote policy.
      tags:
        - external-policies
  /external-policies/{messageId}/approve:
    post:
      description: Approves the request to import a remote policy, and imports it.
      operationId: ExternalPoliciesApi_approveExternalPolicy
      parameters:
        - name: messageId
          required: true
          in: path
          description: Policy message id
          schema:
            example: '1773670900.819264517'
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              examples:
                default:
                  summary: Default example
                  value: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Item not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: Item not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                emptyMessageId:
                  summary: Empty message ID in request body
                  value:
                    statusCode: 422
                    message: Message ID in body is empty
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                policyPrivate:
                  summary: Policy is private and cannot be imported
                  value:
                    statusCode: 500
                    message: Policy is private.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Approves the request to import a remote policy, and imports it.
      tags:
        - external-policies
  /external-policies/{messageId}/reject:
    post:
      description: Rejects the request to import a remote policy.
      operationId: ExternalPoliciesApi_rejectExternalPolicy
      parameters:
        - name: messageId
          required: true
          in: path
          description: Policy message id
          schema:
            example: '1773670900.819264517'
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              examples:
                default:
                  summary: Default example
                  value: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Item not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: Item not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                emptyMessageId:
                  summary: Empty message ID in request body
                  value:
                    statusCode: 422
                    message: Message ID in body is empty
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                policyPrivate:
                  summary: Policy is private and cannot be imported
                  value:
                    statusCode: 500
                    message: Policy is private.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Rejects the request to import a remote policy.
      tags:
        - external-policies
  /external-policies/{messageId}/disconnect:
    put:
      description: >-
        Disconnects the user from the selected remote policy on the current
        Guardian instance only.
      operationId: ExternalPoliciesApi_disconnectPolicy
      parameters:
        - name: messageId
          required: true
          in: path
          description: Policy message id
          schema:
            example: '1773670900.819264517'
            type: string
        - name: full
          required: false
          in: query
          description: >-
            Disconnects the user from the selected remote policy on the current
            Guardian instance and from the same policy on the Main Guardian
            instance where it is deployed.
          schema:
            example: 0
            type: boolean
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: boolean
              examples:
                default:
                  summary: Default example
                  value: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                policyPrivate:
                  summary: Policy is private and cannot be imported
                  value:
                    statusCode: 500
                    message: Policy is private.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: >-
        Disconnects the user from the selected remote policy on the current
        Guardian instance only.
      tags:
        - external-policies
  /external-policies/{messageId}:
    delete:
      description: Removes the remote policy from the current Guardian instance.
      operationId: ExternalPoliciesApi_deletePolicy
      parameters:
        - name: messageId
          required: true
          in: path
          description: Policy message id
          schema:
            example: '1773670900.819264517'
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: boolean
              examples:
                default:
                  summary: Default example
                  value: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                policyPrivate:
                  summary: Policy is private and cannot be imported
                  value:
                    statusCode: 500
                    message: Policy is private.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Removes the remote policy from the current Guardian instance.
      tags:
        - external-policies
  /external-policies/requests:
    get:
      description: Returns the list of requests for action from remote Guardians.
      operationId: ExternalPoliciesApi_getRemoteRequests
      parameters:
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
        - name: policyId
          required: false
          in: query
          description: Policy Id
          schema:
            example: '001'
            type: string
        - name: status
          required: false
          in: query
          description: Status
          schema:
            example: NEW
            type: string
        - name: type
          required: false
          in: query
          description: Type
          schema:
            example: ACTION
            type: string
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PolicyRequestDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      type: ACTION
                      messageId: '1773670900.819264517'
                      startMessageId: '1773670900.819264517'
                      status: NEW
                      lastStatus: NEW
                      accountId: 0.0.6046379
                      sender: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      topicId: 0.0.6046379
                      document: {}
                      policyId: 69aeb71ef8c5b278e3bab4e5
                      blockTag: Tag
                      policyMessageId: '1773670900.819264517'
                      loaded: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                policyPrivate:
                  summary: Policy is private and cannot be imported
                  value:
                    statusCode: 500
                    message: Policy is private.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Returns the list of requests for action from remote Guardians.
      tags:
        - external-policies
  /external-policies/requests/{messageId}/approve:
    put:
      description: Approves a request for an action from a remote Guardian.
      operationId: ExternalPoliciesApi_approveRemoteRequest
      parameters:
        - name: messageId
          required: true
          in: path
          description: Policy message id
          schema:
            example: '1773670900.819264517'
            type: string
      requestBody:
        required: true
        description: Object that contains a configuration.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyRequestDTO'
            examples:
              approveRequest:
                summary: Approve a remote policy request
                value:
                  uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                  type: ACTION
                  messageId: '1773670900.819264517'
                  status: NEW
                  document: {}
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyRequestDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    type: ACTION
                    messageId: '1773670900.819264517'
                    startMessageId: '1773670900.819264517'
                    status: NEW
                    lastStatus: NEW
                    accountId: 0.0.6046379
                    sender: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    topicId: 0.0.6046379
                    document: {}
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    blockTag: Tag
                    policyMessageId: '1773670900.819264517'
                    loaded: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                emptyMessageId:
                  summary: Empty message ID in request body
                  value:
                    statusCode: 422
                    message: Message ID in body is empty
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                policyPrivate:
                  summary: Policy is private and cannot be imported
                  value:
                    statusCode: 500
                    message: Policy is private.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Approves a request for an action from a remote Guardian.
      tags:
        - external-policies
  /external-policies/requests/{messageId}/reject:
    put:
      description: Rejects a request for an action from a remote Guardian
      operationId: ExternalPoliciesApi_rejectRemoteRequest
      parameters:
        - name: messageId
          required: true
          in: path
          description: Policy message id
          schema:
            example: '1773670900.819264517'
            type: string
      requestBody:
        required: true
        description: Object that contains a configuration.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyRequestDTO'
            examples:
              rejectRequest:
                summary: Reject a remote policy request
                value:
                  uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                  type: ACTION
                  messageId: '1773670900.819264517'
                  status: NEW
                  document: {}
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyRequestDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    type: ACTION
                    messageId: '1773670900.819264517'
                    startMessageId: '1773670900.819264517'
                    status: NEW
                    lastStatus: NEW
                    accountId: 0.0.6046379
                    sender: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    topicId: 0.0.6046379
                    document: {}
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    blockTag: Tag
                    policyMessageId: '1773670900.819264517'
                    loaded: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                emptyMessageId:
                  summary: Empty message ID in request body
                  value:
                    statusCode: 422
                    message: Message ID in body is empty
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                policyPrivate:
                  summary: Policy is private and cannot be imported
                  value:
                    statusCode: 500
                    message: Policy is private.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Rejects a request for an action from a remote Guardian
      tags:
        - external-policies
  /external-policies/requests/{messageId}/cancel:
    put:
      description: Cancels a request for an action from a remote Guardian
      operationId: ExternalPoliciesApi_cancelRemoteRequest
      parameters:
        - name: messageId
          required: true
          in: path
          description: Action Identifier
          schema:
            example: '1773670900.819264517'
            type: string
      requestBody:
        required: true
        description: Object that contains a configuration.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyRequestDTO'
            examples:
              cancelRequest:
                summary: Cancel a remote policy request
                value:
                  uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                  type: ACTION
                  messageId: '1773670900.819264517'
                  status: NEW
                  document: {}
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyRequestDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    type: ACTION
                    messageId: '1773670900.819264517'
                    startMessageId: '1773670900.819264517'
                    status: NEW
                    lastStatus: NEW
                    accountId: 0.0.6046379
                    sender: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    topicId: 0.0.6046379
                    document: {}
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    blockTag: Tag
                    policyMessageId: '1773670900.819264517'
                    loaded: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                emptyMessageId:
                  summary: Empty message ID in request body
                  value:
                    statusCode: 422
                    message: Message ID in body is empty
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                policyPrivate:
                  summary: Policy is private and cannot be imported
                  value:
                    statusCode: 500
                    message: Policy is private.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Cancels a request for an action from a remote Guardian
      tags:
        - external-policies
  /external-policies/requests/{messageId}/reload:
    put:
      description: Reloads a request for an action from a remote Guardian
      operationId: ExternalPoliciesApi_loadRemoteRequest
      parameters:
        - name: messageId
          required: true
          in: path
          description: Action Identifier
          schema:
            example: '1773670900.819264517'
            type: string
      requestBody:
        required: true
        description: Object that contains a configuration.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyRequestDTO'
            examples:
              reloadRequest:
                summary: Reload a remote policy request
                value:
                  uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                  type: ACTION
                  messageId: '1773670900.819264517'
                  status: NEW
                  document: {}
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyRequestDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    type: ACTION
                    messageId: '1773670900.819264517'
                    startMessageId: '1773670900.819264517'
                    status: NEW
                    lastStatus: NEW
                    accountId: 0.0.6046379
                    sender: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    topicId: 0.0.6046379
                    document: {}
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    blockTag: Tag
                    policyMessageId: '1773670900.819264517'
                    loaded: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                emptyMessageId:
                  summary: Empty message ID in request body
                  value:
                    statusCode: 422
                    message: Message ID in body is empty
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                policyPrivate:
                  summary: Policy is private and cannot be imported
                  value:
                    statusCode: 500
                    message: Policy is private.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Reloads a request for an action from a remote Guardian
      tags:
        - external-policies
  /external-policies/requests/count:
    get:
      description: >-
        Returns the count of entries in the list of requests for actions from
        remote Guardians.
      operationId: ExternalPoliciesApi_getRemoteRequestsCount
      parameters:
        - name: policyId
          required: false
          in: query
          description: Policy Id
          schema:
            example: '001'
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyRequestCountDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    requestsCount: 0
                    actionsCount: 0
                    delayCount: 0
                    total: 0
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                policyPrivate:
                  summary: Policy is private and cannot be imported
                  value:
                    statusCode: 500
                    message: Policy is private.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: >-
        Returns the count of entries in the list of requests for actions from
        remote Guardians.
      tags:
        - external-policies
  /external-policies/requests/document:
    get:
      description: Returns the request document by startMessageId.
      operationId: ExternalPoliciesApi_getRequestDocument
      parameters:
        - name: startMessageId
          required: true
          in: query
          description: Start Message Id
          schema:
            example: '1773670900.819264517'
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                description: Request document object
              examples:
                default:
                  summary: Default example
                  value:
                    result: ok
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                policyPrivate:
                  summary: Policy is private and cannot be imported
                  value:
                    statusCode: 500
                    message: Policy is private.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Returns the request document by startMessageId.
      tags:
        - external-policies
  /policy-labels:
    post:
      description: Creates a new policy label.
      operationId: PolicyLabelsApi_createPolicyLabel
      parameters: []
      requestBody:
        required: true
        description: Configuration.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyLabelDTO'
            examples:
              createLabel:
                summary: Create a new policy label
                value:
                  name: Carbon Label
                  description: Label for carbon credits
                  policyId: 69aeb71ef8c5b278e3bab4e5
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyLabelDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    name: Carbon Label
                    description: Description
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    topicId: 0.0.6046379
                    messageId: '1773670900.819264517'
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    policyTopicId: 0.0.6046379
                    policyInstanceTopicId: 0.0.6046379
                    status: DRAFT
                    config: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidParams:
                  summary: Invalid parameters
                  value:
                    statusCode: 500
                    message: Invalid parameters.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                alreadyPublished:
                  summary: Item is already published or not published
                  value:
                    statusCode: 500
                    message: Item is already published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Creates a new policy label.
      tags:
        - policy-labels
    get:
      description: Returns all policy labels.
      operationId: PolicyLabelsApi_getPolicyLabels
      parameters:
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
        - name: policyInstanceTopicId
          required: false
          in: query
          description: Policy Instance Topic Id
          schema:
            example: 0.0.6046379
            type: string
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PolicyLabelDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - id: 69aeb71ef8c5b278e3bab4e5
                      name: Carbon Label
                      description: Description
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      topicId: 0.0.6046379
                      messageId: '1773670900.819264517'
                      policyId: 69aeb71ef8c5b278e3bab4e5
                      status: DRAFT
                      config: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidParams:
                  summary: Invalid parameters
                  value:
                    statusCode: 500
                    message: Invalid parameters.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                alreadyPublished:
                  summary: Item is already published or not published
                  value:
                    statusCode: 500
                    message: Item is already published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Return a list of all policy labels.
      tags:
        - policy-labels
  /policy-labels/{definitionId}:
    get:
      description: Retrieves policy label for the specified ID.
      operationId: PolicyLabelsApi_getPolicyLabelById
      parameters:
        - name: definitionId
          required: true
          in: path
          description: policy label Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyLabelDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    name: Carbon Label
                    description: Description
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    topicId: 0.0.6046379
                    messageId: '1773670900.819264517'
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    policyTopicId: 0.0.6046379
                    policyInstanceTopicId: 0.0.6046379
                    status: DRAFT
                    config: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidParams:
                  summary: Invalid parameters
                  value:
                    statusCode: 500
                    message: Invalid parameters.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                alreadyPublished:
                  summary: Item is already published or not published
                  value:
                    statusCode: 500
                    message: Item is already published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Retrieves policy label.
      tags:
        - policy-labels
    put:
      description: Updates policy label configuration for the specified label ID.
      operationId: PolicyLabelsApi_updatePolicyLabel
      parameters:
        - name: definitionId
          required: true
          in: path
          description: policy label Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Object that contains a configuration.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyLabelDTO'
            examples:
              updateLabel:
                summary: Update a policy label
                value:
                  name: Updated Carbon Label
                  description: Updated label description
                  policyId: 69aeb71ef8c5b278e3bab4e5
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyLabelDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    name: Carbon Label
                    description: Description
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    topicId: 0.0.6046379
                    messageId: '1773670900.819264517'
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    policyTopicId: 0.0.6046379
                    policyInstanceTopicId: 0.0.6046379
                    status: DRAFT
                    config: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Item not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: Item not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidParams:
                  summary: Invalid parameters
                  value:
                    statusCode: 500
                    message: Invalid parameters.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                alreadyPublished:
                  summary: Item is already published or not published
                  value:
                    statusCode: 500
                    message: Item is already published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Updates policy label.
      tags:
        - policy-labels
    delete:
      description: Deletes the policy label with the provided ID.
      operationId: PolicyLabelsApi_deletePolicyLabel
      parameters:
        - name: definitionId
          required: true
          in: path
          description: policy label Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
              examples:
                default:
                  summary: Default example
                  value: true
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidParams:
                  summary: Invalid parameters
                  value:
                    statusCode: 500
                    message: Invalid parameters.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                alreadyPublished:
                  summary: Item is already published or not published
                  value:
                    statusCode: 500
                    message: Item is already published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Deletes the policy label.
      tags:
        - policy-labels
  /policy-labels/{definitionId}/publish:
    put:
      description: Publishes policy label for the specified label ID.
      operationId: PolicyLabelsApi_publishPolicyLabel
      parameters:
        - name: definitionId
          required: true
          in: path
          description: policy label Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyLabelDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    name: Carbon Label
                    description: Description
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    topicId: 0.0.6046379
                    messageId: '1773670900.819264517'
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    policyTopicId: 0.0.6046379
                    policyInstanceTopicId: 0.0.6046379
                    status: DRAFT
                    config: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Item not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: Item not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidParams:
                  summary: Invalid parameters
                  value:
                    statusCode: 500
                    message: Invalid parameters.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                alreadyPublished:
                  summary: Item is already published or not published
                  value:
                    statusCode: 500
                    message: Item is already published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Publishes policy label.
      tags:
        - policy-labels
  /policy-labels/push/{definitionId}/publish:
    put:
      description: Publishes policy label for the specified label ID.
      operationId: PolicyLabelsApi_publishPolicyLabelAsync
      parameters:
        - name: definitionId
          required: true
          in: path
          description: policy label Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyLabelDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    name: Carbon Label
                    description: Description
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    topicId: 0.0.6046379
                    messageId: '1773670900.819264517'
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    policyTopicId: 0.0.6046379
                    policyInstanceTopicId: 0.0.6046379
                    status: DRAFT
                    config: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Item not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: Item not found.
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidParams:
                  summary: Invalid parameters
                  value:
                    statusCode: 500
                    message: Invalid parameters.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                alreadyPublished:
                  summary: Item is already published or not published
                  value:
                    statusCode: 500
                    message: Item is already published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Publishes policy label.
      tags:
        - policy-labels
  /policy-labels/{definitionId}/relationships:
    get:
      description: Retrieves policy label relationships for the specified ID.
      operationId: PolicyLabelsApi_getPolicyLabelRelationships
      parameters:
        - name: definitionId
          required: true
          in: path
          description: policy label Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyLabelRelationshipsDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    policy:
                      id: 69aeb71ef8c5b278e3bab4e5
                      uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      name: Policy name
                      description: Description
                      topicDescription: Description
                      policyTag: Tag
                      status: DRAFT
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      topicId: 0.0.6046379
                      messageId: '1773670900.819264517'
                      codeVersion: 1.0.0
                      createDate: '2026-03-03T17:25:53.312Z'
                      version: 1.0.0
                      originalChanged: true
                      config: {}
                      userRole: Installer
                      userRoles:
                        - Installer
                      userGroup:
                        uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        role: Installer
                        groupLabel: Label
                        groupName: Name
                        active: true
                      userGroups:
                        - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                          role: Installer
                          groupLabel: Label
                          groupName: Name
                          active: true
                      policyRoles:
                        - Registrant
                      policyNavigation:
                        - role: Registrant
                          steps:
                            - block: Block tag
                              level: 1
                              name: Step name
                      policyTopics:
                        - name: Project
                          description: Project
                          memoObj: topic
                          static: false
                          type: any
                      policyTokens:
                        - tokenName: Token name
                          tokenSymbol: Token symbol
                          tokenType: non-fungible
                          decimals: ''
                          changeSupply: true
                          enableAdmin: true
                          enableFreeze: true
                          enableKYC: true
                          enableWipe: true
                          templateTokenTag: token_template_0
                      policyGroups:
                        - name: Group name
                          creator: Registrant
                          groupAccessType: Private
                          groupRelationshipType: Multiple
                          members:
                            - Registrant
                      categories:
                        - string
                      projectSchema: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      tests:
                        - id: 69aeb71ef8c5b278e3bab4e5
                          uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                          name: Test Name
                          policyId: 69aeb71ef8c5b278e3bab4e5
                          owner: >-
                            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                          status: NEW
                          date: '2026-03-03T17:25:53.312Z'
                          duration: 0
                          progress: 0
                          resultId: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                          result: {}
                      ignoreRules:
                        - code: string
                          blockType: string
                          property: string
                          contains: string
                          severity: warning
                    policySchemas:
                      - id: 69aeb71ef8c5b278e3bab4e5
                        uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        name: Schema name
                        description: Description
                        entity: POLICY
                        iri: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        status: DRAFT
                        topicId: 0.0.6046379
                        version: 1.0.0
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        messageId: '1773670900.819264517'
                        category: POLICY
                        documentURL: ipfs://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                        contextURL: ipfs://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                        document: {}
                        context: {}
                    documentsSchemas:
                      - id: 69aeb71ef8c5b278e3bab4e5
                        uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        name: Schema name
                        description: Description
                        entity: POLICY
                        iri: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        status: DRAFT
                        topicId: 0.0.6046379
                        version: 1.0.0
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        messageId: '1773670900.819264517'
                        category: POLICY
                        documentURL: ipfs://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                        contextURL: ipfs://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                        document: {}
                        context: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidParams:
                  summary: Invalid parameters
                  value:
                    statusCode: 500
                    message: Invalid parameters.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                alreadyPublished:
                  summary: Item is already published or not published
                  value:
                    statusCode: 500
                    message: Item is already published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Retrieves policy label relationships.
      tags:
        - policy-labels
  /policy-labels/{policyId}/import/file:
    post:
      description: Imports new labels from the provided zip file into the local DB.
      operationId: PolicyLabelsApi_importPolicyLabel
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: A binary/zip file containing labels to be imported.
        content:
          application/json:
            schema:
              type: string
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyLabelDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    name: Carbon Label
                    description: Description
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    topicId: 0.0.6046379
                    messageId: '1773670900.819264517'
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    policyTopicId: 0.0.6046379
                    policyInstanceTopicId: 0.0.6046379
                    status: DRAFT
                    config: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidParams:
                  summary: Invalid parameters
                  value:
                    statusCode: 500
                    message: Invalid parameters.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                alreadyPublished:
                  summary: Item is already published or not published
                  value:
                    statusCode: 500
                    message: Item is already published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Imports new labels from a zip file.
      tags:
        - policy-labels
  /policy-labels/{definitionId}/export/file:
    get:
      description: Returns a zip file containing labels.
      operationId: PolicyLabelsApi_exportPolicyLabel
      parameters:
        - name: definitionId
          required: true
          in: path
          description: policy label Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation. Response zip file.
          content:
            application/zip:
              schema:
                type: string
                format: binary
              examples:
                default:
                  summary: Default example
                  value:
                    result: ok
        '401':
          description: Unauthorized request.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidParams:
                  summary: Invalid parameters
                  value:
                    statusCode: 500
                    message: Invalid parameters.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                alreadyPublished:
                  summary: Item is already published or not published
                  value:
                    statusCode: 500
                    message: Item is already published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Returns a zip file containing labels.
      tags:
        - policy-labels
  /policy-labels/import/file/preview:
    post:
      description: Imports a zip file containing labels.
      operationId: PolicyLabelsApi_previewPolicyLabel
      parameters: []
      requestBody:
        required: true
        description: A binary/zip file containing labels to preview.
        content:
          application/json:
            schema:
              type: string
      responses:
        '200':
          description: policy label preview.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyLabelDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    name: Carbon Label
                    description: Description
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    topicId: 0.0.6046379
                    messageId: '1773670900.819264517'
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    policyTopicId: 0.0.6046379
                    policyInstanceTopicId: 0.0.6046379
                    status: DRAFT
                    config: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidParams:
                  summary: Invalid parameters
                  value:
                    statusCode: 500
                    message: Invalid parameters.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                alreadyPublished:
                  summary: Item is already published or not published
                  value:
                    statusCode: 500
                    message: Item is already published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Imports a zip file containing labels.
      tags:
        - policy-labels
  /policy-labels/components:
    post:
      description: Return a list of other labels ans statistics.
      operationId: PolicyLabelsApi_searchComponents
      parameters: []
      requestBody:
        required: true
        description: Filters.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyLabelFiltersDTO'
            examples:
              searchAll:
                summary: Search all components
                value:
                  text: Carbon
                  components: all
              searchLabels:
                summary: Search labels only
                value:
                  text: Carbon
                  components: label
              searchStatistics:
                summary: Search statistics only
                value:
                  text: Emissions
                  components: statistic
      responses:
        '200':
          description: A list of labels ans statistics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyLabelComponentsDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statistics:
                      - id: 69aeb71ef8c5b278e3bab4e5
                        uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        name: Carbon Label
                        description: Description
                        creator: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        topicId: 0.0.6046379
                        messageId: '1773670900.819264517'
                        policyId: 69aeb71ef8c5b278e3bab4e5
                        policyTopicId: 0.0.6046379
                        policyInstanceTopicId: 0.0.6046379
                        status: DRAFT
                        config: {}
                    labels:
                      - id: 69aeb71ef8c5b278e3bab4e5
                        uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                        name: Carbon Label
                        description: Description
                        creator: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        topicId: 0.0.6046379
                        messageId: '1773670900.819264517'
                        policyId: 69aeb71ef8c5b278e3bab4e5
                        policyTopicId: 0.0.6046379
                        policyInstanceTopicId: 0.0.6046379
                        status: DRAFT
                        config: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidParams:
                  summary: Invalid parameters
                  value:
                    statusCode: 500
                    message: Invalid parameters.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                alreadyPublished:
                  summary: Item is already published or not published
                  value:
                    statusCode: 500
                    message: Item is already published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Search labels ans statistics.
      tags:
        - policy-labels
  /policy-labels/{definitionId}/tokens:
    get:
      description: Returns all documents.
      operationId: PolicyLabelsApi_getPolicyLabelTokens
      parameters:
        - name: definitionId
          required: true
          in: path
          description: policy label Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VcDocumentDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - id: 69aeb71ef8c5b278e3bab4e5
                      policyId: 69aeb71ef8c5b278e3bab4e5
                      hash: GcDE9NsPJc7oCZvSVJySCZHxTxvjc3ZAMgtKozP1r1Eh
                      signature: 0
                      status: NEW
                      tag: Block tag
                      type: Document type
                      createDate: '2026-03-03T17:25:53.312Z'
                      updateDate: '2026-03-03T17:25:53.312Z'
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      document:
                        id: 69aeb71ef8c5b278e3bab4e5
                        type:
                          - string
                        credentialSubject: {}
                        issuer: {}
                        issuanceDate: '2026-03-03T17:25:53.312Z'
                        proof:
                          type: string
                          created: '2026-03-03T17:25:53.312Z'
                          verificationMethod: string
                          proofPurpose: string
                          jws: string
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidParams:
                  summary: Invalid parameters
                  value:
                    statusCode: 500
                    message: Invalid parameters.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                alreadyPublished:
                  summary: Item is already published or not published
                  value:
                    statusCode: 500
                    message: Item is already published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Return a list of all documents.
      tags:
        - policy-labels
  /policy-labels/{definitionId}/tokens/{documentId}:
    get:
      description: Returns all documents.
      operationId: PolicyLabelsApi_getPolicyLabelDocument
      parameters:
        - name: definitionId
          required: true
          in: path
          description: policy label Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: documentId
          required: true
          in: path
          description: Document Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VcDocumentDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - id: 69aeb71ef8c5b278e3bab4e5
                      policyId: 69aeb71ef8c5b278e3bab4e5
                      hash: GcDE9NsPJc7oCZvSVJySCZHxTxvjc3ZAMgtKozP1r1Eh
                      signature: 0
                      status: NEW
                      tag: Block tag
                      type: Document type
                      createDate: '2026-03-03T17:25:53.312Z'
                      updateDate: '2026-03-03T17:25:53.312Z'
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      document:
                        id: 69aeb71ef8c5b278e3bab4e5
                        type:
                          - string
                        credentialSubject: {}
                        issuer: {}
                        issuanceDate: '2026-03-03T17:25:53.312Z'
                        proof:
                          type: string
                          created: '2026-03-03T17:25:53.312Z'
                          verificationMethod: string
                          proofPurpose: string
                          jws: string
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidParams:
                  summary: Invalid parameters
                  value:
                    statusCode: 500
                    message: Invalid parameters.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                alreadyPublished:
                  summary: Item is already published or not published
                  value:
                    statusCode: 500
                    message: Item is already published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Return a list of all documents.
      tags:
        - policy-labels
  /policy-labels/{definitionId}/documents:
    post:
      description: Creates a new label document.
      operationId: PolicyLabelsApi_createStatisticDocument
      parameters:
        - name: definitionId
          required: true
          in: path
          description: policy label Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Configuration.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyLabelDocumentDTO'
            examples:
              createDocument:
                summary: Create a new label document
                value:
                  definitionId: 69aeb71ef8c5b278e3bab4e5
                  policyId: 69aeb71ef8c5b278e3bab4e5
                  target: 69aeb71ef8c5b278e3bab4e5
                  document: {}
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyLabelDocumentDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    definitionId: 69aeb71ef8c5b278e3bab4e5
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    policyTopicId: 0.0.6046379
                    policyInstanceTopicId: 0.0.6046379
                    topicId: 0.0.6046379
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    messageId: '1773670900.819264517'
                    target: string
                    relationships:
                      - '1773670900.819264517'
                    document: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidParams:
                  summary: Invalid parameters
                  value:
                    statusCode: 500
                    message: Invalid parameters.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                alreadyPublished:
                  summary: Item is already published or not published
                  value:
                    statusCode: 500
                    message: Item is already published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Creates a new label document.
      tags:
        - policy-labels
    get:
      description: Returns all label documents.
      operationId: PolicyLabelsApi_getLabelDocuments
      parameters:
        - name: definitionId
          required: true
          in: path
          description: policy label Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PolicyLabelDocumentDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - id: 69aeb71ef8c5b278e3bab4e5
                      definitionId: 69aeb71ef8c5b278e3bab4e5
                      policyId: 69aeb71ef8c5b278e3bab4e5
                      policyTopicId: 0.0.6046379
                      policyInstanceTopicId: 0.0.6046379
                      topicId: 0.0.6046379
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      messageId: '1773670900.819264517'
                      target: string
                      relationships:
                        - '1773670900.819264517'
                      document: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidParams:
                  summary: Invalid parameters
                  value:
                    statusCode: 500
                    message: Invalid parameters.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                alreadyPublished:
                  summary: Item is already published or not published
                  value:
                    statusCode: 500
                    message: Item is already published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Return a list of all label documents.
      tags:
        - policy-labels
  /policy-labels/{definitionId}/documents/{documentId}:
    get:
      description: Retrieves label document for the specified ID.
      operationId: PolicyLabelsApi_getLabelDocument
      parameters:
        - name: definitionId
          required: true
          in: path
          description: Label Definition Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: documentId
          required: true
          in: path
          description: Label Document Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyLabelDocumentDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    definitionId: 69aeb71ef8c5b278e3bab4e5
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    policyTopicId: 0.0.6046379
                    policyInstanceTopicId: 0.0.6046379
                    topicId: 0.0.6046379
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    messageId: '1773670900.819264517'
                    target: string
                    relationships:
                      - '1773670900.819264517'
                    document: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidParams:
                  summary: Invalid parameters
                  value:
                    statusCode: 500
                    message: Invalid parameters.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                alreadyPublished:
                  summary: Item is already published or not published
                  value:
                    statusCode: 500
                    message: Item is already published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Retrieves label document.
      tags:
        - policy-labels
  /policy-labels/{definitionId}/documents/{documentId}/relationships:
    get:
      description: Retrieves documents relationships for the specified ID.
      operationId: PolicyLabelsApi_getStatisticAssessmentRelationships
      parameters:
        - name: definitionId
          required: true
          in: path
          description: Statistic Definition Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: documentId
          required: true
          in: path
          description: Label Document Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyLabelDocumentRelationshipsDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    target:
                      id: 69aeb71ef8c5b278e3bab4e5
                      policyId: 69aeb71ef8c5b278e3bab4e5
                      hash: GcDE9NsPJc7oCZvSVJySCZHxTxvjc3ZAMgtKozP1r1Eh
                      signature: 0
                      status: NEW
                      tag: Block tag
                      type: Document type
                      createDate: '2026-03-03T17:25:53.312Z'
                      updateDate: '2026-03-03T17:25:53.312Z'
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      document:
                        - id: 69aeb71ef8c5b278e3bab4e5
                          type:
                            - {}
                          verifiableCredential:
                            - {}
                          proof:
                            type: {}
                            created: {}
                            verificationMethod: {}
                            proofPurpose: {}
                            jws: {}
                    relationships:
                      - id: 69aeb71ef8c5b278e3bab4e5
                        policyId: 69aeb71ef8c5b278e3bab4e5
                        hash: GcDE9NsPJc7oCZvSVJySCZHxTxvjc3ZAMgtKozP1r1Eh
                        signature: 0
                        status: NEW
                        tag: Block tag
                        type: Document type
                        createDate: '2026-03-03T17:25:53.312Z'
                        updateDate: '2026-03-03T17:25:53.312Z'
                        owner: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        document:
                          id: 69aeb71ef8c5b278e3bab4e5
                          type:
                            - {}
                          credentialSubject: {}
                          issuer: {}
                          issuanceDate: '2026-03-03T17:25:53.312Z'
                          proof:
                            type: {}
                            created: {}
                            verificationMethod: {}
                            proofPurpose: {}
                            jws: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
                invalidConfig:
                  summary: Missing or invalid config
                  value:
                    statusCode: 422
                    message: Invalid config.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidParams:
                  summary: Invalid parameters
                  value:
                    statusCode: 500
                    message: Invalid parameters.
                itemNotFound:
                  summary: Item does not exist
                  value:
                    statusCode: 500
                    message: Item does not exist.
                alreadyPublished:
                  summary: Item is already published or not published
                  value:
                    statusCode: 500
                    message: Item is already published.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Retrieves documents relationships.
      tags:
        - policy-labels
  /policy-comments/{policyId}/{documentId}/users:
    get:
      description: >-
        Returns the list of user names which are present in the target policy
        and have access to the target document.
      operationId: PolicyCommentsApi_getUsers
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: documentId
          required: true
          in: path
          description: Document Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: >-
            Successful operation. Returns mix of broadcast target ("all"), role
            targets, and individual user targets with their roles.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PolicyCommentUserDTO'
              examples:
                withUsers:
                  summary: Users and roles found
                  value:
                    - label: All
                      value: all
                      type: all
                    - label: Administrator
                      value: Administrator
                      type: role
                    - label: Project_Proponent
                      value: Project_Proponent
                      type: role
                    - label: ExampleUser
                      value: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      roles:
                        - Document Owner
                        - Administrator
                      type: user
                empty:
                  summary: No users
                  value: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                documentNotFound:
                  summary: Document not found or does not belong to this policy
                  value:
                    statusCode: 500
                    message: Document not found.
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                insufficientPermissions:
                  summary: No access to this policy
                  value:
                    statusCode: 500
                    message: Insufficient permissions to execute the policy.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: >-
        Returns the list of user names which are present in the target policy
        and have access to the target document.
      tags:
        - policy-comments
  /policy-comments/{policyId}/{documentId}/relationships:
    get:
      description: Returns the list of documents linked with the target document
      operationId: PolicyCommentsApi_getRelationships
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: documentId
          required: true
          in: path
          description: Document Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PolicyCommentRelationshipDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - label: Parent VC Document
                      value: '1773670900.819264517'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                documentNotFound:
                  summary: Document not found or does not belong to this policy
                  value:
                    statusCode: 500
                    message: Document not found.
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                insufficientPermissions:
                  summary: No access to this policy
                  value:
                    statusCode: 500
                    message: Insufficient permissions to execute the policy.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Returns the list of documents linked with the target document
      tags:
        - policy-comments
  /policy-comments/{policyId}/{documentId}/schemas:
    get:
      description: Returns the list of schemas for the target document
      operationId: PolicyCommentsApi_getSchemas
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: documentId
          required: true
          in: path
          description: Document Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - id: 69aeb71ef8c5b278e3bab4e5
                      uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      name: Schema name
                      description: Description
                      entity: POLICY
                      iri: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      status: DRAFT
                      topicId: 0.0.6046379
                      version: 1.0.0
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      messageId: '1773670900.819264517'
                      category: POLICY
                      documentURL: ipfs://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                      contextURL: ipfs://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                      document: {}
                      context: {}
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                documentNotFound:
                  summary: Document not found or does not belong to this policy
                  value:
                    statusCode: 500
                    message: Document not found.
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                insufficientPermissions:
                  summary: No access to this policy
                  value:
                    statusCode: 500
                    message: Insufficient permissions to execute the policy.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Returns the list of schemas for the target document
      tags:
        - policy-comments
  /policy-comments/{policyId}/{documentId}/discussions:
    get:
      description: Returns the list of discussions for the target document
      operationId: PolicyCommentsApi_getDiscussions
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: documentId
          required: true
          in: path
          description: Document Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: search
          required: false
          in: query
          description: Text
          schema:
            example: Text
            type: string
        - name: field
          required: false
          in: query
          description: Field path
          schema:
            example: Field path
            type: string
        - name: readonly
          required: false
          in: query
          description: >-
            When true and user has POLICIES_POLICY_AUDIT permission, enables
            audit mode — bypasses privacy filters and shows all discussions.
          schema:
            example: false
            type: boolean
      responses:
        '200':
          description: >-
            Successful operation. Returns discussions linked to the document,
            filtered by privacy settings unless in audit mode.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PolicyDiscussionDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - id: 69aeb71ef8c5b278e3bab4e5
                      uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      policyId: 69aeb71ef8c5b278e3bab4e5
                      target: string
                      targetId: 69aeb71ef8c5b278e3bab4e5
                      messageId: '1773670900.819264517'
                      parent: string
                      hash: QmExampleHash
                      name: Common
                      field: >-
                        #150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1
                      fieldName: Field name
                      relationships:
                        - '1773670900.819264517'
                      relationshipIds:
                        - 69aeb71ef8c5b278e3bab4e5
                      privacy: public
                      roles:
                        - string
                      users:
                        - string
                      system: true
                      count: 0
                      document:
                        id: 69aeb71ef8c5b278e3bab4e5
                        type:
                          - string
                        credentialSubject: {}
                        issuer: {}
                        issuanceDate: '2026-03-03T17:25:53.312Z'
                        proof:
                          type: string
                          created: '2026-03-03T17:25:53.312Z'
                          verificationMethod: string
                          proofPurpose: string
                          jws: string
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                documentNotFound:
                  summary: Document not found or does not belong to this policy
                  value:
                    statusCode: 500
                    message: Document not found.
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                insufficientPermissions:
                  summary: No access to this policy
                  value:
                    statusCode: 500
                    message: Insufficient permissions to execute the policy.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Returns the list of discussions for the target document
      tags:
        - policy-comments
    post:
      description: Creates a new discussion linked to the target document
      operationId: PolicyCommentsApi_createDiscussion
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: documentId
          required: true
          in: path
          description: Document Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Config
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewPolicyDiscussionDTO'
            examples:
              publicDiscussion:
                summary: Create a public discussion
                value:
                  name: Common
                  field: '#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1'
                  fieldName: Field name
                  privacy: public
              roleBasedDiscussion:
                summary: Create a role-based discussion
                value:
                  name: Review Discussion
                  privacy: roles
                  roles:
                    - Installer
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyDiscussionDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    target: string
                    targetId: 69aeb71ef8c5b278e3bab4e5
                    messageId: '1773670900.819264517'
                    parent: string
                    hash: QmExampleHash
                    name: Common
                    field: '#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1'
                    fieldName: Field name
                    relationships:
                      - '1773670900.819264517'
                    relationshipIds:
                      - 69aeb71ef8c5b278e3bab4e5
                    privacy: public
                    roles:
                      - string
                    users:
                      - string
                    system: true
                    count: 0
                    document:
                      id: 69aeb71ef8c5b278e3bab4e5
                      type:
                        - string
                      credentialSubject: {}
                      issuer: {}
                      issuanceDate: '2026-03-03T17:25:53.312Z'
                      proof:
                        type: string
                        created: '2026-03-03T17:25:53.312Z'
                        verificationMethod: string
                        proofPurpose: string
                        jws: string
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                documentNotFound:
                  summary: Document not found or does not belong to this policy
                  value:
                    statusCode: 500
                    message: Document not found.
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                insufficientPermissions:
                  summary: No access to this policy
                  value:
                    statusCode: 500
                    message: Insufficient permissions to execute the policy.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Creates a new discussion linked to the target document
      tags:
        - policy-comments
  /policy-comments/{policyId}/{documentId}/discussions/{discussionId}/comments:
    post:
      description: Creates a new message in the target discussion
      operationId: PolicyCommentsApi_createPolicyComment
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: documentId
          required: true
          in: path
          description: Document Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: discussionId
          required: true
          in: path
          description: Discussion Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: Message
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewPolicyCommentDTO'
            examples:
              textComment:
                summary: Create a text comment
                value:
                  text: This field needs review.
                  fields:
                    - '#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1'
              commentWithRecipients:
                summary: Create a comment with recipients
                value:
                  text: Please review this document.
                  recipients:
                    - >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                  fields:
                    - '#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyCommentDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    id: 69aeb71ef8c5b278e3bab4e5
                    uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                    creator: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    policyId: 69aeb71ef8c5b278e3bab4e5
                    topicId: 0.0.6046379
                    policyTopicId: 0.0.6046379
                    policyInstanceTopicId: 0.0.6046379
                    target: string
                    targetId: 69aeb71ef8c5b278e3bab4e5
                    discussionMessageId: '1773670900.819264517'
                    discussionId: 69aeb71ef8c5b278e3bab4e5
                    messageId: '1773670900.819264517'
                    timestamp: 1759493933458
                    hash: QmExampleHash
                    sender: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    senderRole: Administrator
                    senderName: StandardRegistry
                    recipients:
                      - >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    fields:
                      - >-
                        #150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1
                    text: text
                    document:
                      id: 69aeb71ef8c5b278e3bab4e5
                      type:
                        - string
                      credentialSubject: {}
                      issuer: {}
                      issuanceDate: '2026-03-03T17:25:53.312Z'
                      proof:
                        type: string
                        created: '2026-03-03T17:25:53.312Z'
                        verificationMethod: string
                        proofPurpose: string
                        jws: string
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                documentNotFound:
                  summary: Document not found or does not belong to this policy
                  value:
                    statusCode: 500
                    message: Document not found.
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                insufficientPermissions:
                  summary: No access to this policy
                  value:
                    statusCode: 500
                    message: Insufficient permissions to execute the policy.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
        '503':
          description: Block Unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 503
                    message: Error message
      security:
        - bearer: []
      summary: Creates a new message in the target discussion.
      tags:
        - policy-comments
  /policy-comments/{policyId}/{documentId}/discussions/{discussionId}/comments/search:
    post:
      description: Returns the list of messages for the target discussion
      operationId: PolicyCommentsApi_getPolicyComments
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: documentId
          required: true
          in: path
          description: Document Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: discussionId
          required: true
          in: path
          description: Discussion Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: readonly
          required: false
          in: query
          description: >-
            When true and user has POLICIES_POLICY_AUDIT permission, enables
            audit mode — bypasses privacy filters.
          schema:
            example: false
            type: boolean
      requestBody:
        required: true
        description: Search params
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyCommentSearchDTO'
            examples:
              searchComments:
                summary: Search comments by text
                value:
                  search: review
                  field: '#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1'
              paginatedSearch:
                summary: Paginated search
                value:
                  search: text
                  lt: 69aeb71ef8c5b278e3bab4e5
      responses:
        '200':
          description: Successful operation.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PolicyCommentDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    - id: 69aeb71ef8c5b278e3bab4e5
                      uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                      creator: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      policyId: 69aeb71ef8c5b278e3bab4e5
                      topicId: 0.0.6046379
                      policyTopicId: 0.0.6046379
                      policyInstanceTopicId: 0.0.6046379
                      target: string
                      targetId: 69aeb71ef8c5b278e3bab4e5
                      discussionMessageId: '1773670900.819264517'
                      discussionId: 69aeb71ef8c5b278e3bab4e5
                      messageId: '1773670900.819264517'
                      timestamp: 1759493933458
                      hash: QmExampleHash
                      sender: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      senderRole: Administrator
                      senderName: StandardRegistry
                      recipients:
                        - >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      fields:
                        - >-
                          #150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1
                      text: text
                      document:
                        id: 69aeb71ef8c5b278e3bab4e5
                        type:
                          - string
                        credentialSubject: {}
                        issuer: {}
                        issuanceDate: '2026-03-03T17:25:53.312Z'
                        proof:
                          type: string
                          created: '2026-03-03T17:25:53.312Z'
                          verificationMethod: string
                          proofPurpose: string
                          jws: string
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                documentNotFound:
                  summary: Document not found or does not belong to this policy
                  value:
                    statusCode: 500
                    message: Document not found.
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                insufficientPermissions:
                  summary: No access to this policy
                  value:
                    statusCode: 500
                    message: Insufficient permissions to execute the policy.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Returns the list of messages for the target discussion
      tags:
        - policy-comments
  /policy-comments/{policyId}/{documentId}/comments/count:
    get:
      description: Returns the count of the messages in the target discussion
      operationId: PolicyCommentsApi_getPolicyCommentsCount
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: documentId
          required: true
          in: path
          description: Document Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyCommentCountDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    fields:
                      '#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1': 3
                      '#85c18385-e371-44ad-8155-57a834ba185a/projectTitle': 1
                    count: 4
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                documentNotFound:
                  summary: Document not found or does not belong to this policy
                  value:
                    statusCode: 500
                    message: Document not found.
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                insufficientPermissions:
                  summary: No access to this policy
                  value:
                    statusCode: 500
                    message: Insufficient permissions to execute the policy.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
        '503':
          description: Block Unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 503
                    message: Error message
      security:
        - bearer: []
      summary: Returns the count of the messages in the target discussion
      tags:
        - policy-comments
  /policy-comments/{policyId}/{documentId}/discussions/{discussionId}/comments/file:
    post:
      description: Encrypts and loads the file into IPFS linked to the target discussion
      operationId: PolicyCommentsApi_postFile
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: documentId
          required: true
          in: path
          description: Document Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: discussionId
          required: true
          in: path
          description: Discussion Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      requestBody:
        required: true
        description: >-
          Binary file data to encrypt and upload to IPFS. The file is linked to
          the target discussion.
        content:
          application/json:
            schema:
              type: string
              format: binary
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: string
              examples:
                default:
                  summary: Default example
                  value: bafkreihj7gclc4qgem27tre5je6a3t7tpdrk4li6oamdl6bnflwnoyfs5i
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 400
                    message: File is not uploaded
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 422
                    message: Body content in request is empty
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                documentNotFound:
                  summary: Document not found or does not belong to this policy
                  value:
                    statusCode: 500
                    message: Document not found.
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                insufficientPermissions:
                  summary: No access to this policy
                  value:
                    statusCode: 500
                    message: Insufficient permissions to execute the policy.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Encrypts and loads the file into IPFS linked to the target discussion
      tags:
        - policy-comments
  /policy-comments/{policyId}/{documentId}/discussions/{discussionId}/comments/file/{cid}:
    get:
      description: Retrieves and decrypts the file associated with the discussion from IPFS
      operationId: PolicyCommentsApi_getFile
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: documentId
          required: true
          in: path
          description: Document Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: discussionId
          required: true
          in: path
          description: Discussion Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: cid
          required: true
          in: path
          description: IPFS Content Identifier of the uploaded file
          schema:
            example: bafkreihj7gclc4qgem27tre5je6a3t7tpdrk4li6oamdl6bnflwnoyfs5i
            type: string
      responses:
        '200':
          description: Successful operation. Returns the decrypted file as binary stream.
          content:
            application/json:
              schema:
                type: string
                format: binary
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: File not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: File is not found
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                documentNotFound:
                  summary: Document not found or does not belong to this policy
                  value:
                    statusCode: 500
                    message: Document not found.
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                insufficientPermissions:
                  summary: No access to this policy
                  value:
                    statusCode: 500
                    message: Insufficient permissions to execute the policy.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Retrieves and decrypts the file associated with the discussion from IPFS
      tags:
        - policy-comments
  /policy-comments/{policyId}/{documentId}/keys:
    get:
      description: >-
        Returns the encryption key as a binary file for decrypting discussion
        content linked to the target document. Optionally filter by specific
        discussion ID.
      operationId: PolicyCommentsApi_getKey
      parameters:
        - name: policyId
          required: true
          in: path
          description: Policy Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: documentId
          required: true
          in: path
          description: Document Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: discussionId
          required: false
          in: query
          description: Discussion Identifier
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: string
                format: binary
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '404':
          description: Key file not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 404
                    message: File is not found
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                documentNotFound:
                  summary: Document not found or does not belong to this policy
                  value:
                    statusCode: 500
                    message: Document not found.
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                insufficientPermissions:
                  summary: No access to this policy
                  value:
                    statusCode: 500
                    message: Insufficient permissions to execute the policy.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Returns the encryption key for the target document discussions.
      tags:
        - policy-comments
  /policy-repository/{policyId}/users:
    get:
      description: >-
        Returns all users (grouped by DID) who have joined the specified policy,
        including their roles. The policy owner is always listed as
        "Administrator". Requires POLICIES_POLICY_AUDIT permission.
      operationId: PolicyRepositoryApi_getUsers
      parameters:
        - name: policyId
          required: true
          in: path
          description: Database ID of the policy
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation. Returns array of users with their roles.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PolicyCommentUserDTO'
              examples:
                withUsers:
                  summary: Users found in policy
                  value:
                    - label: ExampleUser
                      value: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      roles:
                        - Administrator
                      type: user
                    - label: User1
                      value: >-
                        did:hedera:testnet:EthnLQfQnh8x6vKyegyekhy72oSAok6cH59pfVssKLDw_0.0.8200599
                      roles:
                        - Project_Proponent
                      type: user
                empty:
                  summary: No users in policy
                  value: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid policy ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                insufficientPermissions:
                  summary: No access to this policy
                  value:
                    statusCode: 500
                    message: Insufficient permissions to execute the policy.
                disconnected:
                  summary: User was disconnected from policy
                  value:
                    statusCode: 500
                    message: You were disconnected from this policy.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Returns the list of users present in the policy.
      tags:
        - policy-repository
  /policy-repository/{policyId}/schemas:
    get:
      description: >-
        Returns only PUBLISHED schemas associated with the policy topic. Returns
        a subset of fields: uuid, name, version, iri, documentURL, contextURL.
        Requires POLICIES_POLICY_AUDIT permission.
      operationId: PolicyRepositoryApi_getSchemas
      parameters:
        - name: policyId
          required: true
          in: path
          description: Database ID of the policy
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SchemaDTO'
              examples:
                withSchemas:
                  summary: Published schemas found
                  value:
                    - uuid: 3eeb3f6b-da10-43fa-a247-a4df386278b5
                      name: '6.2 Appendix 2: Project Risks Table'
                      version: 1.0.0
                      iri: '#3eeb3f6b-da10-43fa-a247-a4df386278b5'
                      documentURL: >-
                        ipfs://bafkreihj7gclc4qgem27tre5je6a3t7tpdrk4li6oamdl6bnflwnoyfs5i
                      contextURL: >-
                        ipfs://bafkreihj7gclc4qgem27tre5je6a3t7tpdrk4li6oamdl6bnflwnoyfs5i
                empty:
                  summary: No published schemas
                  value: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid policy ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                insufficientPermissions:
                  summary: No access to this policy
                  value:
                    statusCode: 500
                    message: Insufficient permissions to execute the policy.
                disconnected:
                  summary: User was disconnected from policy
                  value:
                    statusCode: 500
                    message: You were disconnected from this policy.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Returns the list of published schemas in the target policy.
      tags:
        - policy-repository
  /policy-repository/{policyId}/documents:
    get:
      description: >-
        Returns paginated VC or VP documents from the policy. Only documents
        with a messageId (published to Hedera) are returned. Filter by type (VC
        or VP), owner DID, or schema IRI. Optionally load comment counts.
        Requires POLICIES_POLICY_AUDIT permission.
      operationId: PolicyRepositoryApi_getDocuments
      parameters:
        - name: policyId
          required: true
          in: path
          description: Database ID of the policy
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
        - name: type
          required: false
          in: query
          description: Document type to filter by. If not VC or VP, returns empty array.
          schema:
            enum:
              - VC
              - VP
            type: string
        - name: owner
          required: false
          in: query
          description: Filter by document owner DID
          schema:
            example: >-
              did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
            type: string
        - name: schema
          required: false
          in: query
          description: Filter by document schema IRI
          schema:
            example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
            type: string
        - name: comments
          required: false
          in: query
          description: If true, includes comment count for each VC document
          schema:
            type: boolean
      responses:
        '200':
          description: >-
            Successful operation. Returns documents and total count in
            X-Total-Count header.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VcDocumentDTO'
              examples:
                vcDocuments:
                  summary: VC documents found (type=VC)
                  value:
                    - createDate: '2026-03-13T09:26:55.610Z'
                      updateDate: '2026-03-13T09:27:09.653Z'
                      hash: 74RwXshVfxSkWFkNhDWdHHMqHhAFMbZ6pR4sepB4pJz2
                      hederaStatus: ISSUE
                      signature: 0
                      type: STANDARD_REGISTRY
                      option:
                        status: NEW
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      topicId: 0.0.8200599
                      messageId: '1773394029.513409000'
                      document:
                        id: urn:uuid:962aa166-7da1-4fab-ad88-6681ac55f770
                        type:
                          - VerifiableCredential
                        issuer: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        issuanceDate: '2026-03-13T09:26:55.502Z'
                        '@context':
                          - https://www.w3.org/2018/credentials/v1
                          - >-
                            ipfs://bafkreihj7gclc4qgem27tre5je6a3t7tpdrk4li6oamdl6bnflwnoyfs5i
                        credentialSubject:
                          - OrganizationName: Organization name
                            Website: https://google.com
                            Tags: Tag
                            '@context':
                              - >-
                                ipfs://bafkreihj7gclc4qgem27tre5je6a3t7tpdrk4li6oamdl6bnflwnoyfs5i
                            id: >-
                              did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                            type: StandardRegistry
                        proof:
                          type: Ed25519Signature2018
                          created: '2026-03-13T09:26:55Z'
                          verificationMethod: >-
                            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599#did-root-key
                          proofPurpose: assertionMethod
                          jws: >-
                            eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..Uc6RaUnv_zC4xc9j3mBqdd8Ew3z6lZITofdoJUYpxDot-fZhQEtiDjPAj5Au6UwApAfTnXy_el-uv5iOdzOyCg
                      documentFileId: 69b3d86d0b1c848021821bf9
                      tableFileIds: []
                      id: 69b3d85f0b1c848021821bf2
                vcWithComments:
                  summary: VC documents with comment count (type=VC, comments=true)
                  value:
                    - createDate: '2026-03-13T09:26:55.610Z'
                      updateDate: '2026-03-13T09:27:09.653Z'
                      hash: 74RwXshVfxSkWFkNhDWdHHMqHhAFMbZ6pR4sepB4pJz2
                      hederaStatus: ISSUE
                      signature: 0
                      type: STANDARD_REGISTRY
                      option:
                        status: NEW
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      topicId: 0.0.8200599
                      messageId: '1773394029.513409000'
                      document:
                        id: urn:uuid:962aa166-7da1-4fab-ad88-6681ac55f770
                        type:
                          - VerifiableCredential
                        issuer: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        issuanceDate: '2026-03-13T09:26:55.502Z'
                        '@context':
                          - https://www.w3.org/2018/credentials/v1
                          - >-
                            ipfs://bafkreihj7gclc4qgem27tre5je6a3t7tpdrk4li6oamdl6bnflwnoyfs5i
                        credentialSubject:
                          - OrganizationName: Organization name
                            Website: https://google.com
                            Tags: Tag
                            '@context':
                              - >-
                                ipfs://bafkreihj7gclc4qgem27tre5je6a3t7tpdrk4li6oamdl6bnflwnoyfs5i
                            id: >-
                              did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                            type: StandardRegistry
                        proof:
                          type: Ed25519Signature2018
                          created: '2026-03-13T09:26:55Z'
                          verificationMethod: >-
                            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599#did-root-key
                          proofPurpose: assertionMethod
                          jws: >-
                            eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..Uc6RaUnv_zC4xc9j3mBqdd8Ew3z6lZITofdoJUYpxDot-fZhQEtiDjPAj5Au6UwApAfTnXy_el-uv5iOdzOyCg
                      documentFileId: 69b3d86d0b1c848021821bf9
                      tableFileIds: []
                      id: 69b3d85f0b1c848021821bf2
                      comments: 5
                vpDocuments:
                  summary: VP documents found (type=VP)
                  value:
                    - id: 69aeb71ef8c5b278e3bab4e5
                      hash: GcDE9NsPJc7oCZvSVJySCZHxTxvjc3ZAMgtKozP1r1Eh
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      type: VP
                      policyId: 69b411d8b23f3b6a77d12742
                      tag: mint_token
                      createDate: '2026-03-03T17:25:53.312Z'
                      updateDate: '2026-03-03T17:26:10.000Z'
                      document:
                        id: urn:uuid:962aa166-7da1-4fab-ad88-6681ac55f770
                        type:
                          - VerifiablePresentation
                        '@context':
                          - https://www.w3.org/2018/credentials/v1
                empty:
                  summary: No documents (or type is not VC/VP)
                  value: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidId:
                  summary: Missing or invalid policy ID
                  value:
                    statusCode: 422
                    message: Invalid ID.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                policyNotFound:
                  summary: Policy does not exist
                  value:
                    statusCode: 500
                    message: Policy does not exist.
                insufficientPermissions:
                  summary: No access to this policy
                  value:
                    statusCode: 500
                    message: Insufficient permissions to execute the policy.
                disconnected:
                  summary: User was disconnected from policy
                  value:
                    statusCode: 500
                    message: You were disconnected from this policy.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Returns the list of documents in the target policy.
      tags:
        - policy-repository
  /relayer-accounts:
    get:
      description: >-
        Returns the list of Relayer Accounts owned by the currently
        authenticated user. Supports pagination and text search by account name
        or Hedera account ID.
      operationId: RelayerAccountsApi_getRelayerAccounts
      parameters:
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Filter by account name or Hedera account ID (case-insensitive,
            partial match). Leave empty to return all.
          schema:
            example: ''
            type: string
      responses:
        '200':
          description: >-
            Successful operation. Returns relayer accounts array and total count
            in X-Total-Count header.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RelayerAccountDTO'
              examples:
                withAccounts:
                  summary: Relayer accounts found
                  value:
                    - createDate: '2026-03-25T15:30:37.191Z'
                      updateDate: '2026-03-25T15:30:37.191Z'
                      name: New Test Account
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      account: 0.0.6046500
                      username: ExampleUser
                      _id: 69c3ff9de85d8b6ef99ef86a
                      id: 69c3ff9de85d8b6ef99ef86a
                empty:
                  summary: No relayer accounts
                  value: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                userNotFound:
                  summary: User DID not found in the system
                  value:
                    statusCode: 500
                    message: User does not exist.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Returns the list of Relayer Accounts of the active user.
      tags:
        - relayer-accounts
    post:
      description: >-
        Creates a new Relayer Account by associating an existing Hedera account
        (account ID + private key) with the current user. The key is stored
        securely in the wallet.
      operationId: RelayerAccountsApi_createRelayerAccount
      parameters: []
      requestBody:
        required: true
        description: >-
          New Relayer Account configuration. Requires a valid Hedera account ID
          and its private key.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewRelayerAccountDTO'
            examples:
              createAccount:
                summary: Create relayer account with Hedera credentials
                value:
                  name: My Relayer Account
                  account: 0.0.6046500
                  key: 302e020100300506032b657004220420...
      responses:
        '200':
          description: Successful operation. Returns the created relayer account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RelayerAccountDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    createDate: '2026-03-25T15:30:37.191Z'
                    updateDate: '2026-03-25T15:30:37.191Z'
                    name: New Test Account
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    account: 0.0.6046500
                    username: ExampleUser
                    _id: 69c3ff9de85d8b6ef99ef86a
                    id: 69c3ff9de85d8b6ef99ef86a
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                invalidAccount:
                  summary: >-
                    Hedera account/key validation failed (also returned for
                    empty body)
                  value:
                    statusCode: 422
                    message: Invalid account.
                alreadyExists:
                  summary: >-
                    Relayer account with this Hedera ID already exists for this
                    owner
                  value:
                    statusCode: 422
                    message: Relayer account already exist.
                userNotFound:
                  summary: User DID not found in the system
                  value:
                    statusCode: 422
                    message: User does not exist.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Adds a new Relayer Account for the active user.
      tags:
        - relayer-accounts
  /relayer-accounts/current:
    get:
      description: >-
        Returns the default Hedera account of the active user, which is used as
        the relayer when no specific relayer account is selected.
      operationId: RelayerAccountsApi_getCurrentRelayerAccount
      parameters: []
      responses:
        '200':
          description: >-
            Successful operation. Returns the default account info (name is
            always "Default").
          content:
            application/json:
              schema:
                type: object
                properties:
                  name:
                    type: string
                    description: Account name (always "Default")
                    example: Default
                  owner:
                    type: string
                    description: Owner DID
                    example: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                  account:
                    type: string
                    description: Hedera account ID
                    example: 0.0.6046379
              examples:
                default:
                  summary: Default example
                  value:
                    name: Default
                    owner: >-
                      did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                    account: 0.0.6046379
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                userNotFound:
                  summary: User DID not found in the system
                  value:
                    statusCode: 500
                    message: User does not exist.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Returns current (default) Relayer Account of the active user.
      tags:
        - relayer-accounts
  /relayer-accounts/all:
    get:
      description: >-
        Returns all Relayer Accounts owned by the current user. Unlike GET /,
        this endpoint returns all accounts without pagination.
      operationId: RelayerAccountsApi_getRelayerAccountsAll
      parameters: []
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RelayerAccountDTO'
              examples:
                withAccounts:
                  summary: Relayer accounts found
                  value:
                    - createDate: '2026-03-25T15:30:37.191Z'
                      updateDate: '2026-03-25T15:30:37.191Z'
                      name: New Test Account
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      account: 0.0.6046500
                      username: ExampleUser
                      _id: 69c3ff9de85d8b6ef99ef86a
                      id: 69c3ff9de85d8b6ef99ef86a
                empty:
                  summary: No relayer accounts
                  value: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                userNotFound:
                  summary: User DID not found in the system
                  value:
                    statusCode: 500
                    message: User does not exist.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: >-
        Returns the list of Relayer Accounts available for use in the Policy by
        the active user.
      tags:
        - relayer-accounts
  /relayer-accounts/{account}/balance:
    get:
      description: >-
        Queries the Hedera network for the current HBAR balance of the specified
        account. The account must belong to the current user or be a relayer
        account owned by them.
      operationId: RelayerAccountsApi_getRelayerAccountBalance
      parameters:
        - name: account
          required: true
          in: path
          description: Hedera account ID of the relayer account
          schema:
            example: 0.0.6046379
            type: string
      responses:
        '200':
          description: >-
            Successful operation. Returns the HBAR balance as a string (e.g.
            "999.34 tℏ").
          content:
            application/json:
              schema:
                type: string
              examples:
                withBalance:
                  summary: Account has balance
                  value: 999.33977375 tℏ
                zeroBalance:
                  summary: Zero balance
                  value: 0 tℏ
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                accountNotFound:
                  summary: Relayer account not found or not owned by user
                  value:
                    statusCode: 500
                    message: Relayer account does not exist.
                generic:
                  summary: Unexpected error (e.g. Hedera network issue)
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Returns current HBAR balance of the specified Relayer Account.
      tags:
        - relayer-accounts
  /relayer-accounts/generate:
    post:
      description: >-
        Generates a new Hedera account on the network and registers it as a
        Relayer Account for the current user. The account is created and funded
        automatically.
      operationId: RelayerAccountsApi_generateRelayerAccount
      parameters: []
      responses:
        '200':
          description: >-
            Successful operation. Returns the generated Hedera account ID and
            private key. Store the key securely — it is only returned once.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Generated Hedera account ID
                  key:
                    type: string
                    description: Private key for the generated account (hex-encoded DER)
              examples:
                generated:
                  summary: Generated account
                  value:
                    id: 0.0.8384973
                    key: >-
                      302e020100300506032b6570042204202f750d1cbc05a26d8e9abb556f7be9f03e552f2d76d621639633491548434352
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '422':
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityErrorDTO'
              examples:
                hederaAccountNotFound:
                  summary: User has no Hedera account or DID
                  value:
                    statusCode: 422
                    message: Hedera Account not found
                generationFailed:
                  summary: Account generation failed on Hedera network
                  value:
                    statusCode: 422
                    message: Error message
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                default:
                  summary: Default example
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Generate a new Relayer Account.
      tags:
        - relayer-accounts
  /relayer-accounts/accounts:
    get:
      description: >-
        If the active user is a Standard Registry, returns the list of all users
        (and their relayer accounts) under this SR. Each user appears once per
        relayer account plus once for the default account (with null relayer
        fields).
      operationId: RelayerAccountsApi_getUserRelayerAccounts
      parameters:
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Filter by username, Hedera account ID, relayer account ID or name
            (case-insensitive, partial match)
          schema:
            example: ''
            type: string
      responses:
        '200':
          description: >-
            Successful operation. Returns users with their relayer accounts and
            total count in X-Total-Count header.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              examples:
                withAccounts:
                  summary: User with default and relayer accounts
                  value:
                    - _id: 69aeb71ef8c5b278e3bab4e5
                      username: ExampleUser
                      did: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      hederaAccountId: 0.0.6046379
                    - _id: 69aeb71ef8c5b278e3bab4e5
                      username: ExampleUser
                      did: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      hederaAccountId: 0.0.6046379
                      relayerAccountId: 0.0.6046500
                      relayerAccountName: New Test Account
                empty:
                  summary: No accounts
                  value: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                userNotFound:
                  summary: User DID not found in the system
                  value:
                    statusCode: 500
                    message: User does not exist.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: Return the list of Relayer Accounts for the user.
      tags:
        - relayer-accounts
  /relayer-accounts/{relayerAccountId}/relationships:
    get:
      description: >-
        Returns paginated VC documents that were created using the specified
        relayer account. Each document is enriched with policyName,
        policyVersion, and schemaName.
      operationId: RelayerAccountsApi_getRelayerAccountRelationships
      parameters:
        - name: relayerAccountId
          required: true
          in: path
          description: Hedera account ID of the Relayer Account (not the database ID)
          schema:
            example: 0.0.6046500
            type: string
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
      responses:
        '200':
          description: >-
            Successful operation. Returns VC documents and total count in
            X-Total-Count header.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VcDocumentDTO'
              examples:
                withDocuments:
                  summary: VC documents found
                  value:
                    - createDate: '2026-03-13T09:26:55.610Z'
                      updateDate: '2026-03-13T09:27:09.653Z'
                      hash: 74RwXshVfxSkWFkNhDWdHHMqHhAFMbZ6pR4sepB4pJz2
                      hederaStatus: ISSUE
                      signature: 0
                      type: STANDARD_REGISTRY
                      option:
                        status: NEW
                      owner: >-
                        did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                      topicId: 0.0.8200599
                      messageId: '1773394029.513409000'
                      document:
                        id: urn:uuid:962aa166-7da1-4fab-ad88-6681ac55f770
                        type:
                          - VerifiableCredential
                        issuer: >-
                          did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                        issuanceDate: '2026-03-13T09:26:55.502Z'
                        '@context':
                          - https://www.w3.org/2018/credentials/v1
                          - >-
                            ipfs://bafkreihj7gclc4qgem27tre5je6a3t7tpdrk4li6oamdl6bnflwnoyfs5i
                        credentialSubject:
                          - OrganizationName: Organization name
                            Website: https://google.com
                            Tags: Tag
                            '@context':
                              - >-
                                ipfs://bafkreihj7gclc4qgem27tre5je6a3t7tpdrk4li6oamdl6bnflwnoyfs5i
                            id: >-
                              did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
                            type: StandardRegistry
                        proof:
                          type: Ed25519Signature2018
                          created: '2026-03-13T09:26:55Z'
                          verificationMethod: >-
                            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599#did-root-key
                          proofPurpose: assertionMethod
                          jws: >-
                            eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..Uc6RaUnv_zC4xc9j3mBqdd8Ew3z6lZITofdoJUYpxDot-fZhQEtiDjPAj5Au6UwApAfTnXy_el-uv5iOdzOyCg
                      documentFileId: 69b3d86d0b1c848021821bf9
                      tableFileIds: []
                      id: 69b3d85f0b1c848021821bf2
                empty:
                  summary: No VC documents for this relayer account
                  value: []
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              examples:
                invalidParams:
                  summary: Invalid parameters
                  value:
                    statusCode: 500
                    message: Invalid parameters.
                generic:
                  summary: Unexpected error
                  value:
                    statusCode: 500
                    message: Error message
      security:
        - bearer: []
      summary: >-
        Return the list of VC documents associated with the selected Relayer
        Account.
      tags:
        - relayer-accounts
  /worker-tasks:
    get:
      description: Returns all worker tasks.
      operationId: WorkerTasksController_getAllWorkerTasks
      parameters:
        - name: pageIndex
          required: false
          in: query
          description: >-
            The number of pages to skip before starting to collect the result
            set
          schema:
            example: 0
            type: number
        - name: pageSize
          required: false
          in: query
          description: The numbers of items to return
          schema:
            example: 20
            type: number
        - name: status
          required: false
          in: query
          description: Status
          schema:
            example: COMPLETE
            type: string
      responses:
        '200':
          description: Successful operation. Returns worker tasks and count.
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total items in the collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WorkersTasksDTO'
              example:
                - createDate: '2026-03-03T17:25:53.312Z'
                  done: true
                  id: null
                  isRetryableTask: true
                  processedTime: '2026-03-03T17:25:53.312Z'
                  sent: true
                  taskId: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                  type: send-hedera
                  updateDate: '2026-03-03T17:25:53.312Z'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Get all worker tasks
      tags:
        - worker-tasks
  /worker-tasks/restart:
    post:
      description: Restart task.
      operationId: WorkerTasksController_restartTask
      parameters: []
      requestBody:
        required: true
        description: Task restart request payload.
        content:
          application/json:
            schema:
              type: object
              required:
                - taskId
              properties:
                taskId:
                  type: string
                  description: Worker task identifier
                  example: 69aeb71ef8c5b278e3bab4e5
      responses:
        '200':
          description: Task restart request accepted. Empty response body.
          content:
            application/json:
              schema:
                type: object
                nullable: true
                example: null
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Restart task
      tags:
        - worker-tasks
  /worker-tasks/delete/{taskId}:
    delete:
      description: Delete task.
      operationId: WorkerTasksController_deleteTask
      parameters:
        - name: taskId
          required: true
          in: path
          description: Task Id
          schema:
            example: 69aeb71ef8c5b278e3bab4e5
            type: string
      responses:
        '200':
          description: Task deleted. Empty response body.
          content:
            application/json:
              schema:
                type: object
                nullable: true
                example: null
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorDTO'
              example:
                statusCode: 500
                message: Error message
      security:
        - bearer: []
      summary: Delete task
      tags:
        - worker-tasks
  /credentials/services:
    get:
      operationId: CredentialsApi_getServiceSchemas
      parameters: []
      responses:
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
      security:
        - bearer: []
      summary: Get supported external service credential schemas.
      tags:
        - credentials
  /credentials/user/global:
    get:
      operationId: CredentialsApi_getUserGlobalCredentials
      parameters: []
      responses:
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
      security:
        - bearer: []
      summary: Get user global credentials.
      tags:
        - credentials
    put:
      operationId: CredentialsApi_setUserGlobalCredential
      parameters: []
      responses:
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
      security:
        - bearer: []
      summary: Set user global credential.
      tags:
        - credentials
    delete:
      operationId: CredentialsApi_deleteUserGlobalCredential
      parameters:
        - name: serviceType
          required: true
          in: query
          schema:
            type: string
        - name: dryRun
          required: true
          in: query
          schema:
            type: string
      responses:
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
      security:
        - bearer: []
      summary: Delete user global credential.
      tags:
        - credentials
  /credentials/user/policy/{policyId}:
    get:
      operationId: CredentialsApi_getUserPolicyCredentials
      parameters:
        - name: policyId
          required: true
          in: path
          schema:
            type: string
      responses:
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
      security:
        - bearer: []
      summary: Get user policy credentials.
      tags:
        - credentials
    put:
      operationId: CredentialsApi_setUserPolicyCredential
      parameters:
        - name: policyId
          required: true
          in: path
          schema:
            type: string
      responses:
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
      security:
        - bearer: []
      summary: Set user policy credential.
      tags:
        - credentials
    delete:
      operationId: CredentialsApi_deleteUserPolicyCredential
      parameters:
        - name: policyId
          required: true
          in: path
          schema:
            type: string
        - name: serviceType
          required: true
          in: query
          schema:
            type: string
        - name: dryRun
          required: true
          in: query
          schema:
            type: string
      responses:
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
      security:
        - bearer: []
      summary: Delete user policy credential.
      tags:
        - credentials
  /credentials/user/sr-global:
    get:
      operationId: CredentialsApi_getSrGlobalCredentialsForUser
      parameters: []
      responses:
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
      security:
        - bearer: []
      summary: Get SR global credentials visible to the current user (read-only).
      tags:
        - credentials
  /credentials/user/sr-policy/{policyId}:
    get:
      operationId: CredentialsApi_getSrPolicyCredentialsForUser
      parameters:
        - name: policyId
          required: true
          in: path
          schema:
            type: string
      responses:
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
      security:
        - bearer: []
      summary: Get SR policy credentials visible to the current user (read-only).
      tags:
        - credentials
  /credentials/sr/global:
    get:
      operationId: CredentialsApi_getSrGlobalCredentials
      parameters: []
      responses:
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
      security:
        - bearer: []
      summary: Get SR global credentials.
      tags:
        - credentials
    put:
      operationId: CredentialsApi_setSrGlobalCredential
      parameters: []
      responses:
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
      security:
        - bearer: []
      summary: Set SR global credential.
      tags:
        - credentials
    delete:
      operationId: CredentialsApi_deleteSrGlobalCredential
      parameters:
        - name: serviceType
          required: true
          in: query
          schema:
            type: string
        - name: dryRun
          required: true
          in: query
          schema:
            type: string
      responses:
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
      security:
        - bearer: []
      summary: Delete SR global credential.
      tags:
        - credentials
  /credentials/sr/policy/{policyId}:
    get:
      operationId: CredentialsApi_getSrPolicyCredentials
      parameters:
        - name: policyId
          required: true
          in: path
          schema:
            type: string
      responses:
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
      security:
        - bearer: []
      summary: Get SR policy credentials.
      tags:
        - credentials
    put:
      operationId: CredentialsApi_setSrPolicyCredential
      parameters:
        - name: policyId
          required: true
          in: path
          schema:
            type: string
      responses:
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
      security:
        - bearer: []
      summary: Set SR policy credential.
      tags:
        - credentials
    delete:
      operationId: CredentialsApi_deleteSrPolicyCredential
      parameters:
        - name: policyId
          required: true
          in: path
          schema:
            type: string
        - name: serviceType
          required: true
          in: query
          schema:
            type: string
        - name: dryRun
          required: true
          in: query
          schema:
            type: string
      responses:
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorDTO'
              example:
                statusCode: 401
                message: Unauthorized request
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorDTO'
              example:
                message: Forbidden resource
                error: Forbidden
                statusCode: 403
      security:
        - bearer: []
      summary: Delete SR policy credential.
      tags:
        - credentials
info:
  title: Guardian
  description: >-
    The Guardian is a modular open-source solution that includes best-in-class
    identity management and decentralized ledger technology (DLT) libraries. At
    the heart of the Guardian solution is a sophisticated Policy Workflow Engine
    (PWE) that enables applications to offer a requirements-based tokenization
    implementation.
  version: 3.6.0-rc
  contact:
    name: API developer
    url: https://envisionblockchain.com
    email: info@envisionblockchain.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
tags: []
servers:
  - url: /api/v1
    description: version 1.0
components:
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
  schemas:
    PermissionGroupResponseDTO:
      type: object
      properties:
        uuid:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        roleId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        roleName:
          type: string
          example: Default policy user
        owner:
          type: string
          nullable: true
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
      required:
        - uuid
        - roleId
        - roleName
    AccountsSessionResponseDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        username:
          type: string
          example: StandardRegistry
        did:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        hederaAccountId:
          type: string
          example: 0.0.6046379
        role:
          type: string
          example: STANDARD_REGISTRY
        permissions:
          example:
            - ACCOUNTS_STANDARD_REGISTRY_READ
            - DEMO_KEY_CREATE
            - IPFS_FILE_READ
            - IPFS_FILE_CREATE
            - PROFILES_USER_READ
            - PROFILES_USER_UPDATE
            - PROFILES_BALANCE_READ
            - ACCOUNTS_ACCOUNT_READ
            - ANALYTIC_POLICY_READ
            - ANALYTIC_MODULE_READ
            - ANALYTIC_TOOL_READ
            - ANALYTIC_SCHEMA_READ
            - ANALYTIC_DOCUMENT_READ
            - ARTIFACTS_FILE_READ
            - ARTIFACTS_FILE_CREATE
            - ARTIFACTS_FILE_DELETE
            - BRANDING_CONFIG_UPDATE
            - CONTRACTS_CONTRACT_READ
            - CONTRACTS_CONTRACT_CREATE
            - CONTRACTS_CONTRACT_DELETE
            - CONTRACTS_CONTRACT_MANAGE
            - CONTRACTS_WIPE_REQUEST_READ
            - CONTRACTS_WIPE_REQUEST_UPDATE
            - CONTRACTS_WIPE_REQUEST_DELETE
            - CONTRACTS_WIPE_REQUEST_REVIEW
            - CONTRACTS_WIPE_ADMIN_CREATE
            - CONTRACTS_WIPE_ADMIN_DELETE
            - CONTRACTS_WIPE_MANAGER_CREATE
            - CONTRACTS_WIPE_MANAGER_DELETE
            - CONTRACTS_WIPER_CREATE
            - CONTRACTS_WIPER_DELETE
            - CONTRACTS_POOL_READ
            - CONTRACTS_POOL_UPDATE
            - CONTRACTS_POOL_DELETE
            - CONTRACTS_RETIRE_REQUEST_READ
            - CONTRACTS_RETIRE_REQUEST_CREATE
            - CONTRACTS_RETIRE_REQUEST_DELETE
            - CONTRACTS_RETIRE_REQUEST_REVIEW
            - CONTRACTS_RETIRE_ADMIN_CREATE
            - CONTRACTS_RETIRE_ADMIN_DELETE
            - CONTRACTS_PERMISSIONS_READ
            - CONTRACTS_DOCUMENT_READ
            - LOG_LOG_READ
            - MODULES_MODULE_READ
            - MODULES_MODULE_CREATE
            - MODULES_MODULE_UPDATE
            - MODULES_MODULE_DELETE
            - MODULES_MODULE_REVIEW
            - POLICIES_POLICY_READ
            - POLICIES_POLICY_CREATE
            - POLICIES_POLICY_UPDATE
            - POLICIES_POLICY_DELETE
            - POLICIES_POLICY_REVIEW
            - POLICIES_POLICY_EXECUTE
            - POLICIES_POLICY_MANAGE
            - POLICIES_MIGRATION_CREATE
            - POLICIES_RECORD_ALL
            - SCHEMAS_SCHEMA_READ
            - SCHEMAS_SCHEMA_CREATE
            - SCHEMAS_SCHEMA_UPDATE
            - SCHEMAS_SCHEMA_DELETE
            - SCHEMAS_SCHEMA_REVIEW
            - SCHEMAS_SYSTEM_SCHEMA_READ
            - SCHEMAS_SYSTEM_SCHEMA_CREATE
            - SCHEMAS_SYSTEM_SCHEMA_UPDATE
            - SCHEMAS_SYSTEM_SCHEMA_DELETE
            - SCHEMAS_SYSTEM_SCHEMA_REVIEW
            - TOOLS_TOOL_READ
            - TOOLS_TOOL_CREATE
            - TOOLS_TOOL_UPDATE
            - TOOLS_TOOL_DELETE
            - TOOLS_TOOL_REVIEW
            - TOOL_MIGRATION_CREATE
            - TOKENS_TOKEN_READ
            - TOKENS_TOKEN_CREATE
            - TOKENS_TOKEN_UPDATE
            - TOKENS_TOKEN_DELETE
            - TOKENS_TOKEN_MANAGE
            - TAGS_TAG_READ
            - TAGS_TAG_CREATE
            - PROFILES_RESTORE_ALL
            - SUGGESTIONS_SUGGESTIONS_READ
            - SUGGESTIONS_SUGGESTIONS_UPDATE
            - SETTINGS_SETTINGS_READ
            - SETTINGS_SETTINGS_UPDATE
            - SETTINGS_THEME_READ
            - SETTINGS_THEME_CREATE
            - SETTINGS_THEME_UPDATE
            - SETTINGS_THEME_DELETE
            - PERMISSIONS_ROLE_READ
            - PERMISSIONS_ROLE_CREATE
            - PERMISSIONS_ROLE_UPDATE
            - PERMISSIONS_ROLE_DELETE
            - PERMISSIONS_ROLE_MANAGE
            - ACCESS_POLICY_ALL
            - SCHEMAS_RULE_CREATE
            - SCHEMAS_RULE_READ
            - SCHEMAS_RULE_EXECUTE
            - FORMULAS_FORMULA_CREATE
            - FORMULAS_FORMULA_READ
            - POLICIES_EXTERNAL_POLICY_READ
            - POLICIES_EXTERNAL_POLICY_CREATE
            - POLICIES_EXTERNAL_POLICY_UPDATE
            - POLICIES_EXTERNAL_POLICY_DELETE
            - LOG_LOG_READ
            - LOG_SYSTEM_READ
          type: array
          items:
            type: string
        permissionsGroup:
          type: array
          items:
            $ref: '#/components/schemas/PermissionGroupResponseDTO'
        location:
          type: string
          example: local
      required:
        - id
        - username
        - role
        - permissions
    InternalServerErrorDTO:
      type: object
      properties:
        statusCode:
          type: number
          example: 500
        message:
          type: string
          example: Error message
      required:
        - statusCode
        - message
    RegisterUserDTO:
      type: object
      properties:
        username:
          type: string
          example: NewStandardRegistry
        password:
          type: string
          example: StrongPassword3#
        password_confirmation:
          type: string
          example: StrongPassword3#
        role:
          type: string
          example: STANDARD_REGISTRY
      required:
        - username
        - password
        - password_confirmation
        - role
    AccountsResponseDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        username:
          type: string
          example: StandardRegistry
        role:
          type: string
          example: STANDARD_REGISTRY
        permissions:
          example:
            - ACCOUNTS_STANDARD_REGISTRY_READ
            - DEMO_KEY_CREATE
            - IPFS_FILE_READ
            - IPFS_FILE_CREATE
            - PROFILES_USER_READ
            - PROFILES_USER_UPDATE
            - PROFILES_BALANCE_READ
            - ACCOUNTS_ACCOUNT_READ
            - ANALYTIC_POLICY_READ
            - ANALYTIC_MODULE_READ
            - ANALYTIC_TOOL_READ
            - ANALYTIC_SCHEMA_READ
            - ANALYTIC_DOCUMENT_READ
            - ARTIFACTS_FILE_READ
            - ARTIFACTS_FILE_CREATE
            - ARTIFACTS_FILE_DELETE
            - BRANDING_CONFIG_UPDATE
            - CONTRACTS_CONTRACT_READ
            - CONTRACTS_CONTRACT_CREATE
            - CONTRACTS_CONTRACT_DELETE
            - CONTRACTS_CONTRACT_MANAGE
            - CONTRACTS_WIPE_REQUEST_READ
            - CONTRACTS_WIPE_REQUEST_UPDATE
            - CONTRACTS_WIPE_REQUEST_DELETE
            - CONTRACTS_WIPE_REQUEST_REVIEW
            - CONTRACTS_WIPE_ADMIN_CREATE
            - CONTRACTS_WIPE_ADMIN_DELETE
            - CONTRACTS_WIPE_MANAGER_CREATE
            - CONTRACTS_WIPE_MANAGER_DELETE
            - CONTRACTS_WIPER_CREATE
            - CONTRACTS_WIPER_DELETE
            - CONTRACTS_POOL_READ
            - CONTRACTS_POOL_UPDATE
            - CONTRACTS_POOL_DELETE
            - CONTRACTS_RETIRE_REQUEST_READ
            - CONTRACTS_RETIRE_REQUEST_CREATE
            - CONTRACTS_RETIRE_REQUEST_DELETE
            - CONTRACTS_RETIRE_REQUEST_REVIEW
            - CONTRACTS_RETIRE_ADMIN_CREATE
            - CONTRACTS_RETIRE_ADMIN_DELETE
            - CONTRACTS_PERMISSIONS_READ
            - CONTRACTS_DOCUMENT_READ
            - LOG_LOG_READ
            - MODULES_MODULE_READ
            - MODULES_MODULE_CREATE
            - MODULES_MODULE_UPDATE
            - MODULES_MODULE_DELETE
            - MODULES_MODULE_REVIEW
            - POLICIES_POLICY_READ
            - POLICIES_POLICY_CREATE
            - POLICIES_POLICY_UPDATE
            - POLICIES_POLICY_DELETE
            - POLICIES_POLICY_REVIEW
            - POLICIES_POLICY_EXECUTE
            - POLICIES_POLICY_MANAGE
            - POLICIES_MIGRATION_CREATE
            - POLICIES_RECORD_ALL
            - SCHEMAS_SCHEMA_READ
            - SCHEMAS_SCHEMA_CREATE
            - SCHEMAS_SCHEMA_UPDATE
            - SCHEMAS_SCHEMA_DELETE
            - SCHEMAS_SCHEMA_REVIEW
            - SCHEMAS_SYSTEM_SCHEMA_READ
            - SCHEMAS_SYSTEM_SCHEMA_CREATE
            - SCHEMAS_SYSTEM_SCHEMA_UPDATE
            - SCHEMAS_SYSTEM_SCHEMA_DELETE
            - SCHEMAS_SYSTEM_SCHEMA_REVIEW
            - TOOLS_TOOL_READ
            - TOOLS_TOOL_CREATE
            - TOOLS_TOOL_UPDATE
            - TOOLS_TOOL_DELETE
            - TOOLS_TOOL_REVIEW
            - TOOL_MIGRATION_CREATE
            - TOKENS_TOKEN_READ
            - TOKENS_TOKEN_CREATE
            - TOKENS_TOKEN_UPDATE
            - TOKENS_TOKEN_DELETE
            - TOKENS_TOKEN_MANAGE
            - TAGS_TAG_READ
            - TAGS_TAG_CREATE
            - PROFILES_RESTORE_ALL
            - SUGGESTIONS_SUGGESTIONS_READ
            - SUGGESTIONS_SUGGESTIONS_UPDATE
            - SETTINGS_SETTINGS_READ
            - SETTINGS_SETTINGS_UPDATE
            - SETTINGS_THEME_READ
            - SETTINGS_THEME_CREATE
            - SETTINGS_THEME_UPDATE
            - SETTINGS_THEME_DELETE
            - PERMISSIONS_ROLE_READ
            - PERMISSIONS_ROLE_CREATE
            - PERMISSIONS_ROLE_UPDATE
            - PERMISSIONS_ROLE_DELETE
            - PERMISSIONS_ROLE_MANAGE
            - ACCESS_POLICY_ALL
            - SCHEMAS_RULE_CREATE
            - SCHEMAS_RULE_READ
            - SCHEMAS_RULE_EXECUTE
            - FORMULAS_FORMULA_CREATE
            - FORMULAS_FORMULA_READ
            - POLICIES_EXTERNAL_POLICY_READ
            - POLICIES_EXTERNAL_POLICY_CREATE
            - POLICIES_EXTERNAL_POLICY_UPDATE
            - POLICIES_EXTERNAL_POLICY_DELETE
            - LOG_LOG_READ
            - LOG_SYSTEM_READ
          type: array
          items:
            type: string
        permissionsGroup:
          type: array
          items:
            $ref: '#/components/schemas/PermissionGroupResponseDTO'
        location:
          type: string
          example: local
      required:
        - id
        - username
        - role
    ConflictErrorDTO:
      type: object
      properties:
        statusCode:
          type: number
          example: 409
        message:
          type: string
          example: Conflict
      required:
        - statusCode
        - message
    UnprocessableEntityErrorDTO:
      type: object
      properties:
        statusCode:
          type: number
          example: 422
        message:
          oneOf:
            - type: string
            - type: array
              items:
                type: string
          example: Error message
        error:
          type: string
          example: Unprocessable Entity
      required:
        - statusCode
        - message
    SubjectDTO:
      type: object
      properties:
        '@context':
          nullable: true
          type: array
          items:
            type: string
        id:
          type: string
          nullable: true
        type:
          type: string
          nullable: true
      required:
        - '@context'
    DidDocumentDTO:
      type: object
      properties:
        id:
          type: string
          nullable: false
        '@context':
          nullable: true
          type: array
          items:
            type: string
        alsoKnownAs:
          nullable: true
          type: array
          items:
            type: string
        controller:
          nullable: true
          type: array
          items:
            type: string
        verificationMethod:
          additionalProperties: true
          nullable: true
          type: array
          items:
            type: object
        authentication:
          additionalProperties: true
          nullable: true
          type: array
          items:
            type: object
        assertionMethod:
          additionalProperties: true
          nullable: true
          type: array
          items:
            type: object
        keyAgreement:
          additionalProperties: true
          nullable: true
          type: array
          items:
            type: object
        capabilityInvocation:
          additionalProperties: true
          nullable: true
          type: array
          items:
            type: object
        capabilityDelegation:
          additionalProperties: true
          nullable: true
          type: array
          items:
            type: object
        service:
          additionalProperties: true
          nullable: true
          type: array
          items:
            type: object
      required:
        - id
        - '@context'
        - alsoKnownAs
        - controller
        - verificationMethod
        - authentication
        - assertionMethod
        - keyAgreement
        - capabilityInvocation
        - capabilityDelegation
        - service
    DidKeyDTO:
      type: object
      properties:
        id:
          type: string
          nullable: false
        key:
          type: string
          nullable: false
      required:
        - id
        - key
    FireblocksConfigDTO:
      type: object
      properties:
        fireBlocksVaultId:
          type: string
          example: ''
        fireBlocksAssetId:
          type: string
          example: ''
        fireBlocksApiKey:
          type: string
          example: ''
        fireBlocksPrivateiKey:
          type: string
          example: ''
          description: >-
            API property name is `fireBlocksPrivateiKey` (typo preserved for
            compatibility).
    OnboardingDTO:
      type: object
      properties:
        username:
          type: string
          example: NewStandardRegistry
        password:
          type: string
          example: StrongPassword3#
        password_confirmation:
          type: string
          example: StrongPassword3#
        role:
          type: string
          example: STANDARD_REGISTRY
        hederaAccountId:
          type: string
          description: >-
            Hedera account ID (e.g. 0.0.12345). Auto-generated from the operator
            account if omitted.
          example: 0.0.12345
        hederaAccountKey:
          type: string
          description: >-
            Hedera account private key. Required when hederaAccountId is
            provided; auto-generated if omitted.
        parent:
          type: string
          description: >-
            Standard Registry username or DID. Required for USER role accounts
            to link them to their registry.
          example: registry_username
        vcDocument:
          description: VC document to publish during profile setup.
          allOf:
            - $ref: '#/components/schemas/SubjectDTO'
        didDocument:
          description: Pre-created DID document. Auto-generated if omitted.
          allOf:
            - $ref: '#/components/schemas/DidDocumentDTO'
        didKeys:
          description: Private keys for the DID document methods.
          type: array
          items:
            $ref: '#/components/schemas/DidKeyDTO'
        useFireblocksSigning:
          type: boolean
          default: false
          description: Use Fireblocks signing instead of local key.
        fireblocksConfig:
          description: >-
            Fireblocks configuration (required when useFireblocksSigning is
            true).
          allOf:
            - $ref: '#/components/schemas/FireblocksConfigDTO'
      required:
        - username
        - password
        - password_confirmation
        - role
    TaskDTO:
      type: object
      properties:
        taskId:
          type: string
          description: Task Id
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        expectation:
          type: number
          description: Expected count of task phases
          example: 8
        action:
          type: string
          description: Task action
          example: Create tool
        userId:
          type: string
          description: User Id
          example: 69bcfd90c98df6ceb05e8a78
      required:
        - taskId
        - expectation
        - action
        - userId
    LoginUserDTO:
      type: object
      properties:
        username:
          type: string
          example: StandardRegistry
        password:
          type: string
          example: test
        otp:
          type: string
      required:
        - username
        - password
        - otp
    AccountsLoginResponseDTO:
      type: object
      properties:
        username:
          type: string
          example: StandardRegistry
        did:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        role:
          type: string
          example: STANDARD_REGISTRY
        refreshToken:
          type: string
          example: >-
            eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImYwNmY2MzIyLTk2NGYtNGIwMC05ZjgwLTljM2Y1OTdjYTYyYSIsIm5hbWUiOiJTdGFuZGFyZFJlZ2lzdHJ5IiwiZXhwaXJlQXQiOjE4MDQ3MDAzOTczMzgsImlhdCI6MTc3MzE2NDM5N30.ODc0_ktbl5xPRn4Ub1Kuj-xrjlho2_oyohucLdgMUqFGrI2SD_T3A96OaV2cKx7NQwsxc-QFBpBnrGSriJ9qPUcDm9rYmQYSqwpRJT0uSuL7xwu4TiPlVzghCd5xlLTw_uA6uJR7CG7HrDphPQI6zMGSxKXcn2S9xIZ6z5uBuWU
        weakPassword:
          type: boolean
          example: false
      required:
        - username
        - did
        - role
        - refreshToken
    UnauthorizedErrorDTO:
      type: object
      properties:
        statusCode:
          type: number
          example: 401
        message:
          type: string
          example: Unauthorized request
      required:
        - statusCode
        - message
    ChangePasswordDTO:
      type: object
      properties:
        username:
          type: string
          example: StandardRegistry
        oldPassword:
          type: string
          example: test
        newPassword:
          type: string
          example: AnotherStrongPassword3#
      required:
        - username
        - oldPassword
        - newPassword
    ForbiddenErrorDTO:
      type: object
      properties:
        statusCode:
          type: number
          example: 403
        message:
          type: string
          example: Forbidden resource
        error:
          type: string
          example: Forbidden
      required:
        - statusCode
        - message
    AccessTokenRequestDTO:
      type: object
      properties:
        refreshToken:
          type: string
          description: Refresh token
          example: >-
            eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImYwNmY2MzIyLTk2NGYtNGIwMC05ZjgwLTljM2Y1OTdjYTYyYSIsIm5hbWUiOiJTdGFuZGFyZFJlZ2lzdHJ5IiwiZXhwaXJlQXQiOjE4MDQ3MDAzOTczMzgsImlhdCI6MTc3MzE2NDM5N30.ODc0_ktbl5xPRn4Ub1Kuj-xrjlho2_oyohucLdgMUqFGrI2SD_T3A96OaV2cKx7NQwsxc-QFBpBnrGSriJ9qPUcDm9rYmQYSqwpRJT0uSuL7xwu4TiPlVzghCd5xlLTw_uA6uJR7CG7HrDphPQI6zMGSxKXcn2S9xIZ6z5uBuWU
      required:
        - refreshToken
    AccessTokenResponseDTO:
      type: object
      properties:
        accessToken:
          type: string
          description: Access token
          example: >-
            eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IlN0YW5kYXJkUmVnaXN0cnkiLCJkaWQiOiJkaWQ6aGVkZXJhOnRlc3RuZXQ6Q3Z6cDVrS1ZVdWlwQkNRamNGNTRmQmpkaWN2YUtzQjh6SGVRNlFxMjJVMlpfMC4wLjgxNDUzNDgiLCJyb2xlIjoiU1RBTkRBUkRfUkVHSVNUUlkiLCJleHBpcmVBdCI6MTc3MzgzNzIwNDYzOSwiaWF0IjoxNzczMjM3MjA0fQ.R9F3os4r4BdVpIXO1WhMq9GYp4qiAzBESMqVwM4NacCht4oRyR2X62t2VVckHyb8ElN4Igwy9C7CHdkSL3kpGlRHrN8haDbDfWxtMWw3bpRNUc8Wyvx8p8-N_aSOBZMgoWJQo-K6hB4MgXP2lPT0MQ-JDP01eG8Xn6MtQF4dctA
      required:
        - accessToken
    UserAccountDTO:
      type: object
      properties:
        username:
          type: string
          example: Installer
        parent:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        did:
          type: string
          example: >-
            did:hedera:testnet:EthnLQfQnh8x6vKyegyekhy72oSAok6cH59pfVssKLDw_0.0.8200599
      required:
        - username
    StandardRegistryAccountDTO:
      type: object
      properties:
        username:
          type: string
          example: StandardRegistry
        did:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
      required:
        - username
    ProofDTO:
      type: object
      properties:
        type:
          type: string
          example: Ed25519Signature2018
        created:
          type: string
          example: '2026-03-13T09:26:55Z'
        verificationMethod:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599#did-root-key
        proofPurpose:
          type: string
          example: assertionMethod
        jws:
          type: string
          example: >-
            eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..Uc6RaUnv_zC4xc9j3mBqdd8Ew3z6lZITofdoJUYpxDot-fZhQEtiDjPAj5Au6UwApAfTnXy_el-uv5iOdzOyCg
      required:
        - type
        - created
        - verificationMethod
        - proofPurpose
        - jws
    VcDTO:
      type: object
      properties:
        id:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
          nullable: true
        '@context':
          example:
            - https://www.w3.org/2018/credentials/v1
            - ipfs://bafkreihj7gclc4qgem27tre5je6a3t7tpdrk4li6oamdl6bnflwnoyfs5i
          type: array
          items:
            type: string
        type:
          example:
            - VerifiableCredential
          type: array
          items:
            type: string
        credentialSubject:
          additionalProperties: true
          example:
            - OrganizationName: Organization name
              Website: https://google.com
              Tags: Tag
              '@context':
                - >-
                  ipfs://bafkreihj7gclc4qgem27tre5je6a3t7tpdrk4li6oamdl6bnflwnoyfs5i
              id: >-
                did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
              type: StandardRegistry
          type: array
          items:
            type: object
        issuer:
          oneOf:
            - type: string
            - type: object
              additionalProperties: true
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        issuanceDate:
          type: string
          example: '2026-03-13T09:26:55.502Z'
        proof:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/ProofDTO'
      required:
        - id
        - '@context'
        - type
        - credentialSubject
        - issuer
        - issuanceDate
        - proof
    VcDocumentDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        policyId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        hash:
          type: string
          example: hash
        signature:
          type: number
          example: 0
        status:
          type: string
          enum:
            - NEW
            - ISSUE
            - REVOKE
            - SUSPEND
            - RESUME
            - FAILED
          example: NEW
        tag:
          type: string
          example: Block tag
        type:
          type: string
          example: Document type
        createDate:
          type: string
          example: '2026-03-03T17:25:53.312Z'
        updateDate:
          type: string
          example: '2026-03-03T17:25:53.312Z'
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        hederaStatus:
          type: string
          example: ISSUE
        option:
          type: object
          additionalProperties: true
          example:
            status: NEW
        topicId:
          type: string
          example: 0.0.6046379
        messageId:
          type: string
          example: '1773670900.819264517'
        document:
          $ref: '#/components/schemas/VcDTO'
    PolicyTestDTO:
      type: object
      properties:
        id:
          type: string
          description: Test ID
          example: 69aeb71ef8c5b278e3bab4e5
        uuid:
          type: string
          description: Test UUID
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        name:
          type: string
          description: Test Name
          example: Test Name
        policyId:
          type: string
          description: Policy ID
          example: 69aeb71ef8c5b278e3bab4e5
        owner:
          type: string
          description: Test owner
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        status:
          type: string
          description: Test status
          enum:
            - New
            - Running
            - Stopped
            - Success
            - Failure
          example: New
        date:
          type: string
          description: Last start date
          example: '2026-03-03T17:25:53.312Z'
        duration:
          type: string
          description: Test duration
          example: 0
        progress:
          type: string
          description: Test progress
          example: 0
        resultId:
          type: string
          description: Test result
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        result:
          type: string
          description: Test result
      required:
        - id
        - uuid
        - name
        - policyId
        - owner
        - status
        - date
        - duration
        - progress
        - resultId
        - result
    PolicyImportantParametersDTO:
      type: object
      properties:
        atValidation:
          type: string
          example: ''
        monitored:
          type: string
          example: ''
    PolicyToolDTO:
      type: object
      properties:
        name:
          type: string
          example: Tool 33
        version:
          type: string
          nullable: true
          example: 1.0.0
        topicId:
          type: string
          example: 0.0.6046379
        messageId:
          type: string
          example: '1773670900.819264517'
      required:
        - name
        - topicId
        - messageId
    PolicyEditableFieldDTO:
      type: object
      properties: {}
    IgnoreRuleDTO:
      type: object
      properties:
        code:
          type: string
          description: Stable message code, e.g. DEPRECATION_BLOCK
        blockType:
          type: string
          description: Limit by block type
        property:
          type: string
          description: Limit by property
        contains:
          type: string
          description: Substring filter applied to message text
        severity:
          type: string
          description: Type of message
          enum:
            - warning
            - info
    PolicyDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        uuid:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        name:
          type: string
          example: Policy name
        description:
          type: string
          example: Description
        topicDescription:
          type: string
          example: Description
        applicabilityConditions:
          type: string
          example: ''
        detailsUrl:
          type: string
          example: ''
        typicalProjects:
          type: string
          example: ''
        importantParameters:
          $ref: '#/components/schemas/PolicyImportantParametersDTO'
        policyTag:
          type: string
          example: Tag
        status:
          type: string
          enum:
            - DRY-RUN
            - DRAFT
            - PUBLISH_ERROR
            - PUBLISH
            - DISCONTINUED
            - DEMO
            - VIEW
          example: DRAFT
        creator:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        topicId:
          type: string
          example: 0.0.6046379
        instanceTopicId:
          type: string
          example: 0.0.6046379
        messageId:
          type: string
          example: '1773670900.819264517'
        availability:
          type: string
          enum:
            - private
            - public
          example: private
        codeVersion:
          type: string
          example: 1.0.0
        tools:
          type: array
          items:
            $ref: '#/components/schemas/PolicyToolDTO'
        createDate:
          type: string
          example: '2026-03-03T17:25:53.312Z'
        version:
          type: string
          example: 1.0.0
        originalChanged:
          type: string
        editableParametersSettings:
          type: array
          items:
            $ref: '#/components/schemas/PolicyEditableFieldDTO'
        config:
          type: object
          additionalProperties: true
        userRole:
          type: string
          example: Installer
        userRoles:
          example:
            - Installer
          type: array
          items:
            type: string
        userGroup:
          type: object
          additionalProperties: true
          nullable: true
          description: >-
            Last active group in iteration order (not a separate summary). Often
            shown via groupLabel or uuid.
          example:
            uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
            role: Installer
            groupLabel: Label
            groupName: Name
            active: true
        userGroups:
          additionalProperties: true
          description: >-
            Full list of group rows for this user in the policy
            (getGroupsByUser), including inactive.
          example:
            - uuid: 9db028d2-03ad-4d49-a178-cf4b67f8c147
              role: Installer
              groupLabel: Label
              groupName: Name
              active: true
          type: array
          items:
            type: object
        policyRoles:
          example:
            - Registrant
          type: array
          items:
            type: string
        policyNavigation:
          additionalProperties: true
          example:
            - role: Registrant
              steps:
                - block: Block tag
                  level: 1
                  name: Step name
          type: array
          items:
            type: object
        policyTopics:
          additionalProperties: true
          example:
            - name: Project
              description: Project
              memoObj: topic
              static: false
              type: any
          type: array
          items:
            type: object
        policyTokens:
          additionalProperties: true
          example:
            - tokenName: Token name
              tokenSymbol: Token symbol
              tokenType: non-fungible
              decimals: ''
              changeSupply: true
              enableAdmin: true
              enableFreeze: true
              enableKYC: true
              enableWipe: true
              templateTokenTag: token_template_0
          type: array
          items:
            type: object
        policyGroups:
          additionalProperties: true
          example:
            - name: Group name
              creator: Registrant
              groupAccessType: Private
              groupRelationshipType: Multiple
              members:
                - Registrant
          type: array
          items:
            type: object
        policyDocumentation:
          additionalProperties: true
          description: >-
            User-configured policy API documentation entries. The `alias` may be
            a single slug (`create-device`) or a path of slugs separated by `/`
            (`monitoring-reports/create`).
          example:
            - name: create_device
              description: Send event to create_device
              target: create_device
              method: POST
              alias: monitoring-reports/create
              url: /api/v1/policies/{policyId}/tag/create_device/blocks
              dmrvUrl: /api/v1/dmrv/{policyId}/monitoring-reports/create
          type: array
          items:
            type: object
        categories:
          type: array
          items:
            type: string
        projectSchema:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        tests:
          type: array
          items:
            $ref: '#/components/schemas/PolicyTestDTO'
        ignoreRules:
          description: >-
            Validation-only rules to hide matching warnings/infos (not
            persisted)
          type: array
          items:
            $ref: '#/components/schemas/IgnoreRuleDTO'
      required:
        - id
        - uuid
        - name
        - description
        - topicDescription
        - policyTag
        - status
        - creator
        - owner
        - topicId
        - instanceTopicId
        - messageId
        - codeVersion
        - tools
        - createDate
        - version
        - editableParametersSettings
        - config
        - userRole
        - userRoles
        - userGroup
        - userGroups
        - policyRoles
        - policyNavigation
        - policyTopics
        - policyTokens
        - policyGroups
        - policyDocumentation
        - categories
        - projectSchema
        - tests
    AggregatedDTOItem:
      type: object
      properties:
        did:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        vcDocument:
          $ref: '#/components/schemas/VcDocumentDTO'
        policies:
          type: array
          items:
            $ref: '#/components/schemas/PolicyDTO'
        username:
          type: string
          example: StandardRegistry
        hederaAccountId:
          type: string
          example: 0.0.6046379
      required:
        - did
        - vcDocument
        - policies
        - username
        - hederaAccountId
    BalanceResponseDTO:
      type: object
      properties:
        balance:
          type: string
          example: 833.88244301 ℏ
        unit:
          type: string
          example: HBar
        user:
          $ref: '#/components/schemas/StandardRegistryAccountDTO'
      required:
        - balance
        - unit
        - user
    OTPConfigDTO:
      type: object
      properties:
        algo:
          type: string
          example: sha1
        digits:
          type: number
          example: 111
        period:
          type: number
          example: 111
        secretSize:
          type: number
          example: 111
      required:
        - algo
        - digits
        - period
        - secretSize
    GenerateOPTResponseDTO:
      type: object
      properties:
        issuer:
          type: string
          example: OS Guardian
        user:
          type: string
          example: StandardRegistry
        secret:
          type: string
          example: AAA0AA0A0A00A000
        url:
          type: string
          example: >-
            otpauth://totp/OS%20Guardian:StandardRegistry?issuer=OS+Guardian&period=30&secret=XXX0XX0X0X00X000
        config:
          $ref: '#/components/schemas/OTPConfigDTO'
      required:
        - issuer
        - user
        - secret
        - url
        - config
    OTPConfirmDTO:
      type: object
      properties:
        token:
          type: string
          example: '111111'
      required:
        - token
    OTPConfirmResponseDTO:
      type: object
      properties:
        success:
          type: boolean
          example: true
        backupCodes:
          example:
            - '000000'
            - '111111'
            - '222222'
            - '333333'
            - '444444'
            - '555555'
            - '666666'
            - '777777'
            - '888888'
            - '999999'
          type: array
          items:
            type: string
      required:
        - success
        - backupCodes
    OTPStatusResponseDTO:
      type: object
      properties:
        enabled:
          type: boolean
          example: true
      required:
        - enabled
    EmptyResponseDTO:
      type: object
      properties: {}
    FilterSearchPoliciesDTO:
      type: object
      properties:
        policyId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        type:
          type: string
          enum:
            - Owned
            - Local
            - Global
          example: Local
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        minVcCount:
          type: number
          example: 0
        minVpCount:
          type: number
          example: 0
        minTokensCount:
          type: number
          example: 0
        text:
          type: string
          example: Policy name
        threshold:
          type: number
          minimum: 0
          maximum: 100
          example: 0
        toolMessageIds:
          example:
            - 69aeb71ef8c5b278e3bab4e5
            - 69aeb71ef8c5b278e3bab4e5
          type: array
          items:
            type: string
        toolName:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        toolVersion:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
    SearchPolicyDTO:
      type: object
      properties:
        type:
          type: string
          enum:
            - Local
            - Global
          example: Local
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        topicId:
          type: string
          example: 0.0.6046379
        messageId:
          type: string
          example: '1773670900.819264517'
        uuid:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        name:
          type: string
          example: Policy name
        description:
          type: string
          example: Policy description
        version:
          type: string
          example: 1.0.0
        status:
          type: string
          enum:
            - DRY-RUN
            - DRAFT
            - PUBLISH_ERROR
            - PUBLISH
            - DISCONTINUED
            - DEMO
            - VIEW
          example: DRAFT
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        tags:
          additionalProperties: true
          type: array
          items:
            type: object
        vcCount:
          type: number
          example: 0
        vpCount:
          type: number
          example: 0
        tokensCount:
          type: number
          example: 0
        rate:
          type: number
          example: 0
      required:
        - tags
    SearchPoliciesDTO:
      type: object
      properties:
        target:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/SearchPolicyDTO'
        result:
          type: array
          items:
            $ref: '#/components/schemas/SearchPolicyDTO'
      required:
        - result
    ComparePoliciesItemDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        name:
          type: string
          example: Test_Policy_2
        description:
          type: string
          example: ''
        instanceTopicId:
          type: string
          nullable: true
          example: 0.0.8264622
        version:
          type: string
          example: '1'
        type:
          type: string
          example: id
      required:
        - id
        - name
        - description
        - type
    ComparePoliciesColumnDTO:
      type: object
      properties:
        name:
          type: string
          example: left_name
        label:
          type: string
          example: Name
        type:
          type: string
          example: string
        display:
          type: string
          example: Rate
      required:
        - name
        - label
        - type
    ComparePoliciesPropertyValueDTO:
      type: object
      properties:
        name:
          type: string
          example: onErrorAction
        lvl:
          type: number
          example: 1
        path:
          type: string
          example: onErrorAction
        type:
          type: string
          example: property
        value:
          type: object
          description: Arbitrary property value
      required:
        - name
        - lvl
        - path
        - type
        - value
    ComparePoliciesBlockSideDTO:
      type: object
      properties:
        index:
          type: number
          example: 1
        blockType:
          type: string
          example: interfaceContainerBlock
        tag:
          type: string
          example: Block_1
        properties:
          type: array
          items:
            $ref: '#/components/schemas/ComparePoliciesPropertyValueDTO'
        events:
          description: Block events payloads
          type: array
          items:
            type: object
      required:
        - index
        - blockType
        - tag
        - properties
        - events
    ComparePoliciesRateEntryDTO:
      type: object
      properties:
        type:
          type: string
          example: FULL
        totalRate:
          type: number
          example: 100
        items:
          description: Pair of compared values, can include null
          type: array
          items:
            type: object
        name:
          type: string
          example: type
        path:
          type: string
          example: uiMetaData.type
        lvl:
          type: number
          example: 2
      required:
        - type
        - totalRate
        - items
    ComparePoliciesBlocksReportRowDTO:
      type: object
      properties:
        lvl:
          type: number
          example: 1
        type:
          type: string
          example: PARTLY
        block_type:
          type: string
          example: interfaceContainerBlock
        left_index:
          type: number
          example: 1
        left_type:
          type: string
          example: interfaceContainerBlock
        left_tag:
          type: string
          example: Block_1
        right_index:
          type: number
          example: 1
        right_type:
          type: string
          example: interfaceContainerBlock
        right_tag:
          type: string
          example: Block_1
        index_rate:
          type: string
          example: 100%
        permission_rate:
          type: string
          example: 100%
        prop_rate:
          type: string
          example: 83%
        event_rate:
          type: string
          example: 70%
        artifacts_rate:
          type: string
          example: 100%
        total_rate:
          type: string
          example: 80%
        left:
          $ref: '#/components/schemas/ComparePoliciesBlockSideDTO'
        right:
          $ref: '#/components/schemas/ComparePoliciesBlockSideDTO'
        properties:
          type: array
          items:
            $ref: '#/components/schemas/ComparePoliciesRateEntryDTO'
        events:
          type: array
          items:
            $ref: '#/components/schemas/ComparePoliciesRateEntryDTO'
        permissions:
          type: array
          items:
            $ref: '#/components/schemas/ComparePoliciesRateEntryDTO'
        artifacts:
          type: array
          items:
            $ref: '#/components/schemas/ComparePoliciesRateEntryDTO'
        size:
          type: number
          description: Present in merged multi-compare report rows
    ComparePoliciesBlocksSectionDTO:
      type: object
      properties:
        columns:
          type: array
          items:
            $ref: '#/components/schemas/ComparePoliciesColumnDTO'
        report:
          description: Rows may include additional dynamic fields in multi-compare mode
          type: array
          items:
            $ref: '#/components/schemas/ComparePoliciesBlocksReportRowDTO'
      required:
        - columns
        - report
    ComparePoliciesPropsReportRowDTO:
      type: object
      properties:
        left_name:
          type: string
          example: Owner
        right_name:
          type: string
          example: Owner
        total_rate:
          type: string
          example: 100%
        left:
          type: object
        right:
          type: object
        type:
          type: string
          example: FULL
        properties:
          type: array
          items:
            $ref: '#/components/schemas/ComparePoliciesRateEntryDTO'
        size:
          type: number
          description: Present in merged multi-compare report rows
    ComparePoliciesPropsSectionDTO:
      type: object
      properties:
        columns:
          type: array
          items:
            $ref: '#/components/schemas/ComparePoliciesColumnDTO'
        report:
          description: Rows may include additional dynamic fields in multi-compare mode
          type: array
          items:
            $ref: '#/components/schemas/ComparePoliciesPropsReportRowDTO'
      required:
        - columns
        - report
    ComparePoliciesDTO:
      type: object
      properties:
        left:
          $ref: '#/components/schemas/ComparePoliciesItemDTO'
        right:
          $ref: '#/components/schemas/ComparePoliciesItemDTO'
        total:
          type: number
          example: 66
        blocks:
          $ref: '#/components/schemas/ComparePoliciesBlocksSectionDTO'
        roles:
          $ref: '#/components/schemas/ComparePoliciesPropsSectionDTO'
        groups:
          $ref: '#/components/schemas/ComparePoliciesPropsSectionDTO'
        topics:
          $ref: '#/components/schemas/ComparePoliciesPropsSectionDTO'
        tokens:
          $ref: '#/components/schemas/ComparePoliciesPropsSectionDTO'
        tools:
          $ref: '#/components/schemas/ComparePoliciesPropsSectionDTO'
      required:
        - left
        - right
        - total
        - blocks
        - roles
        - groups
        - topics
        - tokens
        - tools
    ComparePoliciesMultiDTO:
      type: object
      properties:
        size:
          type: number
          example: 3
        left:
          $ref: '#/components/schemas/ComparePoliciesItemDTO'
        rights:
          type: array
          items:
            $ref: '#/components/schemas/ComparePoliciesItemDTO'
        totals:
          type: array
          items:
            type: object
        blocks:
          $ref: '#/components/schemas/ComparePoliciesBlocksSectionDTO'
        roles:
          $ref: '#/components/schemas/ComparePoliciesPropsSectionDTO'
        groups:
          $ref: '#/components/schemas/ComparePoliciesPropsSectionDTO'
        topics:
          $ref: '#/components/schemas/ComparePoliciesPropsSectionDTO'
        tokens:
          $ref: '#/components/schemas/ComparePoliciesPropsSectionDTO'
        tools:
          $ref: '#/components/schemas/ComparePoliciesPropsSectionDTO'
      required:
        - size
        - left
        - rights
        - totals
        - blocks
        - roles
        - groups
        - topics
        - tokens
        - tools
    CompareFileDTO:
      type: object
      properties:
        id:
          type: string
          description: File ID
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        name:
          type: string
          description: File Name
          example: File Name
        value:
          type: string
          description: Buffer
          example: base64...
      required:
        - id
        - name
        - value
    FilterPolicyDTO:
      type: object
      properties:
        type:
          type: string
          description: Identifier type
          enum:
            - id
            - message
            - file
          example: id
        value:
          oneOf:
            - type: string
              description: Policy ID
            - type: string
              description: Policy Message ID
            - $ref: '#/components/schemas/CompareFileDTO'
              description: Policy File
          example: 69aeb71ef8c5b278e3bab4e5
      required:
        - type
        - value
    FilterPoliciesDTO:
      type: object
      properties:
        idLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
            - type: number
              enum:
                - 0
                - 1
          example: 0
        eventsLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        propLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        childrenLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        policyId1:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        policyId2:
          type: string
          example: 69b8115f3dc0fa022156fb89
        policyIds:
          example:
            - 69aeb71ef8c5b278e3bab4e5
            - 69b8115f3dc0fa022156fb89
          type: array
          items:
            type: string
        policies:
          example:
            - type: id
              value: 69aeb71ef8c5b278e3bab4e5
            - type: message
              value: '1773670900.819264517'
            - type: file
              value:
                id: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                name: File Name
                value: base64...
          type: array
          items:
            $ref: '#/components/schemas/FilterPolicyDTO'
    CompareOriginalPolicyFilterDTO:
      type: object
      properties:
        idLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
            - type: number
              enum:
                - 0
                - 1
          example: 0
        eventsLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        propLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        childrenLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
    FilterModulesDTO:
      type: object
      properties:
        idLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
            - type: number
              enum:
                - 0
                - 1
          example: 0
        eventsLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        propLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        childrenLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        moduleId1:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        moduleId2:
          type: string
          example: 69b8115f3dc0fa022156fb89
      required:
        - moduleId1
        - moduleId2
    CompareModulesItemDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        name:
          type: string
          example: Module_1
        description:
          type: string
          example: Some specific module for test purposes
      required:
        - id
        - name
        - description
    CompareModulesSectionDTO:
      type: object
      properties:
        columns:
          type: array
          items:
            $ref: '#/components/schemas/ComparePoliciesColumnDTO'
        report:
          type: array
          items:
            type: object
      required:
        - columns
        - report
    CompareModulesDTO:
      type: object
      properties:
        left:
          $ref: '#/components/schemas/CompareModulesItemDTO'
        right:
          $ref: '#/components/schemas/CompareModulesItemDTO'
        total:
          type: number
          example: 22
        blocks:
          $ref: '#/components/schemas/CompareModulesSectionDTO'
        inputEvents:
          $ref: '#/components/schemas/CompareModulesSectionDTO'
        outputEvents:
          $ref: '#/components/schemas/CompareModulesSectionDTO'
        variables:
          $ref: '#/components/schemas/CompareModulesSectionDTO'
      required:
        - left
        - right
        - total
        - blocks
        - inputEvents
        - outputEvents
        - variables
    CompareSchemasByIdsRequestDTO:
      type: object
      properties:
        schemaId1:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        schemaId2:
          type: string
          example: 69b8115f3dc0fa022156fb89
        idLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
            - type: number
              enum:
                - 0
                - 1
          example: '0'
      required:
        - schemaId1
        - schemaId2
    FilterSchemaDTO:
      type: object
      properties:
        type:
          type: string
          description: Identifier type
          enum:
            - id
            - policy-message
            - policy-file
          example: id
        value:
          type: string
          description: Schema ID
          example: 69aeb71ef8c5b278e3bab4e5
        policy:
          oneOf:
            - description: Policy Message ID
              type: string
            - $ref: '#/components/schemas/CompareFileDTO'
              description: Policy File
          example: 69aeb71ef8c5b278e3bab4e5
      required:
        - type
        - value
    CompareSchemasByListRequestDTO:
      type: object
      properties:
        schemas:
          example:
            - type: id
              value: 69aeb71ef8c5b278e3bab4e5
            - type: id
              value: 69b8115f3dc0fa022156fb89
          type: array
          items:
            $ref: '#/components/schemas/FilterSchemaDTO'
        idLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
            - type: number
              enum:
                - 0
                - 1
          example: '0'
      required:
        - schemas
    CompareSchemasItemDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        name:
          type: string
          example: Schema name
        description:
          type: string
          example: Schema description
        uuid:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        topicId:
          type: string
          nullable: true
          example: 0.0.8264622
        version:
          type: string
          example: '1'
        iri:
          type: string
          example: schema:iri
        policy:
          type: object
      required:
        - id
        - name
        - description
        - uuid
        - version
        - iri
    CompareSchemasSectionDTO:
      type: object
      properties:
        columns:
          type: array
          items:
            $ref: '#/components/schemas/ComparePoliciesColumnDTO'
        report:
          type: array
          items:
            type: object
      required:
        - columns
        - report
    CompareSchemasDTO:
      type: object
      properties:
        left:
          $ref: '#/components/schemas/CompareSchemasItemDTO'
        right:
          $ref: '#/components/schemas/CompareSchemasItemDTO'
        total:
          type: number
          example: 44
        fields:
          $ref: '#/components/schemas/CompareSchemasSectionDTO'
      required:
        - left
        - right
        - total
        - fields
    CompareDocumentsByIdsRequestDTO:
      type: object
      properties:
        idLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
            - type: number
              enum:
                - 0
                - 1
          example: 0
        eventsLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        propLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        childrenLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        documentId1:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        documentId2:
          type: string
          example: 69b8115f3dc0fa022156fb89
      required:
        - documentId1
        - documentId2
    CompareDocumentsByListRequestDTO:
      type: object
      properties:
        idLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
            - type: number
              enum:
                - 0
                - 1
          example: 0
        eventsLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        propLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        childrenLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        documentIds:
          example:
            - 69aeb71ef8c5b278e3bab4e5
            - 69b8115f3dc0fa022156fb89
            - 69b7da996d2f71c7a55b1fa3
          type: array
          items:
            type: string
      required:
        - documentIds
    CompareDocumentItemDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        type:
          type: string
          example: VerifiableCredential
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        policy:
          type: string
          nullable: true
          example: Policy A
      required:
        - id
        - type
        - owner
    CompareDocumentsSectionDTO:
      type: object
      properties:
        columns:
          type: array
          items:
            $ref: '#/components/schemas/ComparePoliciesColumnDTO'
        report:
          type: array
          items:
            type: object
      required:
        - columns
        - report
    CompareDocumentsDTO:
      type: object
      properties:
        left:
          $ref: '#/components/schemas/CompareDocumentItemDTO'
        right:
          $ref: '#/components/schemas/CompareDocumentItemDTO'
        total:
          type: number
          example: 68
        documents:
          $ref: '#/components/schemas/CompareDocumentsSectionDTO'
      required:
        - left
        - right
        - total
        - documents
    CompareDocumentsMultiDTO:
      type: object
      properties:
        size:
          type: number
          example: 3
        left:
          $ref: '#/components/schemas/CompareDocumentItemDTO'
        rights:
          type: array
          items:
            $ref: '#/components/schemas/CompareDocumentItemDTO'
        totals:
          type: array
          items:
            type: number
        documents:
          $ref: '#/components/schemas/CompareDocumentsSectionDTO'
      required:
        - size
        - left
        - rights
        - totals
        - documents
    CompareToolsByIdsRequestDTO:
      type: object
      properties:
        idLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
            - type: number
              enum:
                - 0
                - 1
          example: 0
        eventsLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        propLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        childrenLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        toolId1:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        toolId2:
          type: string
          example: 69b8115f3dc0fa022156fb89
      required:
        - toolId1
        - toolId2
    CompareToolsByListRequestDTO:
      type: object
      properties:
        idLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
            - type: number
              enum:
                - 0
                - 1
          example: 0
        eventsLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        propLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        childrenLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        toolIds:
          example:
            - 69aeb71ef8c5b278e3bab4e5
            - 69b8115f3dc0fa022156fb89
            - 69b7da996d2f71c7a55b1fa3
          type: array
          items:
            type: string
      required:
        - toolIds
    CompareToolItemDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        name:
          type: string
          example: Tool 30
        description:
          type: string
          nullable: true
          example: Description
        hash:
          type: string
          nullable: true
          example: 4r7i6SXuDxDrk8dkwomzgkfFp8FqMuWSCsuWqZhhYLZ4
        messageId:
          type: string
          nullable: true
          example: '1773670900.819264517'
      required:
        - id
        - name
    CompareToolsDTO:
      type: object
      properties:
        left:
          $ref: '#/components/schemas/CompareToolItemDTO'
        right:
          $ref: '#/components/schemas/CompareToolItemDTO'
        total:
          type: number
          example: 74
        blocks:
          $ref: '#/components/schemas/ComparePoliciesBlocksSectionDTO'
        inputEvents:
          $ref: '#/components/schemas/ComparePoliciesPropsSectionDTO'
        outputEvents:
          $ref: '#/components/schemas/ComparePoliciesPropsSectionDTO'
        variables:
          $ref: '#/components/schemas/ComparePoliciesPropsSectionDTO'
      required:
        - left
        - right
        - total
        - blocks
        - inputEvents
        - outputEvents
        - variables
    CompareToolsMultiDTO:
      type: object
      properties:
        size:
          type: number
          example: 3
        left:
          $ref: '#/components/schemas/CompareToolItemDTO'
        rights:
          type: array
          items:
            $ref: '#/components/schemas/CompareToolItemDTO'
        totals:
          type: array
          items:
            type: number
        blocks:
          $ref: '#/components/schemas/ComparePoliciesBlocksSectionDTO'
        inputEvents:
          $ref: '#/components/schemas/ComparePoliciesPropsSectionDTO'
        outputEvents:
          $ref: '#/components/schemas/ComparePoliciesPropsSectionDTO'
        variables:
          $ref: '#/components/schemas/ComparePoliciesPropsSectionDTO'
      required:
        - size
        - left
        - rights
        - totals
        - blocks
        - inputEvents
        - outputEvents
        - variables
    FilterSearchBlocksDTO:
      type: object
      properties:
        id:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        config:
          type: object
          description: >-
            Root block config to search for similar blocks in published
            policies.
          additionalProperties: true
          properties:
            id:
              type: string
              example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
            blockType:
              type: string
              example: interfaceContainerBlock
            uiMetaData:
              type: object
              additionalProperties: true
              example:
                type: blank
            permissions:
              type: array
              items:
                type: string
              example:
                - ANY_ROLE
            defaultActive:
              type: boolean
              example: true
            onErrorAction:
              type: string
              example: no-action
            tag:
              type: string
              example: ''
            children:
              type: array
              items:
                type: object
                additionalProperties: true
              example:
                - id: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                  blockType: policyRolesBlock
                  defaultActive: true
                  uiMetaData:
                    title: Roles
                    description: Choose Roles
                  roles:
                    - Project Participant
                    - VVB
                  permissions:
                    - NO_ROLE
                  onErrorAction: no-action
                  tag: Choose_Roles1
                  children: []
                  events: []
                  artifacts: []
            events:
              type: array
              items:
                type: object
                additionalProperties: true
              example: []
            artifacts:
              type: array
              items:
                type: object
                additionalProperties: true
              example: []
          example:
            id: 9db028d2-03ad-4d49-a178-cf4b67f8c147
            blockType: interfaceContainerBlock
            uiMetaData:
              type: blank
            permissions:
              - ANY_ROLE
            defaultActive: true
            onErrorAction: no-action
            tag: ''
            children:
              - id: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                blockType: policyRolesBlock
                defaultActive: true
                uiMetaData:
                  title: Roles
                  description: Choose Roles
                roles:
                  - Project Participant
                  - VVB
                permissions:
                  - NO_ROLE
                onErrorAction: no-action
                tag: Choose_Roles1
                children: []
                events: []
                artifacts: []
            events: []
            artifacts: []
      required:
        - id
        - config
    SearchBlocksNodeDTO:
      type: object
      properties:
        id:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        tag:
          type: string
          example: pp_grid_sr
        blockType:
          type: string
          example: interfaceDocumentsSourceBlock
        config:
          type: object
          description: Original block config (free-form object)
          additionalProperties: true
        path:
          example:
            - 0
            - 1
            - 0
            - 0
          type: array
          items:
            type: number
      required:
        - id
        - tag
        - blockType
        - config
        - path
    SearchBlocksPairDTO:
      type: object
      properties:
        hash:
          type: number
          example: 100
        source:
          $ref: '#/components/schemas/SearchBlocksNodeDTO'
        filter:
          $ref: '#/components/schemas/SearchBlocksNodeDTO'
      required:
        - hash
        - source
        - filter
    SearchBlocksChainDTO:
      type: object
      properties:
        hash:
          type: number
          example: 12099
        target:
          $ref: '#/components/schemas/SearchBlocksNodeDTO'
        pairs:
          type: array
          items:
            $ref: '#/components/schemas/SearchBlocksPairDTO'
      required:
        - hash
        - target
        - pairs
    SearchBlocksDTO:
      type: object
      properties:
        name:
          type: string
          example: CDM AMS-III.AR Policy
        description:
          type: string
          example: >-
            Substituting fossil fuel-based lighting with LED/CFL lighting
            systems
        version:
          type: string
          example: '1'
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        topicId:
          type: string
          example: 0.0.6046379
        messageId:
          type: string
          example: '1773670900.819264517'
        hash:
          type: number
          example: 12099
        chains:
          type: array
          items:
            $ref: '#/components/schemas/SearchBlocksChainDTO'
      required:
        - name
        - description
        - version
        - owner
        - topicId
        - messageId
        - hash
        - chains
    ArtifactDTOItem:
      type: object
      properties:
        createDate:
          type: string
          example: '2026-03-19T11:23:34.247Z'
        updateDate:
          type: string
          example: '2026-03-19T11:23:34.247Z'
        uuid:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        policyId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        name:
          type: string
          example: country_emission_factors
        type:
          type: string
          enum:
            - JSON
            - Executable Code
          example: JSON
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        extention:
          type: string
          example: json
        category:
          type: string
          enum:
            - policy
            - tool
          example: policy
        creator:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
      required:
        - createDate
        - updateDate
        - uuid
        - policyId
        - name
        - type
        - owner
        - extention
        - id
    UploadArtifactsDTO:
      type: object
      properties:
        artifacts:
          description: Artifact files
          type: array
          items:
            type: string
            format: binary
      required:
        - artifacts
    BadRequestErrorDTO:
      type: object
      properties:
        statusCode:
          type: number
          example: 400
        message:
          oneOf:
            - type: string
            - type: array
              items:
                type: string
          example: Error message
        error:
          type: string
          example: Bad Request
      required:
        - statusCode
        - message
    UpsertFileResponseDTO:
      type: object
      properties:
        fileId:
          type: string
          description: File identifier
          example: 67b8f31d2a26f8be2a9f0be9
        filename:
          type: string
          description: Saved file name
          example: file
        contentType:
          type: string
          description: Saved file content type
          example: application/json
      required:
        - fileId
        - filename
        - contentType
    ContractDTO:
      type: object
      properties:
        createDate:
          type: string
          format: date-time
          description: Record creation time (from persistence layer).
          example: '2026-03-03T17:25:53.312Z'
        updateDate:
          type: string
          format: date-time
          description: Record last update time (from persistence layer).
          example: '2026-03-03T17:25:53.312Z'
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        contractId:
          type: string
          example: 0.0.6046379
        description:
          type: string
          example: Contract description
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        permissions:
          type: number
          description: >-
            Bitmask of caller roles (values are additive): 1 = Owner, 2 = Admin,
            4 = Manager (WIPE only), 8 = Wiper (WIPE v1.0.0 only). E.g. 3 =
            Owner+Admin (RETIRE), 7 = Owner+Admin+Manager (WIPE).
          example: 7
        topicId:
          type: string
          example: 0.0.6046379
        type:
          type: string
          enum:
            - WIPE
            - RETIRE
          example: WIPE
        syncPoolsDate:
          format: date-time
          type: string
          description: Last sync of retire pools (may be absent).
          example: '2026-03-03T17:25:53.312Z'
        lastSyncEventTimeStamp:
          type: string
          description: >-
            Hedera consensus timestamp string from last processed contract
            event.
          example: '1773997659.461000723'
        syncDisabled:
          type: boolean
          description: When true, automatic sync is disabled for this contract.
          example: false
        version:
          type: string
          description: Deployed contract ABI / behavior version.
          example: 1.0.1
        wipeContractIds:
          description: >-
            Legacy: linked WIPE contract Hedera ids (contract-level wiper).
            Often empty for `version` 1.0.1+; see `wipeTokenIds` instead.
          example: []
          type: array
          items:
            type: string
        wipeTokenIds:
          description: >-
            Token-level wiper allowlist (Hedera token ids). Typical for RETIRE
            contracts with `version` 1.0.1+; usually empty for WIPE contracts.
          example:
            - 0.0.8300593
          type: array
          items:
            type: string
      required:
        - createDate
        - updateDate
        - id
        - contractId
        - owner
        - permissions
        - topicId
        - type
    ContractConfigDTO:
      type: object
      properties:
        type:
          type: string
          enum:
            - WIPE
            - RETIRE
          example: WIPE
        description:
          type: string
          example: Contract description
      required:
        - type
        - description
    ImportContractDTO:
      type: object
      properties:
        contractId:
          type: string
          description: Hedera contract identifier
          example: 0.0.6046379
        description:
          type: string
          description: Contract description
      required:
        - contractId
    WiperRequestDTO:
      type: object
      properties:
        createDate:
          type: string
          format: date-time
          description: Record creation time.
          example: '2026-03-03T17:25:53.312Z'
        updateDate:
          type: string
          format: date-time
          description: Record last update time.
          example: '2026-03-03T17:25:53.312Z'
        contractId:
          type: string
          example: 0.0.6046379
        user:
          type: string
          description: Hedera account id of the requester.
          example: 0.0.6046379
        token:
          type: string
          description: Hedera token id.
          example: 0.0.6046379
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
      required:
        - createDate
        - updateDate
        - contractId
        - user
        - id
    RetireRequestDTO:
      type: object
      properties:
        id:
          type: string
        contractId:
          type: string
        tokens:
          type: object
          required:
            - token
            - count
            - serials
            - decimals
            - type
            - tokenSymbol
          properties:
            token:
              type: string
            count:
              type: number
            serials:
              type: array
              items:
                type: number
            decimals:
              type: number
            type:
              enum:
                - non-fungible
                - fungible
            tokenSymbol:
              type: string
        tokenIds:
          type: array
          items:
            type: string
        user:
          type: string
      required:
        - id
        - contractId
        - tokenIds
        - user
    RetirePoolDTO:
      type: object
      properties:
        createDate:
          type: string
          format: date-time
          description: Record creation time.
        updateDate:
          type: string
          format: date-time
          description: Record last update time.
        id:
          type: string
        contractId:
          type: string
        tokens:
          type: object
          required:
            - token
            - contract
            - count
            - decimals
            - type
            - tokenSymbol
          properties:
            token:
              type: string
              description: Hedera token id.
            contract:
              type: string
              description: Wipe contract id.
            count:
              type: number
              description: Token count in pool.
            decimals:
              type: number
              description: Token decimals.
            type:
              type: string
              enum:
                - non-fungible
                - fungible
            tokenSymbol:
              type: string
              description: Token symbol.
        tokenIds:
          description: Token ids in pool.
          type: array
          items:
            type: string
        immediately:
          type: boolean
          description: Retire immediately without approval.
        enabled:
          type: boolean
          description: Pool is enabled.
      required:
        - id
        - contractId
        - tokenIds
        - immediately
        - enabled
    RetirePoolTokenDTO:
      type: object
      properties:
        token:
          type: string
        count:
          type: number
      required:
        - token
        - count
    RetireRequestTokenFTDTO:
      type: object
      properties:
        token:
          type: string
          example: 0.0.8300593
        count:
          type: number
          example: 1
        serials:
          description: Use empty array for FT retire request.
          example: []
          type: array
          items:
            type: number
      required:
        - token
        - count
        - serials
    RetireRequestTokenNFTDTO:
      type: object
      properties:
        token:
          type: string
          example: 0.0.8300593
        count:
          type: number
          description: Required; use `0` for NFT retire request.
          example: 0
        serials:
          description: NFT serial numbers to retire.
          example:
            - 1
          type: array
          items:
            type: number
      required:
        - token
        - count
        - serials
    RetireVcTokenDTO:
      type: object
      properties:
        tokenId:
          type: string
          description: Hedera token id
          example: 0.0.8308164
        count:
          type: number
          description: 'For FT: amount. For NFT: 0'
          example: 3
        serials:
          description: 'For NFT: serial numbers. For FT: empty'
          example:
            - 2
            - 3
            - 4
            - 10
          type: array
          items:
            type: number
      required:
        - tokenId
        - count
        - serials
    RetireCredentialSubjectDTO:
      type: object
      properties:
        id:
          type: string
          description: Subject DID
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        user:
          type: string
          description: User Hedera account id
          example: 0.0.6057669
        contractId:
          type: string
          description: Retire contract id
          example: 0.0.8308132
        tokens:
          description: Retired tokens
          type: array
          items:
            $ref: '#/components/schemas/RetireVcTokenDTO'
        type:
          type: string
          example: Retire
      required:
        - id
        - user
        - contractId
        - tokens
        - type
    RetireVcProofDTO:
      type: object
      properties:
        type:
          type: string
          example: Ed25519Signature2018
        created:
          type: string
          example: '2026-03-20T18:36:34Z'
        verificationMethod:
          type: string
          example: did:hedera:testnet:..._0.0.8299835#did-root-key
        proofPurpose:
          type: string
          example: assertionMethod
        jws:
          type: string
          example: >-
            eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..f71046hE9geZXL7uPc5EIc2YsNGMWsRakFwN_iMht4O6njdQZPtKckkQ6H9P1pZBaRz-_yaAy-gmfO-I3LJDBw
      required:
        - type
        - created
        - verificationMethod
        - proofPurpose
        - jws
    RetireVcDocumentBodyDTO:
      type: object
      properties:
        id:
          type: string
          example: urn:uuid:93328f13-cac2-49a8-9c30-fb52842093dd
        type:
          example:
            - VerifiableCredential
          type: array
          items:
            type: string
        issuer:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        issuanceDate:
          type: string
          example: '2026-03-20T18:36:34.285Z'
        credentialSubject:
          description: Credential subjects
          type: array
          items:
            $ref: '#/components/schemas/RetireCredentialSubjectDTO'
        proof:
          $ref: '#/components/schemas/RetireVcProofDTO'
      required:
        - id
        - type
        - issuer
        - issuanceDate
        - credentialSubject
        - proof
    RetireVcDocumentDTO:
      type: object
      properties:
        createDate:
          type: string
          format: date-time
          example: '2026-03-20T18:36:53.698Z'
        updateDate:
          type: string
          format: date-time
          example: '2026-03-20T18:36:53.698Z'
        hash:
          type: string
          example: 88chLeeXjKUXa13dNeEJz2tNehsjo3HQGUX5QH3kmY6b
        hederaStatus:
          type: string
          example: NEW
          description: Hedera document status
        signature:
          type: number
          example: 0
        type:
          type: string
          example: RETIRE
        option:
          type: object
          example:
            status: NEW
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        document:
          description: >-
            VerifiableCredential with credentialSubject (user, contractId,
            tokens)
          allOf:
            - $ref: '#/components/schemas/RetireVcDocumentBodyDTO'
        documentFileId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        documentFields:
          example:
            - credentialSubject.0.user
          type: array
          items:
            type: string
        tableFileIds:
          example: []
          type: array
          items:
            type: string
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
      required:
        - createDate
        - updateDate
        - hash
        - hederaStatus
        - signature
        - type
        - option
        - owner
        - document
        - documentFileId
        - documentFields
        - tableFileIds
        - id
    RetireVcIndexerDocumentDTO:
      type: object
      properties:
        id:
          type: string
          example: 66ee387945ab8bf9448f45e2
        lastUpdate:
          type: number
          example: 0
        topicId:
          type: string
          description: Contract topic id
          example: 0.0.4641052
        consensusTimestamp:
          type: string
          example: '1722418989.344504535'
        owner:
          type: string
          example: 0.0.1416
        uuid:
          type: string
          example: 8494b750-eed6-4d13-82a1-5cc1a644ffae
        status:
          type: string
          example: ISSUE
        type:
          type: string
          example: VC-Document
        action:
          type: string
          example: create-vc-document
        lang:
          type: string
          example: en-US
        responseType:
          type: string
          example: str
        options:
          type: object
          example:
            issuer: >-
              did:hedera:testnet:AGGRsWENUUAqhusdGrfX6R5TuEU8MU56XDyorH2MKZyY_0.0.4640363
            relationships: null
            documentStatus: null
            encodedData: false
        analytics:
          type: object
          example:
            textSearch: 0.0.4641052|0.0.1416|1722418989.344504535|...
            schemaId: '1743436678.828522000'
            schemaName: Retire
        analyticsUpdate:
          type: number
          example: 1773995161141
        coordUpdate:
          type: number
          example: 1756843304325
        files:
          example:
            - bafkreihwnas7c7ji53iolrjkjuqevqdg2j6je2supras5vghzjq5ccnyai
          type: array
          items:
            type: string
        documents:
          description: >-
            Retire VC documents with credentialSubject (user, contractId,
            tokens)
          type: array
          items:
            $ref: '#/components/schemas/RetireVcDocumentBodyDTO'
        topics:
          example: []
          type: array
          items:
            type: string
        tokens:
          example: []
          type: array
          items:
            type: string
        sequenceNumber:
          type: number
          example: 3
        loaded:
          type: boolean
          example: true
      required:
        - id
        - lastUpdate
        - topicId
        - consensusTimestamp
        - owner
        - uuid
        - status
        - type
        - action
        - lang
        - responseType
        - options
        - analytics
        - analyticsUpdate
        - coordUpdate
        - files
        - documents
        - topics
        - tokens
        - sequenceNumber
        - loaded
    PolicyRoleDTO:
      type: object
      properties:
        name:
          type: string
          example: CDM AMS-III.AR Policy
        version:
          type: string
          example: 1.0.0
        role:
          type: string
          example: Project Participant
      required:
        - name
        - version
        - role
    RegisteredUserDTO:
      type: object
      properties:
        did:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        username:
          type: string
          example: StandardRegistry
        role:
          type: string
          example: STANDARD_REGISTRY
        policyRoles:
          default: []
          type: array
          items:
            $ref: '#/components/schemas/PolicyRoleDTO'
        parent:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
          description: Parent DID for child users
      required:
        - did
        - username
        - role
        - policyRoles
    DemoKeyResponseDTO:
      type: object
      properties:
        id:
          type: string
          example: 0.0.6046379
          description: Demo account ID
        key:
          type: string
          example: >-
            302e020100300506032b657004220420f6168da5cd88b85151e9735252419f0768b87b1a800f7e3b7908d15fa1f358a2
          description: Demo account private key
      required:
        - id
        - key
    DemoTaskResponseDTO:
      type: object
      properties:
        taskId:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
          description: Task ID
        expectation:
          type: number
          example: 3
          description: Expected count of task phases
        action:
          type: string
          example: Create random key
          description: Task action
        userId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
          description: User ID
      required:
        - taskId
        - expectation
        - action
        - userId
    ExternalDocumentDTO:
      type: object
      properties:
        owner:
          type: string
        policyTag:
          type: string
        document:
          nullable: false
          allOf:
            - $ref: '#/components/schemas/VcDTO'
      required:
        - owner
        - policyTag
        - document
    BlockDTO:
      type: object
      properties:
        id:
          type: string
        blockType:
          type: string
        blocks:
          type: array
          items:
            $ref: '#/components/schemas/BlockDTO'
      required:
        - id
        - blockType
        - blocks
    ResponseDTOWithSyncEvents:
      type: object
      properties:
        response:
          type: object
          nullable: true
          additionalProperties: true
        result:
          type: object
          nullable: true
          additionalProperties: true
        steps:
          additionalProperties: true
          type: array
          items:
            type: object
      required:
        - response
        - result
        - steps
    NotFoundErrorDTO:
      type: object
      properties:
        statusCode:
          type: number
          example: 404
        message:
          type: string
          example: Error message
      required:
        - statusCode
        - message
    LogItemDTO:
      type: object
      properties:
        message:
          type: string
        type:
          type: string
          enum:
            - INFO
            - WARN
            - ERROR
        datetime:
          type: string
          format: date-time
        attributes:
          type: array
          items:
            type: string
        userId:
          type: string
          nullable: true
        id:
          type: string
      required:
        - message
        - type
        - datetime
        - attributes
        - userId
        - id
    LogFilterDTO:
      type: object
      properties:
        type:
          type: string
          enum:
            - INFO
            - WARN
            - ERROR
          nullable: true
          description: Log severity filter. When empty, all logs are returned.
        startDate:
          type: string
          format: date-time
          nullable: true
        endDate:
          type: string
          format: date-time
          nullable: true
        attributes:
          nullable: true
          type: array
          items:
            type: string
        message:
          type: string
          nullable: true
        pageSize:
          type: number
          nullable: true
        pageIndex:
          type: number
          nullable: true
        sortDirection:
          type: string
          enum:
            - asc
            - desc
          nullable: true
          description: Sort order
      required:
        - type
        - startDate
        - endDate
        - attributes
        - message
        - pageSize
        - pageIndex
        - sortDirection
    LogResultDTO:
      type: object
      properties:
        totalCount:
          type: number
        logs:
          type: array
          items:
            $ref: '#/components/schemas/LogItemDTO'
      required:
        - totalCount
        - logs
    SeqUrlResponseDTO:
      type: object
      properties:
        seq_url:
          type: string
          nullable: true
          description: SEQ UI URL
          example: http://localhost:5341
      required:
        - seq_url
    ModuleDTO:
      type: object
      properties:
        id:
          type: string
          nullable: false
        uuid:
          type: string
          nullable: false
        type:
          type: string
          nullable: true
        name:
          type: string
          nullable: false
        description:
          type: string
          nullable: false
        status:
          type: string
          nullable: false
        creator:
          type: string
          nullable: false
        owner:
          type: string
          nullable: false
        topicId:
          type: string
          nullable: true
        messageId:
          type: string
          nullable: true
        codeVersion:
          type: string
          nullable: false
        createDate:
          type: string
          nullable: false
        updateDate:
          type: string
          nullable: true
        configFileId:
          type: string
          nullable: true
        contentFileId:
          type: string
          nullable: true
        menu:
          type: string
          nullable: true
        config:
          type: object
          additionalProperties: true
          nullable: true
      required:
        - id
        - uuid
        - name
        - description
        - status
        - creator
        - owner
        - codeVersion
        - createDate
        - config
    SchemaDTO:
      type: object
      properties:
        createDate:
          type: string
          nullable: true
          example: '2026-03-25T12:40:32.586Z'
        updateDate:
          type: string
          nullable: true
          example: '2026-03-25T12:40:59.908Z'
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        uuid:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        name:
          type: string
          example: Schema name
        description:
          type: string
          example: Description
        entity:
          type: string
          enum:
            - NONE
            - VC
            - EVC
            - STANDARD_REGISTRY
            - USER
            - POLICY
            - MINT_TOKEN
            - INTEGRATION_DATA_V2
            - RETIRE
            - WIPE_TOKEN
            - MINT_NFTOKEN
            - ISSUER
            - USER_ROLE
            - CHUNK
            - ACTIVITY_IMPACT
            - TOKEN_DATA_SOURCE
            - ROLE
            - USER_PERMISSIONS
            - POLICY_DISCUSSION_V2
            - POLICY_COMMENT
            - POLICY_EXPORT_PROOF
            - EVIDENCE_ATTACHMENTS
          example: POLICY
        iri:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        status:
          type: string
          enum:
            - DRAFT
            - PUBLISHED
            - UNPUBLISHED
            - ERROR
            - DEMO
            - VIEW
          example: DRAFT
        topicId:
          type: string
          example: 0.0.6046379
        version:
          type: string
          example: 1.0.0
        creator:
          type: string
          nullable: true
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        messageId:
          type: string
          nullable: true
          example: '1773670900.819264517'
        category:
          type: string
          enum:
            - POLICY
            - MODULE
            - SYSTEM
            - TAG
            - TOOL
            - STATISTIC
            - LABEL
          example: POLICY
        documentURL:
          type: string
          example: ipfs://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        contextURL:
          type: string
          example: ipfs://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        document:
          oneOf:
            - type: object
              additionalProperties: true
            - type: string
              example: innerSchemaConfigurationInText
        context:
          oneOf:
            - type: object
              additionalProperties: true
            - type: string
              example: jsonLdContextInText
        readonly:
          type: boolean
          nullable: true
          example: false
        system:
          type: boolean
          nullable: true
          example: false
        active:
          type: boolean
          nullable: true
          example: false
        codeVersion:
          type: string
          nullable: true
          example: 1.2.0
        topicCount:
          type: number
          nullable: true
          example: 1
      required:
        - id
        - uuid
        - name
        - description
        - entity
        - iri
        - status
        - topicId
        - version
        - owner
        - category
        - documentURL
        - contextURL
        - document
        - context
    ExportMessageDTO:
      type: object
      properties:
        uuid:
          type: string
        name:
          type: string
        description:
          type: string
        messageId:
          type: string
        owner:
          type: string
      required:
        - uuid
        - name
        - description
        - messageId
        - owner
    ImportMessageDTO:
      type: object
      properties:
        messageId:
          type: string
          description: Hedera topic message id
        metadata:
          type: object
          additionalProperties: true
          nullable: true
      required:
        - messageId
        - metadata
    ModulePreviewDTO:
      type: object
      properties:
        module:
          nullable: false
          allOf:
            - $ref: '#/components/schemas/ModuleDTO'
        messageId:
          type: string
        schemas:
          additionalProperties: true
          nullable: true
          type: array
          items:
            type: object
        tags:
          additionalProperties: true
          nullable: true
          type: array
          items:
            type: object
        moduleTopicId:
          type: string
          nullable: true
      required:
        - module
        - messageId
        - schemas
        - tags
        - moduleTopicId
    ModuleImportFileResponseDTO:
      type: object
      properties:
        module:
          nullable: false
          allOf:
            - $ref: '#/components/schemas/ModuleDTO'
        schemas:
          additionalProperties: true
          nullable: true
          type: array
          items:
            type: object
        tags:
          additionalProperties: true
          nullable: true
          type: array
          items:
            type: object
      required:
        - module
        - schemas
        - tags
    BlockErrorsDTO:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        errors:
          type: array
          items:
            type: string
        warnings:
          type: array
          items:
            type: string
        infos:
          type: array
          items:
            type: string
        isValid:
          type: boolean
      required:
        - id
        - name
        - errors
        - isValid
    ValidationErrorsDTO:
      type: object
      properties:
        blocks:
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/BlockErrorsDTO'
        errors:
          nullable: true
          type: array
          items:
            type: string
        warnings:
          type: array
          items:
            type: string
        infos:
          type: array
          items:
            type: string
        id:
          type: string
          description: Config block ID (for tool validation)
        tools:
          type: array
          items:
            type: object
          description: Tool-level errors (for tool validation)
        isValid:
          type: boolean
          description: Overall validation result (for tool validation)
      required:
        - blocks
        - errors
        - tools
        - isValid
    ModulePublishResponseDTO:
      type: object
      properties:
        module:
          nullable: false
          allOf:
            - $ref: '#/components/schemas/ModuleDTO'
        isValid:
          type: boolean
          description: Whether validation passed and the module was published
        errors:
          nullable: false
          description: Validation details used during publish
          allOf:
            - $ref: '#/components/schemas/ValidationErrorsDTO'
      required:
        - module
        - isValid
        - errors
    ModuleValidationDTO:
      type: object
      properties:
        module:
          nullable: false
          allOf:
            - $ref: '#/components/schemas/ModuleDTO'
        results:
          nullable: false
          allOf:
            - $ref: '#/components/schemas/ValidationErrorsDTO'
      required:
        - module
        - results
    CreateToolConfigDTO:
      type: object
      properties:
        id:
          type: string
          example: 47c1f826-88ef-46a0-b3b7-e9038108f97c
          description: Config block ID (UUID)
        blockType:
          type: string
          enum:
            - tool
          example: tool
          description: Must be "tool"
      required:
        - blockType
    CreateToolDTO:
      type: object
      properties:
        name:
          type: string
          example: Tool name
          description: Tool display name
        description:
          type: string
          example: Description
          description: Tool description
        config:
          description: 'Tool config. Must have blockType: "tool". May include id (UUID).'
          allOf:
            - $ref: '#/components/schemas/CreateToolConfigDTO'
      required:
        - config
    ToolConfigResponseDTO:
      type: object
      properties:
        id:
          type: string
        blockType:
          type: string
          enum:
            - tool
        permissions:
          type: array
          items:
            type: object
        children:
          type: array
          items:
            type: object
        events:
          type: array
          items:
            type: object
        artifacts:
          type: array
          items:
            type: object
        variables:
          type: array
          items:
            type: object
        inputEvents:
          type: array
          items:
            type: object
        outputEvents:
          type: array
          items:
            type: object
        innerEvents:
          type: array
          items:
            type: object
        tag:
          type: string
      required:
        - id
        - blockType
    ToolDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        uuid:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        name:
          type: string
          example: Tool name
        description:
          type: string
          example: Description
        status:
          type: string
          enum:
            - DRAFT
            - PUBLISHED
            - PUBLISH_ERROR
          example: DRAFT
        creator:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        topicId:
          type: string
          example: 0.0.6046379
        messageId:
          type: string
          nullable: true
          example: '1773670900.819264517'
          description: Message ID (for PUBLISHED tools only; omitted or null for DRAFT)
        codeVersion:
          type: string
          example: 1.0.0
        createDate:
          type: string
          example: '2026-03-03T17:25:53.312Z'
        updateDate:
          type: string
          example: '2026-03-03T17:25:53.312Z'
          description: Last update date
        configFileId:
          type: string
          description: Config file ID (internal)
        tagsTopicId:
          type: string
          description: Tags topic ID (for PUBLISHED tools only)
        contentFileId:
          type: string
          description: >-
            File id of the original tool zip (imported from IPFS or publish
            flow). Present for PUBLISHED tools.
        hash:
          type: string
          description: Hash (for PUBLISHED tools only)
        tools:
          type: array
          items:
            type: object
          description: 'Referenced sub-tools: { name, version?, topicId, messageId }'
        config:
          $ref: '#/components/schemas/ToolConfigResponseDTO'
        version:
          type: string
          nullable: true
          example: 1.0.0
          description: >-
            Published tool version (e.g. 1.0.0); null or omitted when not
            published
      required:
        - id
        - uuid
        - name
        - description
        - status
        - creator
        - owner
        - topicId
        - codeVersion
        - createDate
        - updateDate
        - configFileId
        - tools
        - config
    ToolListV2ItemDTO:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
          nullable: true
        status:
          type: string
          enum:
            - DRAFT
            - PUBLISHED
            - PUBLISH_ERROR
        creator:
          type: string
        owner:
          type: string
        topicId:
          type: string
        messageId:
          type: string
          nullable: true
          description: Message ID (for PUBLISHED tools only)
      required:
        - id
        - name
        - description
        - status
        - creator
        - owner
        - topicId
        - messageId
    ToolVersionDTO:
      type: object
      properties:
        toolVersion:
          type: string
          example: 1.0.0
      required:
        - toolVersion
    ToolPublishResponseDTO:
      type: object
      properties:
        tool:
          $ref: '#/components/schemas/ToolDTO'
        isValid:
          type: boolean
          description: Whether validation passed (true = tool published successfully)
        errors:
          description: Validation errors and block-level results
          allOf:
            - $ref: '#/components/schemas/ValidationErrorsDTO'
      required:
        - tool
        - isValid
        - errors
    ToolDryRunResponseDTO:
      type: object
      properties:
        isValid:
          type: boolean
          description: >-
            Whether the tool config passed validation (true = dry run started;
            false = dry run not started)
        errors:
          description: Validation details (blocks, tools, common errors)
          allOf:
            - $ref: '#/components/schemas/ValidationErrorsDTO'
      required:
        - isValid
        - errors
    ToolValidationDTO:
      type: object
      properties:
        tool:
          $ref: '#/components/schemas/ToolDTO'
        results:
          $ref: '#/components/schemas/ValidationErrorsDTO'
      required:
        - tool
        - results
    ToolExportMessageDTO:
      type: object
      properties:
        id:
          type: string
          description: Tool ID (internal)
        uuid:
          type: string
        name:
          type: string
        description:
          type: string
        messageId:
          type: string
          nullable: true
          description: >-
            Hedera topic message id when published; null for DRAFT / not yet
            published
        owner:
          type: string
      required:
        - id
        - uuid
        - name
        - description
        - messageId
        - owner
    ToolPreviewDTO:
      type: object
      properties:
        tool:
          description: >-
            Main tool object from `tool.json` in the IPFS archive. Shape is
            close to ToolDTO but may omit DB-only fields (id, uuid, status,
            topicId, messageId, etc.).
          allOf:
            - $ref: '#/components/schemas/ToolDTO'
        schemas:
          additionalProperties: true
          description: >-
            Schema entities parsed from `schemas/*` in the archive (full Schema
            objects with document, context, …)
          type: array
          items:
            type: object
        tags:
          additionalProperties: true
          description: Tag entities parsed from `tags/*` in the archive
          type: array
          items:
            type: object
        tools:
          type: array
          items:
            type: object
            additionalProperties: true
          description: >-
            Additional tool JSON files from `tools/*` in the archive (not the
            same as top-level `tool`)
        messageId:
          type: string
          description: >-
            Present only for `POST /tools/import/message/preview` — same as
            request `messageId`. Omitted for file-based preview.
        toolTopicId:
          type: string
          description: >-
            Present only for message-based preview — topic id from the Hedera
            tool message. Omitted for file-based preview.
      required:
        - tool
        - schemas
        - tags
        - tools
    ToolImportResponseDTO:
      type: object
      properties:
        tool:
          description: Imported tool entity.
          allOf:
            - $ref: '#/components/schemas/ToolDTO'
        errors:
          type: array
          items:
            type: object
            additionalProperties: true
          description: >-
            Import errors. Empty array means the import completed without
            reported errors.
      required:
        - tool
        - errors
    ToolMenuConfigItemDTO:
      type: object
      properties:
        name:
          type: string
          example: input_tool_03
        description:
          type: string
          example: ''
      required:
        - name
        - description
    ToolMenuVariableDTO:
      type: object
      properties:
        name:
          type: string
          example: Role
        description:
          type: string
          example: ''
        type:
          type: string
          example: Role
      required:
        - name
        - description
        - type
    ToolMenuConfigDTO:
      type: object
      properties:
        inputEvents:
          description: Tool input events exposed in the menu.
          type: array
          items:
            $ref: '#/components/schemas/ToolMenuConfigItemDTO'
        outputEvents:
          description: Tool output events exposed in the menu.
          type: array
          items:
            $ref: '#/components/schemas/ToolMenuConfigItemDTO'
        variables:
          description: Tool variables exposed in the menu.
          type: array
          items:
            $ref: '#/components/schemas/ToolMenuVariableDTO'
    ToolMenuSchemaDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        name:
          type: string
          example: Tool 03
        description:
          type: string
          example: ''
        topicId:
          type: string
          example: 0.0.6046379
        iri:
          type: string
          example: '#a9fe3be9-38d5-452e-9948-5c319d5c14e1&1.0.0'
        category:
          type: string
          example: POLICY
          description: Schema category when present in the source response.
      required:
        - id
        - name
        - description
        - topicId
        - iri
    ToolMenuSubToolDTO:
      type: object
      properties:
        name:
          type: string
          example: Tool 03
          description: Referenced sub-tool name.
        version:
          type: string
          nullable: true
          example: 1.0.0
          description: Referenced sub-tool version when available.
        topicId:
          type: string
          example: 0.0.6046379
          description: Referenced sub-tool topic id.
        messageId:
          type: string
          example: '1773670900.819264517'
          description: Referenced sub-tool message id.
    ToolMenuItemDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        hash:
          type: string
          example: GcDE9NsPJc7oCZvSVJySCZHxTxvjc3ZAMgtKozP1r1Eh
        name:
          type: string
          example: Tool 03
        description:
          type: string
          example: ''
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        topicId:
          type: string
          example: 0.0.6046379
        messageId:
          type: string
          example: '1773670900.819264517'
        tools:
          description: Referenced sub-tools from the tool config.
          type: array
          items:
            $ref: '#/components/schemas/ToolMenuSubToolDTO'
        config:
          description: Reduced tool config returned by the menu endpoint.
          allOf:
            - $ref: '#/components/schemas/ToolMenuConfigDTO'
        schemas:
          description: Schemas linked to the tool topic.
          type: array
          items:
            $ref: '#/components/schemas/ToolMenuSchemaDTO'
      required:
        - id
        - hash
        - name
        - description
        - owner
        - topicId
        - messageId
        - tools
        - config
        - schemas
    ProfileDidDocumentRecordDTO:
      type: object
      properties:
        createDate:
          type: string
          example: '2026-03-03T17:25:53.312Z'
        updateDate:
          type: string
          example: '2026-03-03T17:25:53.312Z'
        did:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        document:
          $ref: '#/components/schemas/DidDocumentDTO'
        status:
          type: string
          example: CREATE
        messageId:
          type: string
          example: '1773670900.819264517'
        topicId:
          type: string
          example: 0.0.6046379
        verificationMethods:
          type: object
          additionalProperties:
            type: string
          example:
            Ed25519VerificationKey2018: >-
              did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599#did-root-key
            Bls12381G2Key2020: >-
              did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599#did-root-key-bbs
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
      required:
        - createDate
        - updateDate
        - did
        - document
        - status
        - messageId
        - topicId
        - verificationMethods
        - id
    ProfileVcDocumentDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        policyId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        hash:
          type: string
          example: hash
        signature:
          type: number
          example: 0
        status:
          type: string
          enum:
            - NEW
            - ISSUE
            - REVOKE
            - SUSPEND
            - RESUME
            - FAILED
          example: NEW
        tag:
          type: string
          example: Block tag
        type:
          type: string
          example: Document type
        createDate:
          type: string
          example: '2026-03-03T17:25:53.312Z'
        updateDate:
          type: string
          example: '2026-03-03T17:25:53.312Z'
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        hederaStatus:
          type: string
          example: ISSUE
        option:
          type: object
          additionalProperties: true
          example:
            status: NEW
        topicId:
          type: string
          example: 0.0.6046379
        messageId:
          type: string
          example: '1773670900.819264517'
        document:
          $ref: '#/components/schemas/VcDTO'
        documentFileId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        tableFileIds:
          example: []
          type: array
          items:
            type: string
    ProfileDTO:
      type: object
      properties:
        username:
          type: string
          example: username
        role:
          type: string
          enum:
            - STANDARD_REGISTRY
            - USER
            - AUDITOR
          example: USER
        permissionsGroup:
          example:
            - {}
          type: array
          items:
            type: string
        permissions:
          example:
            - POLICIES_POLICY_READ
          type: array
          items:
            type: string
        did:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        parent:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        hederaAccountId:
          type: string
          example: 0.0.6046379
        confirmed:
          type: boolean
          example: true
        failed:
          type: boolean
          example: true
        topicId:
          type: string
          example: 0.0.6046379
        parentTopicId:
          type: string
          example: 0.0.6046379
        location:
          type: string
          enum:
            - local
            - remote
            - custom
          example: local
          description: Whether the user account is local, remote, or custom.
        didDocument:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/ProfileDidDocumentRecordDTO'
        vcDocument:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/ProfileVcDocumentDTO'
      required:
        - username
        - role
        - permissions
        - didDocument
        - vcDocument
    CredentialsDTO:
      type: object
      properties:
        entity:
          type: string
          description: Schema entity label; often inferred from the user role when omitted.
        topicId:
          type: string
          description: Hedera topic id (e.g. restore / profile flows).
          example: 0.0.7813042
        hederaAccountId:
          type: string
          nullable: false
        hederaAccountKey:
          type: string
          nullable: true
          description: >-
            Hedera private key (local signing). May be omitted for some remote
            flows.
        parent:
          type: string
          nullable: true
        vcDocument:
          nullable: true
          description: >-
            VC credential subject fields (e.g. OrganizationName, Website, Tags)
            for Standard Registry.
          type: object
          allOf:
            - $ref: '#/components/schemas/SubjectDTO'
        didDocument:
          nullable: true
          description: DID document to publish, or null to skip in this request.
          type: object
          allOf:
            - $ref: '#/components/schemas/DidDocumentDTO'
        didKeys:
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/DidKeyDTO'
        useFireblocksSigning:
          type: boolean
          example: false
        fireblocksConfig:
          $ref: '#/components/schemas/FireblocksConfigDTO'
      required:
        - hederaAccountId
    DidVerificationMethodEntryDTO:
      type: object
      properties:
        name:
          type: string
          description: Fragment/name reference (e.g. `#did-root-key`).
        id:
          type: string
          description: Full verification method id URI.
      required:
        - name
        - id
    DidDocumentStatusDTO:
      type: object
      properties:
        valid:
          type: boolean
          nullable: false
        error:
          type: string
          nullable: true
          description: Error message when `valid` is false; empty string when valid.
        keys:
          type: object
          nullable: false
          description: >-
            Verification methods grouped by key type (e.g.
            Ed25519VerificationKey2018, Bls12381G2Key2020). Matches runtime
            `keys` in the guardian response.
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/DidVerificationMethodEntryDTO'
      required:
        - valid
        - error
        - keys
    DidDocumentWithKeyDTO:
      type: object
      properties:
        document:
          nullable: false
          allOf:
            - $ref: '#/components/schemas/DidDocumentDTO'
        keys:
          nullable: false
          type: array
          items:
            $ref: '#/components/schemas/DidKeyDTO'
      required:
        - document
        - keys
    DidKeyStatusDTO:
      type: object
      properties:
        id:
          type: string
          nullable: false
        key:
          type: string
          nullable: false
        valid:
          type: boolean
          nullable: false
      required:
        - id
        - key
        - valid
    PolicyKeyDTO:
      type: object
      properties:
        id:
          type: string
          description: Key ID
          example: 69aeb71ef8c5b278e3bab4e5
        createDate:
          type: string
          example: '2026-03-03T17:25:53.312Z'
        updateDate:
          type: string
          example: '2026-03-03T17:25:53.312Z'
        messageId:
          type: string
          description: Policy Message ID
          example: '1773670900.819264517'
        owner:
          type: string
          description: Key owner
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        policyName:
          type: string
          example: Policy name
        key:
          type: string
          description: New key
          example: Key
      required:
        - id
        - createDate
        - updateDate
        - messageId
        - owner
        - policyName
        - key
    PolicyKeyConfigDTO:
      type: object
      properties:
        messageId:
          type: string
          description: Policy Message ID
          example: '1773670900.819264517'
        key:
          type: string
          description: >-
            DER-encoded private key when **importing** on the remote user
            account. Omit when **generating** for user flow (only `messageId`).
          example: Key
      required:
        - messageId
        - key
    BasePolicyDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        name:
          type: string
          example: Policy name
      required:
        - id
        - name
    MigrationConfigPoliciesDTO:
      type: object
      properties:
        src:
          type: string
        dst:
          type: string
      required:
        - src
        - dst
    MigrationConfigDTO:
      type: object
      properties:
        policies:
          $ref: '#/components/schemas/MigrationConfigPoliciesDTO'
        vcs:
          type: array
          items:
            type: string
        vps:
          type: array
          items:
            type: string
        schemas:
          type: object
          additionalProperties:
            type: string
        groups:
          type: object
          additionalProperties:
            type: string
        roles:
          type: object
          additionalProperties:
            type: string
        blocks:
          type: object
          additionalProperties:
            type: string
        tokens:
          type: object
          additionalProperties:
            type: string
        tokensMap:
          type: object
          additionalProperties:
            type: string
        migrateState:
          type: boolean
        migrateRetirePools:
          type: boolean
        editedVCs:
          type: object
          additionalProperties:
            type: string
        retireContractId:
          type: string
        mode:
          type: string
          enum:
            - start_new
            - resume
            - retry_failed
          default: start_new
        runId:
          type: string
      required:
        - policies
        - vcs
        - vps
        - schemas
        - groups
        - roles
        - blocks
        - tokens
        - tokensMap
        - migrateState
        - migrateRetirePools
        - editedVCs
        - retireContractId
    MigrationFailedItemDTO:
      type: object
      properties:
        srcPolicyId:
          type: string
        dstPolicyId:
          type: string
        entityType:
          type: string
        srcEntityId:
          type: string
        runId:
          type: string
        attemptCount:
          type: number
        errorCode:
          type: string
          nullable: true
        errorMessage:
          type: string
          nullable: true
        firstFailedAt:
          type: string
          format: date-time
        lastFailedAt:
          type: string
          format: date-time
      required:
        - srcPolicyId
        - dstPolicyId
        - entityType
        - srcEntityId
        - runId
        - attemptCount
        - errorCode
        - errorMessage
        - firstFailedAt
        - lastFailedAt
    MigrationRunStatusDTO:
      type: object
      properties:
        runId:
          type: string
        srcPolicyId:
          type: string
        dstPolicyId:
          type: string
        status:
          type: string
          enum:
            - running
            - completed
            - failed
            - stopped
        isDryRun:
          type: boolean
        startedAt:
          type: string
          format: date-time
          nullable: true
        finishedAt:
          type: string
          format: date-time
          nullable: true
        summary:
          type: object
          additionalProperties: true
        failedItems:
          type: array
          items:
            $ref: '#/components/schemas/MigrationFailedItemDTO'
      required:
        - runId
        - srcPolicyId
        - dstPolicyId
        - status
        - startedAt
        - finishedAt
        - summary
    MigrationStatusResponseDTO:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/MigrationRunStatusDTO'
      required:
        - items
    MigrationRunsResponseDTO:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/MigrationRunStatusDTO'
        count:
          type: number
        pageIndex:
          type: number
        pageSize:
          type: number
      required:
        - items
        - count
        - pageIndex
        - pageSize
    PoliciesValidationDTO:
      type: object
      properties:
        policies:
          type: array
          items:
            $ref: '#/components/schemas/PolicyDTO'
        isValid:
          type: string
        errors:
          $ref: '#/components/schemas/ValidationErrorsDTO'
      required:
        - policies
        - isValid
        - errors
    PolicyVersionDTO:
      type: object
      properties:
        policyVersion:
          type: string
          example: 1.0.0
        policyAvailability:
          type: string
          enum:
            - private
            - public
          example: private
        recordingEnabled:
          type: boolean
          example: false
          description: Record policy actions
      required:
        - policyVersion
    Object:
      type: object
      properties: {}
    PolicyValidationDTO:
      type: object
      properties:
        policy:
          $ref: '#/components/schemas/PolicyDTO'
        results:
          $ref: '#/components/schemas/ValidationErrorsDTO'
      required:
        - policy
        - results
    ServiceUnavailableErrorDTO:
      type: object
      properties:
        statusCode:
          type: number
          example: 503
        message:
          type: string
          example: Error message
      required:
        - statusCode
        - message
    PolicyPreviewDTO:
      type: object
      properties:
        module:
          $ref: '#/components/schemas/PolicyDTO'
        messageId:
          type: string
          example: '1773670900.819264517'
        schemas:
          additionalProperties: true
          type: array
          items:
            type: object
        tags:
          additionalProperties: true
          type: array
          items:
            type: object
        moduleTopicId:
          type: string
          example: 0.0.6046379
      required:
        - module
        - messageId
        - schemas
        - tags
        - moduleTopicId
    DebugBlockDataDTO:
      type: object
      properties:
        input:
          type: string
          description: Input event
          example: RunEvent
        output:
          type: string
          description: Output event
          example: RunEvent
        type:
          type: string
          description: Document type
          enum:
            - schema
            - json
            - file
            - history
          example: json
        document:
          description: Document
          oneOf:
            - type: string
            - type: object
              additionalProperties: true
      required:
        - input
        - output
        - type
        - document
    DebugBlockConfigDTO:
      type: object
      properties:
        block:
          type: object
          description: Block config
          additionalProperties: true
        data:
          description: Input data
          allOf:
            - $ref: '#/components/schemas/DebugBlockDataDTO'
      required:
        - block
        - data
    DebugBlockResultDTO:
      type: object
      properties:
        logs:
          description: Logs
          type: array
          items:
            type: string
        errors:
          description: Errors
          type: array
          items:
            type: string
        input:
          description: Input documents
          additionalProperties: true
          type: array
          items:
            type: object
        output:
          description: Output documents
          additionalProperties: true
          type: array
          items:
            type: object
      required:
        - logs
        - errors
        - input
        - output
    DeleteSavepointsDTO:
      type: object
      properties:
        savepointIds:
          example:
            - 69aeb71ef8c5b278e3bab4e5
          type: array
          items:
            type: string
        skipCurrentSavepointGuard:
          type: boolean
          example: false
          description: >-
            If `false`, and the policy has more than one savepoint, the current
            savepoint cannot be deleted. If `true`, that guard is bypassed (used
            by the UI for deleting all savepoints).
      required:
        - savepointIds
    DeleteSavepointsResultDTO:
      type: object
      properties:
        hardDeletedIds:
          example:
            - 69aeb71ef8c5b278e3bab4e5
          type: array
          items:
            type: string
      required:
        - hardDeletedIds
    MockBlockConfigDTO:
      type: object
      properties:
        uuid:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        enabled:
          type: boolean
          example: true
    MockConfigDTO:
      type: object
      properties:
        enabled:
          type: boolean
          example: true
        blocks:
          type: array
          items:
            $ref: '#/components/schemas/MockBlockConfigDTO'
    MockIpfsDataDTO:
      type: object
      properties:
        cid:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        content:
          type: string
    MockTopicTransactionDTO:
      type: object
      properties:
        id:
          type: string
          example: 0.0.6046379
        memo:
          type: string
          example: memo
        payer_account_id:
          type: string
          example: 0.0.6046379
        topic_id:
          type: string
          example: 0.0.6046379
    MockMessageTransactionDTO:
      type: object
      properties:
        consensus_timestamp:
          type: string
          example: '1773670900.819264517'
        id:
          type: string
          example: '1773670900.819264517'
        message:
          type: string
          example: base64
        payer_account_id:
          type: string
          example: 0.0.6046379
        sequence_number:
          type: number
          example: 0.0.6046379
        topicId:
          type: string
          example: 0.0.6046379
        topic_id:
          type: string
          example: 0.0.6046379
    MockTopicDataDTO:
      type: object
      properties:
        topicId:
          type: string
          example: 0.0.6046379
        topic:
          $ref: '#/components/schemas/MockTopicTransactionDTO'
        messages:
          type: array
          items:
            $ref: '#/components/schemas/MockMessageTransactionDTO'
    MockTokenDataDTO:
      type: object
      properties:
        id:
          type: string
          example: 0.0.6046379
        token_id:
          type: string
          example: 0.0.6046379
        treasury_account_id:
          type: string
          example: 0.0.6046379
        name:
          type: string
          example: Name
        symbol:
          type: string
          example: Symbol
        decimals:
          type: number
          example: 1
        type:
          type: string
          example: FUNGIBLE_COMMON
        admin_key:
          type: boolean
          example: true
        freeze_key:
          type: boolean
          example: true
        kyc_key:
          type: boolean
          example: true
        supply_key:
          type: boolean
          example: true
        wipe_key:
          type: boolean
          example: true
    MockRequestConfigDTO:
      type: object
      properties:
        method:
          type: string
          example: GET
        responseType:
          type: string
          example: JSON
        url:
          type: string
          example: http://localhost:4200/
    MockApiDataDTO:
      type: object
      properties:
        request:
          $ref: '#/components/schemas/MockRequestConfigDTO'
        response:
          type: string
          example: JSON
    MockUserDataDTO:
      type: object
      properties:
        username:
          type: string
          example: username
        did:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        hederaAccountId:
          type: string
          example: 0.0.6046379
        hederaAccountKey:
          type: string
        document:
          $ref: '#/components/schemas/DidDocumentDTO'
    MockDataDTO:
      type: object
      properties:
        ipfs:
          type: array
          items:
            $ref: '#/components/schemas/MockIpfsDataDTO'
        topics:
          type: array
          items:
            $ref: '#/components/schemas/MockTopicDataDTO'
        tokens:
          type: array
          items:
            $ref: '#/components/schemas/MockTokenDataDTO'
        api:
          type: array
          items:
            $ref: '#/components/schemas/MockApiDataDTO'
        users:
          type: array
          items:
            $ref: '#/components/schemas/MockUserDataDTO'
    MockApiRequestDTO:
      type: object
      properties:
        type:
          type: string
          example: GET
        url:
          type: string
          example: http://localhost/
        body:
          type: object
        headers:
          type: object
    MockIpfsRequestDTO:
      type: object
      properties:
        cid:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
    RunningDetailsDTO:
      type: object
      properties:
        left:
          type: object
          description: Left side (recorded) document
          additionalProperties: true
        right:
          type: object
          description: Right side (replayed) document
          additionalProperties: true
        total:
          type: number
          description: Total number of fields compared
          example: 10
        documents:
          type: object
          description: Detailed field-by-field comparison
          additionalProperties: true
      required:
        - left
        - right
        - total
        - documents
    PolicyCategoryDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        name:
          type: string
          example: Large-Scale
        type:
          type: string
          example: PROJECT_SCALE
      required:
        - id
        - name
        - type
    PolicyParametersDTO:
      type: object
      properties:
        policyId:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        config:
          type: array
          items:
            $ref: '#/components/schemas/PolicyEditableFieldDTO'
        updated:
          type: boolean
          example: true
      required:
        - policyId
    SchemaParentDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        name:
          type: string
          example: Schema name
        status:
          type: string
          enum:
            - DRAFT
            - PUBLISHED
            - UNPUBLISHED
            - ERROR
            - DEMO
            - VIEW
          example: PUBLISHED
        version:
          type: string
          example: 1.0.0
        sourceVersion:
          type: string
          nullable: true
          example: ''
        category:
          type: string
          enum:
            - POLICY
            - MODULE
            - SYSTEM
            - TAG
            - TOOL
            - STATISTIC
            - LABEL
          example: POLICY
      required:
        - id
        - name
        - status
        - version
        - category
    SchemaListAllItemDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        name:
          type: string
          example: Project Description
        description:
          type: string
          example: Project Description
        status:
          type: string
          enum:
            - DRAFT
            - PUBLISHED
            - UNPUBLISHED
            - ERROR
            - DEMO
            - VIEW
          example: PUBLISHED
        version:
          type: string
          example: 1.0.0
        sourceVersion:
          type: string
          nullable: true
          example: ''
        topicId:
          type: string
          example: 0.0.6046379
        category:
          type: string
          enum:
            - POLICY
            - MODULE
            - SYSTEM
            - TAG
            - TOOL
            - STATISTIC
            - LABEL
          example: POLICY
      required:
        - id
        - name
        - description
        - status
        - version
        - topicId
        - category
    SchemaWithSubSchemasDTO:
      type: object
      properties:
        schema:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/SchemaDTO'
        subSchemas:
          type: array
          items:
            $ref: '#/components/schemas/SchemaDTO'
    SchemaPushCopyRequestDTO:
      type: object
      properties:
        topicId:
          type: string
          description: Target Hedera topic id for the copied schema.
          example: 0.0.6046379
        name:
          type: string
          description: Display name for the copied schema.
          example: Project lamp type and charging method copy
        iri:
          type: string
          description: Source schema IRI (with `#` prefix, typically `uuid&version`).
          example: '#b242b108-c226-46ab-b527-7c2bbf1275ea&1.0.0'
        copyNested:
          type: boolean
          description: When true, nested schemas are copied together with the source.
          example: true
      required:
        - topicId
        - name
        - iri
        - copyNested
    VersionSchemaDTO:
      type: object
      properties:
        version:
          type: string
          example: 1.0.0
      required:
        - version
    MessageSchemaDTO:
      type: object
      properties:
        messageId:
          type: string
          example: '1773670900.819264517'
      required:
        - messageId
    SchemaImportDuplicatesRequestDTO:
      type: object
      properties:
        policyId:
          type: string
          description: >-
            Target policy topic id used to search for existing draft schemas
            that can be replaced.
          example: 0.0.6046379
        schemaNames:
          type: array
          items:
            type: string
          description: >-
            Schema names from the imported package to check for duplicates in
            the target policy topic.
          example:
            - Project Details
            - Date Range
      required:
        - policyId
        - schemaNames
    ExportSchemaDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        name:
          type: string
          example: Schema name
        description:
          type: string
          example: Description
        version:
          type: string
          example: 1.0.0
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        messageId:
          type: string
          example: '1773670900.819264517'
      required:
        - id
        - name
        - description
        - version
        - owner
        - messageId
    SystemSchemaDTO:
      type: object
      properties:
        name:
          type: string
          example: Schema name
        entity:
          type: string
          enum:
            - STANDARD_REGISTRY
            - USER
          example: STANDARD_REGISTRY
      required:
        - name
        - entity
    ChildSchemaDeletionBlockDTO:
      type: object
      properties:
        schema:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/SchemaDTO'
        blockingSchemas:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/SchemaDTO'
      required:
        - schema
        - blockingSchemas
    SchemaDeletionPreviewDTO:
      type: object
      properties:
        deletableChildren:
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/SchemaDTO'
        blockedChildren:
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/ChildSchemaDeletionBlockDTO'
      required:
        - deletableChildren
        - blockedChildren
    SettingsDTO:
      type: object
      properties:
        ipfsStorageApiKey:
          type: string
        operatorId:
          type: string
        operatorKey:
          type: string
      required:
        - ipfsStorageApiKey
        - operatorId
        - operatorKey
    AboutResponseDTO:
      type: object
      properties:
        version:
          type: string
          description: Application version
          example: 2.8.1
      required:
        - version
    TagDTO:
      type: object
      properties:
        uuid:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        name:
          type: string
          example: Tag label
        description:
          type: string
          example: Description
        owner:
          type: string
          example: DID
        date:
          type: string
          example: '2026-03-03T17:25:53.312Z'
        entity:
          type: string
          enum:
            - Schema
            - Policy
            - Token
            - Module
            - Contract
            - PolicyDocument
          example: PolicyDocument
        status:
          type: string
          enum:
            - Draft
            - Published
            - History
          example: Published
        operation:
          type: string
          enum:
            - Create
            - Delete
          example: Create
        topicId:
          type: string
          example: 0.0.6046379
        messageId:
          type: string
          example: '1773670900.819264517'
        policyId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        uri:
          type: string
          example: ipfs://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        target:
          type: string
          example: '1773670900.819264517'
        localTarget:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        document:
          type: object
          additionalProperties: true
        tagSchemaId:
          type: string
          description: Tag schema database ID (for tags created with a tag schema)
          example: 69aeb71ef8c5b278e3bab4e5
        inheritTags:
          type: boolean
          example: false
          description: Inherit tags
      required:
        - uuid
        - name
        - description
        - owner
        - date
        - entity
        - status
        - operation
        - topicId
        - messageId
        - policyId
        - uri
        - target
        - localTarget
        - document
    TagFilterDTO:
      type: object
      properties:
        entity:
          type: string
          enum:
            - Schema
            - Policy
            - Token
            - Module
            - Contract
            - PolicyDocument
            - PolicyBlock
          example: PolicyDocument
        target:
          type: string
          example: '1773670900.819264517'
        targets:
          example: '1773670900.819264517'
          type: array
          items:
            type: string
        linkedItems:
          example:
            - '1773670900.819264517'
          type: array
          items:
            type: string
      required:
        - entity
        - target
        - targets
        - linkedItems
    TagMapDTO:
      type: object
      properties:
        entity:
          type: string
          enum:
            - Schema
            - Policy
            - Token
            - Module
            - Contract
            - PolicyDocument
          example: PolicyDocument
        target:
          type: string
          example: '1773670900.819264517'
        refreshDate:
          type: string
          example: '2026-03-03T17:25:53.312Z'
        tags:
          type: array
          items:
            $ref: '#/components/schemas/TagDTO'
      required:
        - entity
        - target
        - refreshDate
        - tags
    StatusDTO:
      type: object
      properties:
        message:
          type: string
          description: Text
        type:
          type: string
          description: Type
          enum:
            - Processing
            - Completed
            - Info
          example: Info
      required:
        - message
        - type
    TaskStatusDTO:
      type: object
      properties:
        action:
          type: string
          description: Task type
          example: Create policy
        userId:
          type: string
          description: User Id
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        expectation:
          type: number
          description: Expected count of task phases
          example: 0
        taskId:
          type: string
          description: Task Id
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        date:
          type: string
          description: Date
          example: '2026-03-03T17:25:53.312Z'
        statuses:
          type: array
          items:
            $ref: '#/components/schemas/StatusDTO'
        result:
          type: object
          additionalProperties: true
        error:
          type: object
          additionalProperties: true
      required:
        - action
        - userId
        - expectation
        - taskId
        - date
        - statuses
        - result
        - error
    TokenInfoDTO:
      type: object
      properties:
        id:
          type: string
          description: Internal database identifier
          example: 69aeb71ef8c5b278e3bab4e5
        tokenId:
          type: string
          description: Hedera token ID
          example: 0.0.6046500
        tokenName:
          type: string
          description: Human-readable name of the token
          example: Carbon Credit Token
        tokenSymbol:
          type: string
          description: Short ticker symbol for the token
          example: CCT
        tokenType:
          type: string
          description: Token type on Hedera
          enum:
            - fungible
            - non-fungible
          example: fungible
        decimals:
          type: string
          description: Number of decimal places
          example: '2'
        associated:
          type: boolean
          description: Whether the current user is associated with this token
          example: true
        frozen:
          type: boolean
          description: Whether the current user's account is frozen for this token
          example: false
        kyc:
          type: boolean
          description: Whether the current user has passed KYC for this token
          example: true
        balance:
          type: string
          description: Current token balance for the user
          example: '1000.50'
        enableAdmin:
          type: boolean
          description: Whether the token has an Admin key
          example: true
        enableFreeze:
          type: boolean
          description: Whether the token has a Freeze key
          example: false
        enableKYC:
          type: boolean
          description: Whether the token has a KYC key
          example: true
        enableWipe:
          type: boolean
          description: Whether the token has a Wipe key
          example: true
      required:
        - id
        - tokenId
        - tokenName
        - tokenSymbol
        - tokenType
        - decimals
        - associated
        - frozen
        - kyc
        - balance
        - enableAdmin
        - enableFreeze
        - enableKYC
        - enableWipe
    TokenDTO:
      type: object
      properties:
        tokenId:
          type: string
          description: Hedera token ID (assigned after token creation on Hedera)
          example: 0.0.6046500
        tokenName:
          type: string
          description: Human-readable name of the token
          example: Carbon Credit Token
        tokenSymbol:
          type: string
          description: Short ticker symbol for the token
          example: CCT
        tokenType:
          type: string
          description: Token type on Hedera
          enum:
            - fungible
            - non-fungible
          example: fungible
        initialSupply:
          type: string
          description: Initial supply of the token (set to 0 for mintable tokens)
          example: '0'
        decimals:
          type: string
          description: >-
            Number of decimal places (0 for NFTs, typically 2 for fungible
            tokens)
          example: '2'
        changeSupply:
          type: boolean
          description: Enable Supply key — allows minting and burning tokens
          example: true
        enableAdmin:
          type: boolean
          description: Enable Admin key — allows managing token properties
          example: true
        enableFreeze:
          type: boolean
          description: >-
            Enable Freeze key — allows freezing token transfers for specific
            accounts
          example: false
        enableKYC:
          type: boolean
          description: Enable KYC key — allows granting/revoking KYC status for accounts
          example: true
        enableWipe:
          type: boolean
          description: Enable Wipe key — allows wiping token balance from specific accounts
          example: true
      required:
        - tokenId
        - tokenName
        - tokenSymbol
        - tokenType
        - initialSupply
        - decimals
        - changeSupply
        - enableAdmin
        - enableFreeze
        - enableKYC
        - enableWipe
    TransferTokenDTO:
      type: object
      properties:
        targetAccount:
          type: string
          description: Target Hedera account ID
          example: 0.0.12345
        amount:
          type: number
          description: Amount (FT) or serial count to pick (NFT); must be > 0
          example: 10
        serialNumbers:
          description: Specific NFT serial numbers to transfer; positive integers
          example:
            - 1
            - 2
            - 3
          type: array
          items:
            type: number
        memo:
          type: string
          description: Optional transaction memo
      required:
        - targetAccount
    ThemeRoleDTO:
      type: object
      properties:
        description:
          type: string
          example: Description
        text:
          type: string
          description: Text color
          pattern: (^#[0-9a-f]{3}$)|(^#[0-9a-f]{6}$)|(^#[0-9a-f]{8}$)
          example: '#000000'
        background:
          type: string
          description: Background color
          pattern: (^#[0-9a-f]{3}$)|(^#[0-9a-f]{6}$)|(^#[0-9a-f]{8}$)
          example: '#000000'
        border:
          type: string
          description: Border color
          pattern: (^#[0-9a-f]{3}$)|(^#[0-9a-f]{6}$)|(^#[0-9a-f]{8}$)
          example: '#000000'
        shape:
          type: string
          description: Object shape
          enum:
            - '0'
            - '1'
            - '2'
            - '3'
            - '4'
            - '5'
          example: '0'
        borderWidth:
          type: string
          description: Border width
          enum:
            - 0px
            - 1px
            - 2px
            - 3px
            - 4px
            - 5px
            - 6px
            - 7px
          example: 2px
        filterType:
          type: string
          description: Filter by type
          enum:
            - type
            - api
            - role
          example: type
        filterValue:
          oneOf:
            - type: string
            - type: array
              items:
                type: string
      required:
        - description
        - text
        - background
        - border
        - shape
        - borderWidth
        - filterType
        - filterValue
    ThemeDTO:
      type: object
      properties:
        id:
          type: string
          description: Internal database identifier
          example: 69aeb71ef8c5b278e3bab4e5
        createDate:
          type: string
          description: Creation date in ISO 8601 format
          example: '2026-03-03T17:25:53.312Z'
        updateDate:
          type: string
          description: Last update date in ISO 8601 format
          example: '2026-03-03T17:25:53.312Z'
        uuid:
          type: string
          description: Unique universal identifier
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        owner:
          type: string
          description: DID of the theme owner
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        name:
          type: string
          description: Theme name
          example: Theme name
        rules:
          type: array
          items:
            $ref: '#/components/schemas/ThemeRoleDTO'
      required:
        - id
        - createDate
        - updateDate
        - uuid
        - owner
        - name
        - rules
    VpDTO:
      type: object
      properties:
        '@context':
          type: array
          items:
            type: string
        id:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        type:
          type: array
          items:
            type: string
        verifiableCredential:
          additionalProperties: true
          type: array
          items:
            type: object
        proof:
          $ref: '#/components/schemas/ProofDTO'
      required:
        - '@context'
        - id
        - type
        - verifiableCredential
        - proof
    VpDocumentDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        policyId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        hash:
          type: string
          example: hash
        signature:
          type: number
          example: 0
        status:
          type: string
          enum:
            - NEW
            - ISSUE
            - REVOKE
            - SUSPEND
            - RESUME
            - FAILED
          example: NEW
        tag:
          type: string
          example: Block tag
        type:
          type: string
          example: Document type
        createDate:
          type: string
          example: '2026-03-03T17:25:53.312Z'
        updateDate:
          type: string
          example: '2026-03-03T17:25:53.312Z'
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        document:
          $ref: '#/components/schemas/VpDTO'
      required:
        - id
        - policyId
        - hash
        - signature
        - status
        - tag
        - type
        - createDate
        - updateDate
        - owner
        - document
    WizardConfigDTO:
      type: object
      properties:
        roles:
          type: array
          items:
            type: string
        policy:
          type: object
          additionalProperties: false
          required:
            - name
            - description
            - topicDescription
            - policyTag
          properties:
            name:
              type: string
            description:
              type: string
            topicDescription:
              type: string
            policyTag:
              type: string
        schemas:
          additionalProperties: false
          properties:
            name:
              type: string
            iri:
              type: string
            isApproveEnable:
              type: boolean
            isMintSchema:
              type: boolean
            mintOptions:
              type: object
              properties:
                tokenId:
                  type: string
                rule:
                  type: string
            dependencySchemaIri:
              type: string
            relationshipsSchemaIri:
              type: string
            initialRolesFor:
              type: array
              items:
                type: string
            rolesConfig:
              type: array
              items:
                type: object
                properties:
                  role:
                    type: string
                  isApprover:
                    type: boolean
                  isCreator:
                    type: boolean
                  gridColumns:
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                        title:
                          type: string
          type: array
          items:
            type: object
        trustChain:
          additionalProperties: false
          properties:
            role:
              type: string
            mintSchemaIri:
              type: string
            viewOnlyOwnDocuments:
              type: boolean
          type: array
          items:
            type: object
      required:
        - roles
        - schemas
        - trustChain
    WizardResultDTO:
      type: object
      properties:
        policyId:
          type: string
        wizardConfig:
          $ref: '#/components/schemas/WizardConfigDTO'
      required:
        - policyId
        - wizardConfig
    WizardConfigAsyncDTO:
      type: object
      properties:
        saveState:
          type: boolean
        wizardConfig:
          $ref: '#/components/schemas/WizardConfigDTO'
      required:
        - saveState
        - wizardConfig
    WizardPreviewDTO:
      type: object
      properties:
        policyConfig:
          $ref: '#/components/schemas/PolicyDTO'
        wizardConfig:
          $ref: '#/components/schemas/WizardConfigDTO'
      required:
        - policyConfig
        - wizardConfig
    BrandingDTO:
      type: object
      properties:
        headerColor:
          type: string
        primaryColor:
          type: string
        companyName:
          type: string
        companyLogoUrl:
          type: string
        loginBannerUrl:
          type: string
        faviconUrl:
          type: string
        headerColor1:
          type: string
        termsAndConditions:
          type: string
      required:
        - headerColor
        - primaryColor
        - companyName
        - companyLogoUrl
        - loginBannerUrl
        - faviconUrl
        - headerColor1
        - termsAndConditions
    SuggestionsInputDTO:
      type: object
      properties:
        blockType:
          type: string
        children:
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/SuggestionsInputDTO'
      required:
        - blockType
        - children
    SuggestionsOutputDTO:
      type: object
      properties:
        next:
          type: string
        nested:
          type: string
      required:
        - next
        - nested
    SuggestionsConfigItemDTO:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum:
            - Policy
            - Module
        index:
          type: number
      required:
        - id
        - type
        - index
    SuggestionsConfigDTO:
      type: object
      properties:
        items:
          $ref: '#/components/schemas/SuggestionsConfigItemDTO'
      required:
        - items
    NotificationDTO:
      type: object
      properties:
        id:
          type: string
          description: Internal database identifier
          example: 69aeb71ef8c5b278e3bab4e5
        createDate:
          type: string
          description: Creation date in ISO 8601 format
          example: '2026-03-03T17:25:53.312Z'
        updateDate:
          type: string
          description: Last update date in ISO 8601 format
          example: '2026-03-03T17:25:53.312Z'
        userId:
          type: string
          description: User ID who owns this notification
          example: 69aeb71ef8c5b278e3bab4e5
        title:
          type: string
          description: Notification title (e.g. "Policy published", "Schema created")
          example: Policy published
        message:
          type: string
          description: Detailed notification message
          example: Policy 69b83f18cd6b7c4adf4139bc published
        type:
          type: string
          description: Notification type
          enum:
            - INFO
            - ERROR
            - WARN
            - SUCCESS
          example: SUCCESS
        action:
          type: string
          description: Action that triggered the notification (used for navigation in UI)
          enum:
            - POLICY_CONFIGURATION
            - POLICY_VIEW
            - POLICIES_PAGE
            - SCHEMAS_PAGE
            - TOKENS_PAGE
            - PROFILE_PAGE
            - POLICY_LABEL_PAGE
          example: POLICY_CONFIGURATION
        result:
          type: object
          description: Result ID (e.g. policy ID, schema ID) for navigation
          example: 69aeb71ef8c5b278e3bab4e5
        read:
          type: boolean
          description: Whether the notification has been read
          example: false
        old:
          type: boolean
          description: Whether the notification is old (already shown to user)
          example: false
      required:
        - id
        - createDate
        - updateDate
        - userId
        - title
        - message
        - type
        - action
        - result
        - read
        - old
    ProgressDTO:
      type: object
      properties:
        id:
          type: string
          description: Internal database identifier
          example: 69aeb71ef8c5b278e3bab4e5
        createDate:
          type: string
          description: Creation date in ISO 8601 format
          example: '2026-03-03T17:25:53.312Z'
        updateDate:
          type: string
          description: Last update date in ISO 8601 format
          example: '2026-03-03T17:25:53.312Z'
        userId:
          type: string
          description: User ID who initiated the action
          example: 69aeb71ef8c5b278e3bab4e5
        action:
          type: string
          description: Action being tracked (e.g. "Publish policy")
          example: Publish policy
        message:
          type: string
          description: Current progress message
          example: Publishing schemas...
        progress:
          type: number
          description: Progress percentage (0-100)
          example: 50
        type:
          type: string
          description: Progress type
          enum:
            - INFO
            - ERROR
            - WARN
            - SUCCESS
          example: INFO
        taskId:
          type: string
          description: Associated task ID
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
      required:
        - id
        - createDate
        - updateDate
        - userId
        - action
        - message
        - progress
        - type
        - taskId
    ProjectDTO:
      type: object
      properties:
        id:
          type: string
        policyId:
          type: string
        policyName:
          type: string
        registered:
          type: string
        title:
          type: string
        companyName:
          type: string
        sectoralScope:
          type: string
      required:
        - id
        - policyId
        - policyName
        - registered
        - title
        - companyName
        - sectoralScope
    FilterDocumentsDTO:
      type: object
      properties:
        idLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
            - type: number
              enum:
                - 0
                - 1
          example: 0
        eventsLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        propLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        childrenLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        documentId1:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        documentId2:
          type: string
          example: 69b8115f3dc0fa022156fb89
        documentIds:
          example:
            - 69aeb71ef8c5b278e3bab4e5
            - 69b8115f3dc0fa022156fb89
          type: array
          items:
            type: string
    CompareDocumentsV2DTO:
      type: object
      properties:
        projects:
          $ref: '#/components/schemas/CompareDocumentsDTO'
        presentations:
          $ref: '#/components/schemas/CompareDocumentsDTO'
      required:
        - projects
        - presentations
    PropertiesDTO:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        value:
          type: string
      required:
        - id
        - title
        - value
    RecordStatusDTO:
      type: object
      properties:
        type:
          type: string
          description: Record type (Recording or Running)
          example: Recording
        policyId:
          type: string
          description: Policy ID being recorded/run
          example: 69aeb71ef8c5b278e3bab4e5
        uuid:
          type: string
          description: Unique identifier of the recording session
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        status:
          type: string
          description: Current status of the recording/running session
          example: New
      required:
        - type
        - policyId
        - uuid
        - status
    RecordActionDTO:
      type: object
      properties:
        uuid:
          type: string
          description: Unique identifier of the action
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        policyId:
          type: string
          description: Policy ID
          example: 69aeb71ef8c5b278e3bab4e5
        method:
          type: string
          description: HTTP method (GET, POST, PUT, etc.)
          example: POST
        action:
          type: string
          description: Action type
          example: CreateDID
        time:
          type: string
          description: Timestamp when the action occurred
          example: '2026-03-03T17:25:53.312Z'
        user:
          type: string
          description: User DID who performed the action
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        target:
          type: string
          description: Target block or entity of the action
          example: Block tag
      required:
        - uuid
        - policyId
        - method
        - action
        - time
        - user
        - target
    ResultInfoDTO:
      type: object
      properties:
        tokens:
          type: number
          description: Number of tokens involved in the run
          example: 1
        documents:
          type: number
          description: Number of documents created during the run
          example: 5
      required:
        - tokens
        - documents
    ResultDocumentDTO:
      type: object
      properties:
        type:
          type: string
          description: Document type (VC, VP, etc.)
          example: VC
        schema:
          type: string
          description: Schema identifier
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        rate:
          type: string
          description: Match rate between recorded and replayed document
          example: 100%
        documents:
          type: object
          description: Document comparison details
          additionalProperties: true
      required:
        - type
        - schema
        - rate
        - documents
    RunningResultDTO:
      type: object
      properties:
        info:
          description: Summary info about the run
          allOf:
            - $ref: '#/components/schemas/ResultInfoDTO'
        total:
          type: number
          description: Total number of documents compared
          example: 5
        documents:
          description: Detailed document comparison results
          type: array
          items:
            $ref: '#/components/schemas/ResultDocumentDTO'
      required:
        - info
        - total
        - documents
    RoleDTO:
      type: object
      properties:
        id:
          type: string
          description: Internal database identifier
          example: 69aeb71ef8c5b278e3bab4e5
        createDate:
          type: string
          description: Role creation date in ISO 8601 format
          example: '2026-03-03T17:25:53.312Z'
        updateDate:
          type: string
          description: Last update date in ISO 8601 format
          example: '2026-03-03T17:25:53.312Z'
        uuid:
          type: string
          description: Unique universal identifier
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        name:
          type: string
          description: Role name
          example: Policy User
        description:
          type: string
          description: Role description
          example: Role for standard policy users
        owner:
          type: string
          description: DID of the Standard Registry who created this role
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        permissions:
          type: array
          description: List of permission names assigned to this role
          example:
            - POLICIES_POLICY_READ
            - TOKENS_TOKEN_READ
          items:
            type: string
            enum:
              - ANALYTIC_POLICY_READ
              - ANALYTIC_MODULE_READ
              - ANALYTIC_TOOL_READ
              - ANALYTIC_SCHEMA_READ
              - ANALYTIC_DOCUMENT_READ
              - ARTIFACTS_FILE_READ
              - ARTIFACTS_FILE_CREATE
              - ARTIFACTS_FILE_DELETE
              - CONTRACTS_CONTRACT_READ
              - CONTRACTS_CONTRACT_EXECUTE
              - LOG_LOG_READ
              - LOG_SYSTEM_READ
              - LOG_USERS_READ
              - MODULES_MODULE_READ
              - MODULES_MODULE_CREATE
              - MODULES_MODULE_UPDATE
              - MODULES_MODULE_DELETE
              - MODULES_MODULE_REVIEW
              - POLICIES_POLICY_READ
              - POLICIES_POLICY_CREATE
              - POLICIES_POLICY_UPDATE
              - POLICIES_POLICY_DELETE
              - POLICIES_POLICY_REVIEW
              - POLICIES_POLICY_EXECUTE
              - POLICIES_POLICY_MANAGE
              - POLICIES_POLICY_AUDIT
              - POLICIES_POLICY_TAG
              - POLICIES_EXTERNAL_POLICY_READ
              - POLICIES_EXTERNAL_POLICY_CREATE
              - POLICIES_EXTERNAL_POLICY_UPDATE
              - POLICIES_EXTERNAL_POLICY_DELETE
              - SCHEMAS_SCHEMA_READ
              - SCHEMAS_SCHEMA_CREATE
              - SCHEMAS_SCHEMA_UPDATE
              - SCHEMAS_SCHEMA_DELETE
              - SCHEMAS_SCHEMA_REVIEW
              - TOOLS_TOOL_READ
              - TOOLS_TOOL_CREATE
              - TOOLS_TOOL_UPDATE
              - TOOLS_TOOL_DELETE
              - TOOLS_TOOL_REVIEW
              - TOKENS_TOKEN_READ
              - TOKENS_TOKEN_CREATE
              - TOKENS_TOKEN_UPDATE
              - TOKENS_TOKEN_DELETE
              - TOKENS_TOKEN_EXECUTE
              - TOKENS_TOKEN_MANAGE
              - TAGS_TAG_READ
              - TAGS_TAG_CREATE
              - SUGGESTIONS_SUGGESTIONS_READ
              - SUGGESTIONS_SUGGESTIONS_UPDATE
              - PERMISSIONS_ROLE_READ
              - PERMISSIONS_ROLE_CREATE
              - PERMISSIONS_ROLE_UPDATE
              - PERMISSIONS_ROLE_DELETE
              - PERMISSIONS_ROLE_MANAGE
              - STATISTICS_STATISTIC_READ
              - STATISTICS_STATISTIC_CREATE
              - STATISTICS_LABEL_READ
              - STATISTICS_LABEL_CREATE
              - SCHEMAS_RULE_READ
              - SCHEMAS_RULE_CREATE
              - SCHEMAS_RULE_EXECUTE
              - FORMULAS_FORMULA_READ
              - FORMULAS_FORMULA_CREATE
              - WORKER_TASKS_READ
              - WORKER_TASKS_EXECUTE
              - WORKER_TASKS_DELETE
              - ACCESS_POLICY_ALL
              - ACCESS_POLICY_ASSIGNED
              - ACCESS_POLICY_PUBLISHED
              - ACCESS_POLICY_ASSIGNED_AND_PUBLISHED
              - CREDENTIALS_USER_READ
              - CREDENTIALS_USER_WRITE
              - CREDENTIALS_SR_READ
              - CREDENTIALS_SR_WRITE
              - DELEGATION_ROLE_MANAGE
        default:
          type: boolean
          description: Whether this is the default role for new users
          example: false
        readonly:
          type: boolean
          description: Whether the role is read-only (system role)
          example: false
      required:
        - id
        - createDate
        - updateDate
        - uuid
        - name
        - description
        - owner
        - permissions
        - default
        - readonly
    PermissionsDTO:
      type: object
      properties:
        name:
          type: string
          enum:
            - ANALYTIC_POLICY_READ
            - ANALYTIC_MODULE_READ
            - ANALYTIC_TOOL_READ
            - ANALYTIC_SCHEMA_READ
            - ANALYTIC_DOCUMENT_READ
            - ARTIFACTS_FILE_READ
            - ARTIFACTS_FILE_CREATE
            - ARTIFACTS_FILE_DELETE
            - CONTRACTS_CONTRACT_READ
            - CONTRACTS_CONTRACT_EXECUTE
            - LOG_LOG_READ
            - LOG_SYSTEM_READ
            - LOG_USERS_READ
            - MODULES_MODULE_READ
            - MODULES_MODULE_CREATE
            - MODULES_MODULE_UPDATE
            - MODULES_MODULE_DELETE
            - MODULES_MODULE_REVIEW
            - POLICIES_POLICY_READ
            - POLICIES_POLICY_CREATE
            - POLICIES_POLICY_UPDATE
            - POLICIES_POLICY_DELETE
            - POLICIES_POLICY_REVIEW
            - POLICIES_POLICY_EXECUTE
            - POLICIES_POLICY_MANAGE
            - POLICIES_POLICY_AUDIT
            - POLICIES_POLICY_TAG
            - POLICIES_EXTERNAL_POLICY_READ
            - POLICIES_EXTERNAL_POLICY_CREATE
            - POLICIES_EXTERNAL_POLICY_UPDATE
            - POLICIES_EXTERNAL_POLICY_DELETE
            - SCHEMAS_SCHEMA_READ
            - SCHEMAS_SCHEMA_CREATE
            - SCHEMAS_SCHEMA_UPDATE
            - SCHEMAS_SCHEMA_DELETE
            - SCHEMAS_SCHEMA_REVIEW
            - TOOLS_TOOL_READ
            - TOOLS_TOOL_CREATE
            - TOOLS_TOOL_UPDATE
            - TOOLS_TOOL_DELETE
            - TOOLS_TOOL_REVIEW
            - TOKENS_TOKEN_READ
            - TOKENS_TOKEN_CREATE
            - TOKENS_TOKEN_UPDATE
            - TOKENS_TOKEN_DELETE
            - TOKENS_TOKEN_EXECUTE
            - TOKENS_TOKEN_MANAGE
            - TAGS_TAG_READ
            - TAGS_TAG_CREATE
            - SUGGESTIONS_SUGGESTIONS_READ
            - SUGGESTIONS_SUGGESTIONS_UPDATE
            - PERMISSIONS_ROLE_READ
            - PERMISSIONS_ROLE_CREATE
            - PERMISSIONS_ROLE_UPDATE
            - PERMISSIONS_ROLE_DELETE
            - PERMISSIONS_ROLE_MANAGE
            - STATISTICS_STATISTIC_READ
            - STATISTICS_STATISTIC_CREATE
            - STATISTICS_LABEL_READ
            - STATISTICS_LABEL_CREATE
            - SCHEMAS_RULE_READ
            - SCHEMAS_RULE_CREATE
            - SCHEMAS_RULE_EXECUTE
            - FORMULAS_FORMULA_READ
            - FORMULAS_FORMULA_CREATE
            - WORKER_TASKS_READ
            - WORKER_TASKS_EXECUTE
            - WORKER_TASKS_DELETE
            - ACCESS_POLICY_ALL
            - ACCESS_POLICY_ASSIGNED
            - ACCESS_POLICY_PUBLISHED
            - ACCESS_POLICY_ASSIGNED_AND_PUBLISHED
            - CREDENTIALS_USER_READ
            - CREDENTIALS_USER_WRITE
            - CREDENTIALS_SR_READ
            - CREDENTIALS_SR_WRITE
            - DELEGATION_ROLE_MANAGE
          example: ANALYTIC_POLICY_READ
        category:
          type: string
          enum:
            - ACCOUNTS
            - SESSION
            - PROFILES
            - ANALYTIC
            - ARTIFACTS
            - POLICIES
            - BRANDING
            - CONTRACTS
            - DEMO
            - IPFS
            - LOG
            - MODULES
            - SETTINGS
            - SUGGESTIONS
            - TAGS
            - SCHEMAS
            - TOKENS
            - AUDIT
            - TOOLS
            - PERMISSIONS
            - ACCESS
            - DELEGATION
            - STATISTICS
            - FORMULAS
            - WORKER_TASKS
            - CREDENTIALS
          example: ANALYTIC
        entity:
          type: string
          enum:
            - ACCOUNT
            - STANDARD_REGISTRY
            - USER
            - BALANCE
            - RESTORE
            - RECORD
            - POLICY
            - TOOL
            - DOCUMENT
            - SCHEMA
            - MODULE
            - FILE
            - CONFIG
            - CONTRACT
            - WIPE_REQUEST
            - WIPE_ADMIN
            - WIPE_MANAGER
            - WIPER
            - POOL
            - RETIRE_REQUEST
            - RETIRE_ADMIN
            - PERMISSIONS
            - KEY
            - LOG
            - MIGRATION
            - SETTINGS
            - SUGGESTIONS
            - TAG
            - SYSTEM_SCHEMA
            - THEME
            - TOKEN
            - TRUST_CHAIN
            - ROLE
            - STATISTIC
            - RULE
            - LABEL
            - FORMULA
            - EXTERNAL_POLICY
            - WORKER_TASK
            - CREDENTIAL
          example: POLICY
        action:
          type: string
          enum:
            - ALL
            - READ
            - CREATE
            - UPDATE
            - DELETE
            - REVIEW
            - TAG
            - AUDIT
            - EXECUTE
            - MANAGE
            - ASSIGNED
            - PUBLISHED
            - ASSIGNED_AND_PUBLISHED
            - SYSTEM
            - USERS
          example: READ
        disabled:
          type: boolean
          example: false
        dependOn:
          example:
            - POLICIES_POLICY_READ
          type: array
          items:
            type: string
      required:
        - name
        - category
        - entity
        - action
        - disabled
        - dependOn
    UserDTO:
      type: object
      properties:
        username:
          type: string
          example: username
        role:
          type: string
          enum:
            - STANDARD_REGISTRY
            - USER
            - AUDITOR
          example: USER
        permissionsGroup:
          example:
            - {}
          type: array
          items:
            type: string
        permissions:
          example:
            - POLICIES_POLICY_READ
          type: array
          items:
            type: string
        did:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        parent:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        hederaAccountId:
          type: string
          example: 0.0.6046379
      required:
        - username
        - role
        - permissions
    AssignPolicyDTO:
      type: object
      properties:
        policyIds:
          example:
            - 69aeb71ef8c5b278e3bab4e5
          type: array
          items:
            type: string
        assign:
          type: boolean
          example: true
      required:
        - policyIds
        - assign
    StatisticDefinitionDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        uuid:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        name:
          type: string
          example: Tool name
        description:
          type: string
          example: Description
        creator:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        topicId:
          type: string
          example: 0.0.6046379
        messageId:
          type: string
          example: '1773670900.819264517'
        policyId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        policyTopicId:
          type: string
          example: 0.0.6046379
        policyInstanceTopicId:
          type: string
          example: 0.0.6046379
        status:
          type: string
          enum:
            - DRAFT
            - DRY_RUN
            - PUBLISHED
            - ERROR
            - ACTIVE
          example: DRAFT
        config:
          type: object
          nullable: true
          additionalProperties: true
      required:
        - name
        - config
    StatisticDefinitionRelationshipsDTO:
      type: object
      properties:
        policy:
          $ref: '#/components/schemas/PolicyDTO'
        schemas:
          type: array
          items:
            $ref: '#/components/schemas/SchemaDTO'
        schema:
          $ref: '#/components/schemas/SchemaDTO'
    StatisticAssessmentDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        definitionId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        policyId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        policyTopicId:
          type: string
          example: 0.0.6046379
        policyInstanceTopicId:
          type: string
          example: 0.0.6046379
        topicId:
          type: string
          example: 0.0.6046379
        creator:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        messageId:
          type: string
          example: '1773670900.819264517'
        target:
          type: string
          example: '1773670900.819264517'
        relationships:
          example:
            - '1773670900.819264517'
          type: array
          items:
            type: string
        document:
          type: object
          nullable: true
          additionalProperties: true
      required:
        - document
    StatisticAssessmentRelationshipsDTO:
      type: object
      properties:
        target:
          $ref: '#/components/schemas/VcDocumentDTO'
        relationships:
          type: array
          items:
            $ref: '#/components/schemas/VcDocumentDTO'
    SchemaRuleDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        uuid:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        name:
          type: string
          example: Tool name
        description:
          type: string
          example: Description
        creator:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        policyId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        policyTopicId:
          type: string
          example: 0.0.6046379
        policyInstanceTopicId:
          type: string
          example: 0.0.6046379
        status:
          type: string
          enum:
            - DRAFT
            - DRY_RUN
            - PUBLISHED
            - ERROR
            - ACTIVE
          example: DRAFT
        config:
          type: object
          nullable: true
          additionalProperties: true
      required:
        - name
        - config
    SchemaRuleRelationshipsDTO:
      type: object
      properties:
        policy:
          $ref: '#/components/schemas/PolicyDTO'
        schemas:
          type: array
          items:
            $ref: '#/components/schemas/SchemaDTO'
    SchemaRuleOptionsDTO:
      type: object
      properties:
        policyId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        schemaId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        documentId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        parentId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
    SchemaRuleDataDTO:
      type: object
      properties:
        rules:
          $ref: '#/components/schemas/SchemaRuleDTO'
        document:
          $ref: '#/components/schemas/VcDocumentDTO'
        relationships:
          type: array
          items:
            $ref: '#/components/schemas/VcDocumentDTO'
    FormulaDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        uuid:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        name:
          type: string
          example: Tool name
        description:
          type: string
          example: Description
        creator:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        messageId:
          type: string
          example: '1773670900.819264517'
        policyId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        policyTopicId:
          type: string
          example: 0.0.6046379
        policyInstanceTopicId:
          type: string
          example: 0.0.6046379
        status:
          type: string
          enum:
            - DRAFT
            - DRY_RUN
            - PUBLISHED
            - ERROR
            - ACTIVE
          example: DRAFT
        config:
          type: object
          nullable: true
          additionalProperties: true
      required:
        - name
        - config
    FormulaRelationshipsDTO:
      type: object
      properties:
        policy:
          $ref: '#/components/schemas/PolicyDTO'
        schemas:
          type: array
          items:
            $ref: '#/components/schemas/SchemaDTO'
        formulas:
          type: array
          items:
            $ref: '#/components/schemas/FormulaDTO'
    FormulasDataDTO:
      type: object
      properties:
        formulas:
          type: array
          items:
            $ref: '#/components/schemas/FormulaDTO'
        document:
          $ref: '#/components/schemas/VcDocumentDTO'
        relationships:
          type: array
          items:
            $ref: '#/components/schemas/VcDocumentDTO'
        schemas:
          type: array
          items:
            $ref: '#/components/schemas/SchemaDTO'
    FormulasOptionsDTO:
      type: object
      properties:
        policyId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        schemaId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        documentId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        parentId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
    ExternalPolicyDTO:
      type: object
      properties:
        uuid:
          type: string
          description: Policy UUID
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        name:
          type: string
          description: Policy name
          example: Policy Name
        description:
          type: string
          description: Policy description
          example: Policy Description
        version:
          type: string
          description: Policy version
          example: 1.0.0
        topicId:
          type: string
          description: Policy topic id
          example: 0.0.6046379
        instanceTopicId:
          type: string
          description: Policy instance topic id
          example: 0.0.6046379
        messageId:
          type: string
          description: Policy message id
          example: '1773670900.819264517'
        policyTag:
          type: string
          description: Policy tag
          example: Tag
        owner:
          type: string
          description: Policy owner
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        status:
          type: string
          enum:
            - NEW
            - APPROVED
            - REJECTED
          example: NEW
        username:
          type: string
          description: Username
          example: Username
      required:
        - uuid
        - name
        - description
        - version
        - topicId
        - instanceTopicId
        - messageId
        - policyTag
        - owner
        - status
        - username
    PolicyRequestDTO:
      type: object
      properties:
        uuid:
          type: string
          description: Action UUID
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        type:
          type: string
          description: Action type
          enum:
            - ACTION
            - REQUEST
            - REMOTE_ACTION
          example: ACTION
        messageId:
          type: string
          description: Action message id
          example: '1773670900.819264517'
        startMessageId:
          type: string
          description: Action start message id
          example: '1773670900.819264517'
        status:
          type: string
          description: Action status
          enum:
            - NEW
            - ERROR
            - COMPLETED
            - REJECTED
            - CANCELED
          example: NEW
        lastStatus:
          type: string
          description: Action last status
          enum:
            - NEW
            - ERROR
            - COMPLETED
            - REJECTED
            - CANCELED
          example: NEW
        accountId:
          type: string
          description: Action owner
          example: 0.0.6046379
        sender:
          type: string
          description: Message sender
          example: 0.0.6046379
        owner:
          type: string
          description: Action owner
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        topicId:
          type: string
          description: Action topic id
          example: 0.0.6046379
        document:
          type: object
          description: Action data
          additionalProperties: true
        policyId:
          type: string
          description: Policy UU
          example: 69aeb71ef8c5b278e3bab4e5
        blockTag:
          type: string
          description: Block tag
          example: Tag
        policyMessageId:
          type: string
          description: Policy message id
          example: '1773670900.819264517'
        loaded:
          type: boolean
          description: File is loaded
          example: true
      required:
        - uuid
        - type
        - messageId
        - startMessageId
        - status
        - lastStatus
        - accountId
        - sender
        - owner
        - topicId
        - document
        - policyId
        - blockTag
        - policyMessageId
        - loaded
    PolicyRequestCountDTO:
      type: object
      properties:
        requestsCount:
          type: number
          description: Number of new requests
          example: 0
        actionsCount:
          type: number
          description: Number of new actions
          example: 0
        delayCount:
          type: number
          description: Number of recent actions
          example: 0
        total:
          type: number
          description: Total
          example: 0
      required:
        - requestsCount
        - actionsCount
        - delayCount
        - total
    PolicyLabelDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        uuid:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        name:
          type: string
          example: Carbon Label
        description:
          type: string
          example: Description
        creator:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        topicId:
          type: string
          example: 0.0.6046379
        messageId:
          type: string
          example: '1773670900.819264517'
        policyId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        policyTopicId:
          type: string
          example: 0.0.6046379
        policyInstanceTopicId:
          type: string
          example: 0.0.6046379
        status:
          type: string
          enum:
            - DRAFT
            - DRY_RUN
            - PUBLISHED
            - ERROR
            - ACTIVE
          example: DRAFT
        config:
          type: object
          additionalProperties: true
          nullable: true
      required:
        - name
        - config
    PolicyLabelRelationshipsDTO:
      type: object
      properties:
        policy:
          $ref: '#/components/schemas/PolicyDTO'
        policySchemas:
          type: array
          items:
            $ref: '#/components/schemas/SchemaDTO'
        documentsSchemas:
          type: array
          items:
            $ref: '#/components/schemas/SchemaDTO'
    PolicyLabelFiltersDTO:
      type: object
      properties:
        text:
          type: string
          example: Name
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        components:
          type: string
          description: Component type
          enum:
            - all
            - label
            - statistic
          example: all
    PolicyLabelComponentsDTO:
      type: object
      properties:
        statistics:
          type: array
          items:
            $ref: '#/components/schemas/StatisticDefinitionDTO'
        labels:
          type: array
          items:
            $ref: '#/components/schemas/PolicyLabelDTO'
    PolicyLabelDocumentDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        definitionId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        policyId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        policyTopicId:
          type: string
          example: 0.0.6046379
        policyInstanceTopicId:
          type: string
          example: 0.0.6046379
        topicId:
          type: string
          example: 0.0.6046379
        creator:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        messageId:
          type: string
          example: '1773670900.819264517'
        target:
          type: string
          example: '1773670900.819264517'
        relationships:
          example:
            - '1773670900.819264517'
          type: array
          items:
            type: string
        document:
          type: object
          nullable: true
          additionalProperties: true
      required:
        - document
    PolicyLabelDocumentRelationshipsDTO:
      type: object
      properties:
        target:
          $ref: '#/components/schemas/VpDocumentDTO'
        relationships:
          type: array
          items:
            $ref: '#/components/schemas/VcDocumentDTO'
    PolicyCommentUserDTO:
      type: object
      properties:
        label:
          type: string
          description: >-
            Display name (username for users, role name for roles, "All" for
            broadcast)
          example: Administrator
        value:
          type: string
          description: >-
            Value to use when targeting (DID for users, role name for roles,
            "all" for broadcast)
          example: Administrator
        type:
          type: string
          description: >-
            Entry type: "all" = broadcast to everyone, "role" = target by role,
            "user" = target specific user
          enum:
            - all
            - role
            - user
          example: role
        roles:
          description: >-
            List of roles assigned to this user (only present when type =
            "user")
          example:
            - Administrator
          type: array
          items:
            type: string
      required:
        - label
        - value
        - type
    PolicyCommentRelationshipDTO:
      type: object
      properties:
        label:
          type: string
          example: Description
        value:
          type: string
          example: '1773670900.819264517'
      required:
        - label
        - value
    PolicyDiscussionDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        uuid:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        creator:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        policyId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        target:
          type: string
          example: '1773670900.819264517'
        targetId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        messageId:
          type: string
          example: '1773670900.819264517'
        parent:
          type: string
          example: '1773670900.819264517'
        hash:
          type: string
        name:
          type: string
          example: Common
        field:
          type: string
          example: '#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1'
        fieldName:
          type: string
          example: Field name
        relationships:
          example:
            - '1773670900.819264517'
          type: array
          items:
            type: string
        relationshipIds:
          example:
            - 69aeb71ef8c5b278e3bab4e5
          type: array
          items:
            type: string
        privacy:
          type: string
          enum:
            - public
            - roles
            - users
          example: public
        roles:
          type: array
          items:
            type: string
        users:
          type: array
          items:
            type: string
        system:
          type: boolean
          example: true
        count:
          type: number
          description: Number of comments in this discussion
          example: 0
        document:
          nullable: false
          allOf:
            - $ref: '#/components/schemas/VcDTO'
        historyIds:
          description: >-
            Array of document IDs that form the history chain for this
            discussion target (added by API for GET /discussions)
          example:
            - 69aeb71ef8c5b278e3bab4e5
          type: array
          items:
            type: string
      required:
        - id
        - document
    NewPolicyDiscussionDTO:
      type: object
      properties:
        name:
          type: string
          example: Common
        field:
          type: string
          example: '#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1'
        fieldName:
          type: string
          example: Field name
        parent:
          type: string
          example: '1773670900.819264517'
        privacy:
          type: string
          enum:
            - public
            - roles
            - users
          example: public
        roles:
          type: array
          items:
            type: string
        users:
          type: array
          items:
            type: string
        relationships:
          example:
            - '1773670900.819264517'
          type: array
          items:
            type: string
    PolicyCommentDTO:
      type: object
      properties:
        id:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        uuid:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        creator:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        owner:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        policyId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        topicId:
          type: string
          example: 0.0.6046379
        policyTopicId:
          type: string
          example: 0.0.6046379
        policyInstanceTopicId:
          type: string
          example: 0.0.6046379
        target:
          type: string
          example: '1773670900.819264517'
        targetId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        discussionMessageId:
          type: string
          example: '1773670900.819264517'
        discussionId:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        messageId:
          type: string
          example: '1773670900.819264517'
        timestamp:
          type: string
          example: 1759493933458
        hash:
          type: string
        sender:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        senderRole:
          type: string
          example: Administrator
        senderName:
          type: string
          example: StandardRegistry
        recipients:
          example:
            - >-
              did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
          type: array
          items:
            type: string
        fields:
          example:
            - '#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1'
          type: array
          items:
            type: string
        text:
          type: string
          example: text
        document:
          nullable: false
          allOf:
            - $ref: '#/components/schemas/VcDTO'
        isOwner:
          type: boolean
          description: >-
            Whether the current user is the sender of this comment (added by
            API, not stored in DB)
          example: true
      required:
        - id
        - document
    NewPolicyCommentDTO:
      type: object
      properties:
        anchor:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        recipients:
          example:
            - >-
              did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
          type: array
          items:
            type: string
        fields:
          example:
            - '#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1'
          type: array
          items:
            type: string
        text:
          type: string
          example: text
        files:
          example:
            - text
          type: array
          items:
            type: string
    PolicyCommentSearchDTO:
      type: object
      properties:
        search:
          type: string
          description: >-
            Search text — matches against comment text, field name, sender name,
            or sender role
          example: text
        field:
          type: string
          description: Filter by schema field path (e.g. "#schema-uuid&version/fieldName")
          example: '#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1'
        lt:
          type: string
          description: >-
            Cursor for pagination — return comments with _id less than this
            value (older comments)
          example: 69aeb71ef8c5b278e3bab4e5
        gt:
          type: string
          description: >-
            Cursor for pagination — return comments with _id greater than this
            value (newer comments)
          example: 69aeb71ef8c5b278e3bab4e5
    PolicyCommentCountDTO:
      type: object
      properties:
        fields:
          type: object
          description: >-
            Map of schema field paths to comment counts. Key = field IRI, value
            = number of comments on that field.
          additionalProperties:
            type: number
          example:
            '#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1': 3
        count:
          type: number
          description: Number of comments in this discussion
          example: 0
      required:
        - fields
    RelayerAccountDTO:
      type: object
      properties:
        id:
          type: string
          description: Internal database identifier
          example: 69aeb71ef8c5b278e3bab4e5
        name:
          type: string
          description: Human-readable name of the relayer account
          example: New Test Account
        username:
          type: string
          description: Username of the relayer account owner
          example: ExampleUser
        owner:
          type: string
          description: DID of the relayer account owner
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        parent:
          type: string
          description: DID of the parent Standard Registry (for child users)
          nullable: true
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        account:
          type: string
          description: Hedera account ID of the relayer
          example: 0.0.6046379
        createDate:
          type: string
          description: Creation date in ISO 8601 format
          example: '2026-03-03T17:25:53.312Z'
        updateDate:
          type: string
          description: Last update date in ISO 8601 format
          example: '2026-03-03T17:25:53.312Z'
      required:
        - id
    NewRelayerAccountDTO:
      type: object
      properties:
        name:
          type: string
          description: Human-readable name for the new relayer account
          example: My Relayer Account
        account:
          type: string
          description: Hedera account ID to use as relayer
          example: 0.0.6046379
        key:
          type: string
          description: Private key for the Hedera account (stored securely in wallet)
    WorkersTasksDTO:
      type: object
      properties:
        createDate:
          type: string
          example: '2026-03-03T17:25:53.312Z'
        done:
          type: boolean
          example: true
        id:
          type: string
          example: null
        isRetryableTask:
          type: boolean
          example: true
        processedTime:
          type: string
          example: '2026-03-03T17:25:53.312Z'
        sent:
          type: boolean
          example: true
        taskId:
          type: string
          example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
        type:
          type: string
          example: send-hedera
        updateDate:
          type: string
          example: '2026-03-03T17:25:53.312Z'
      required:
        - createDate
        - done
        - id
        - isRetryableTask
        - processedTime
        - sent
        - taskId
        - type
        - updateDate
    CredentialSubjectDTO:
      type: object
      properties:
        geography:
          type: string
        law:
          type: string
        tags:
          type: string
        ISIC:
          type: string
        '@context':
          type: array
          items:
            type: string
        id:
          type: string
        type:
          type: string
      required:
        - geography
        - law
        - tags
        - ISIC
        - '@context'
        - id
        - type
    DebugBlockHistoryDTO:
      type: object
      properties:
        id:
          type: string
          description: History ID
          example: 69aeb71ef8c5b278e3bab4e5
        createDate:
          type: string
          description: Create date
          example: '2026-03-03T17:25:53.312Z'
        document:
          type: object
          description: Input data
          additionalProperties: true
      required:
        - id
        - createDate
        - document
    FilterSchemasDTO:
      type: object
      properties:
        schemaId1:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        schemaId2:
          type: string
          example: 69b8115f3dc0fa022156fb89
        schemas:
          example:
            - type: id
              value: 69aeb71ef8c5b278e3bab4e5
            - type: policy-message
              value: 9db028d2-03ad-4d49-a178-cf4b67f8c147
              policy: '1773670900.819264517'
            - type: policy-file
              value: 9db028d2-03ad-4d49-a178-cf4b67f8c147
              policy:
                id: 9db028d2-03ad-4d49-a178-cf4b67f8c147
                name: File Name
                value: base64...
          type: array
          items:
            $ref: '#/components/schemas/FilterSchemaDTO'
        idLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
            - type: number
              enum:
                - 0
                - 1
          example: 0
    FilterToolsDTO:
      type: object
      properties:
        idLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
            - type: number
              enum:
                - 0
                - 1
          example: 0
        eventsLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        propLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        childrenLvl:
          oneOf:
            - type: string
              enum:
                - '0'
                - '1'
                - '2'
            - type: number
              enum:
                - 0
                - 1
                - 2
          example: 0
        toolId1:
          type: string
          example: 69aeb71ef8c5b278e3bab4e5
        toolId2:
          type: string
          example: 69b8115f3dc0fa022156fb89
        toolIds:
          example:
            - 69aeb71ef8c5b278e3bab4e5
            - 69b8115f3dc0fa022156fb89
          type: array
          items:
            type: string
    LoginOTPRequiredResponseDTO:
      type: object
      properties:
        success:
          type: boolean
          example: false
        otprequired:
          type: boolean
          example: true
      required:
        - success
        - otprequired
    LoginSuccessResponseDTO:
      type: object
      properties:
        did:
          type: string
          example: >-
            did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
        refreshToken:
          type: string
          example: >-
            eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImYwNmY2MzIyLTk2NGYtNGIwMC05ZjgwLTljM2Y1OTdjYTYyYSIsIm5hbWUiOiJTdGFuZGFyZFJlZ2lzdHJ5IiwiZXhwaXJlQXQiOjE4MDQ3MDAzOTczMzgsImlhdCI6MTc3MzE2NDM5N30.ODc0_ktbl5xPRn4Ub1Kuj-xrjlho2_oyohucLdgMUqFGrI2SD_T3A96OaV2cKx7NQwsxc-QFBpBnrGSriJ9qPUcDm9rYmQYSqwpRJT0uSuL7xwu4TiPlVzghCd5xlLTw_uA6uJR7CG7HrDphPQI6zMGSxKXcn2S9xIZ6z5uBuWU
        role:
          type: string
          example: STANDARD_REGISTRY
        username:
          type: string
          example: StandardRegistry
        weakPassword:
          type: string
          example: false
      required:
        - did
        - refreshToken
        - role
        - username
        - weakPassword
    RetireRequestTokenDTO:
      type: object
      properties:
        token:
          type: string
        count:
          type: number
          description: 'For FT: amount to retire. For NFT: keep `0`.'
          example: 1
        serials:
          description: 'For NFT: serial numbers to retire. For FT: use empty array.'
          example: []
          type: array
          items:
            type: string
      required:
        - token
        - count
        - serials
    ToolListV1ItemDTO:
      type: object
      properties:
        id:
          type: string
        uuid:
          type: string
        hash:
          type: string
          nullable: true
          description: Hash (for PUBLISHED tools only)
        name:
          type: string
        description:
          type: string
          nullable: true
        status:
          type: string
          enum:
            - DRAFT
            - PUBLISHED
            - PUBLISH_ERROR
        creator:
          type: string
        owner:
          type: string
        topicId:
          type: string
        messageId:
          type: string
          nullable: true
          description: Message ID (for PUBLISHED tools only)
      required:
        - id
        - uuid
        - hash
        - name
        - description
        - status
        - creator
        - owner
        - topicId
        - messageId
