---
openapi: 3.0.3
info:
  title: Collibra Classification - Data Class API
  description: |
    This API provides the ability to manage Data Classes.
  x-audience: public
  version: 0.0.3
servers:
- url: /rest/classification/v1
security:
- basicAuth: []
- jwtAuth: []
tags:
- name: Data Class
  description: Management of `Data Classes`.
- name: Classification Rule
  description: Management of `Classification Rules`.
- name: Data Class Group
  description: Management of `Data Class Groups`. Note that these APIs are not yet
    implemented.
- name: OOTB Data Class
  description: Management of `Out-of-the-box Data Classes`
paths:
  /dataClasses:
    get:
      tags:
      - Data Class
      summary: Find Data Classes
      description: "Finds `Data Classes` based on the provided criteria.\n\nBy default,\
        \ this endpoint returns a `basic` description of the `Data Classes` that does\
        \ not include the details of the `Classification Rules`. \nTo retrieve the\
        \ extended view of the `Data Classes` that includes the `Classification Rules`,\
        \ you can pass the `view=extended` parameter.\n"
      operationId: findDataClasses
      parameters:
      - $ref: "#/components/parameters/CorrelationId"
      - $ref: "#/components/parameters/DataClassStatus"
      - $ref: "#/components/parameters/DataClassContainsRules"
      - $ref: "#/components/parameters/RuleType"
      - $ref: "#/components/parameters/DataClassName"
      - $ref: "#/components/parameters/DataClassDescription"
      - $ref: "#/components/parameters/DataClassGroupId"
      - $ref: "#/components/parameters/Offset"
      - $ref: "#/components/parameters/Limit"
      - $ref: "#/components/parameters/DataClassView"
      responses:
        "200":
          description: |
            `Data Classes` successfully retrieved.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataClassPagedResponse"
              examples:
                no-results:
                  summary: We couldn't find any data classes
                  value:
                    results: []
                results-with-single-data-class:
                  $ref: "#/components/examples/SingleDataClassAsResults"
                results-with-multiple-data-classes:
                  $ref: "#/components/examples/MultipleDataClassesAsResults"
                results-with-multiple-extended-data-classes:
                  $ref: "#/components/examples/MultipleExtendedDataClassesAsResults"
        "400":
          description: |
            Invalid request to find `Data Classes`.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StandardErrorResponse"
              examples:
                standard-invalid-request:
                  $ref: "#/components/examples/DefaultInvalidRequest"
                rule-with-values-invalid-request:
                  $ref: "#/components/examples/RuleWithValuesInvalidRequest"
        "401":
          $ref: "#/components/responses/InvalidRequest401"
        "403":
          $ref: "#/components/responses/InvalidRequest403"
        "500":
          $ref: "#/components/responses/InvalidRequest500"
      security:
      - basicAuth: []
      - jwtAuth: []
    post:
      summary: Create a Data Class
      description: |
        Creates a `Data Class`.
      operationId: addDataClass
      parameters:
      - $ref: "#/components/parameters/CorrelationId"
      tags:
      - Data Class
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AddDataClassRequest"
            examples:
              create-data-class-with-name-only:
                summary: Create a Data Class with only a name provided
                value:
                  name: Email Address
      responses:
        "201":
          description: |
            `Data Class` successfully created.
          headers:
            Location:
              description: Reference to the newly created Data Class
              schema:
                type: string
                format: url
                example: https://hostname.com/dataClasses/2ffbd52a-6324-4337-9176-49ab9c66f6c9
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataClass"
              examples:
                data-class-with-name-only:
                  $ref: "#/components/examples/DataClassWithNameOnly"
        "400":
          description: |
            Invalid request to create a `Data Class`.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StandardErrorResponse"
              examples:
                standard-invalid-request:
                  $ref: "#/components/examples/DefaultInvalidRequest"
                rule-with-values-invalid-request:
                  $ref: "#/components/examples/RuleWithValuesInvalidRequest"
        "401":
          $ref: "#/components/responses/InvalidRequest401"
        "403":
          $ref: "#/components/responses/InvalidRequest403"
        "500":
          $ref: "#/components/responses/InvalidRequest500"
      security:
      - basicAuth: []
      - jwtAuth: []
  /dataClasses/find:
    post:
      summary: Find Data Classes
      description: Finds `Data Classes` from a list of IDs.
      operationId: getDataClassesByIds
      parameters:
      - $ref: "#/components/parameters/CorrelationId"
      - $ref: "#/components/parameters/DataClassView"
      tags:
      - Data Class
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DataClassIds"
            examples:
              find-data-classes-by-ids:
                summary: Find Data Classes by IDs
                value:
                - 2ffbd52a-6324-4337-9176-49ab9c66f6c9
                - 3ffbd52a-6324-4337-9176-49ab9c66f6c9
      responses:
        "200":
          description: |
            `Data Classes` successfully retrieved.
          content:
            application/json:
              schema:
                type: array
                description: The list of results.
                items:
                  $ref: "#/components/schemas/DataClass"
              examples:
                no-results:
                  summary: We couldn't find any data classes
                  value:
                    results: []
                results-with-single-data-class:
                  $ref: "#/components/examples/SingleDataClassAsResults"
                results-with-multiple-data-classes:
                  $ref: "#/components/examples/MultipleDataClassesAsResults"
        "400":
          description: |
            Invalid request to find `Data Classes`.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StandardErrorResponse"
              examples:
                standard-invalid-request:
                  $ref: "#/components/examples/DefaultInvalidRequest"
                rule-with-values-invalid-request:
                  $ref: "#/components/examples/RuleWithValuesInvalidRequest"
        "401":
          $ref: "#/components/responses/InvalidRequest401"
        "403":
          $ref: "#/components/responses/InvalidRequest403"
        "500":
          $ref: "#/components/responses/InvalidRequest500"
      security:
      - basicAuth: []
      - jwtAuth: []
  /dataClasses/{dataClassId}:
    parameters:
    - $ref: "#/components/parameters/DataClassIdInPath"
    get:
      tags:
      - Data Class
      summary: Get a Data Class
      description: "Get a single `Data Class` by its identifier.\n\nBy default, this\
        \ endpoint returns a `basic` description of the `Data Classes` that does not\
        \ include the details of the `Classification Rules`. \nTo retrieve the extended\
        \ view of the `Data Classes` that includes the `Classification Rules`, you\
        \ can pass the `view=extended` parameter.\n"
      operationId: getDataClass
      parameters:
      - $ref: "#/components/parameters/CorrelationId"
      - $ref: "#/components/parameters/DataClassView"
      responses:
        "200":
          description: |
            `Data Class` successfully retrieved.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataClass"
              examples:
                data-class-with-basic-view:
                  $ref: "#/components/examples/DataClassWithBasicView"
                data-class-with-extended-view:
                  $ref: "#/components/examples/DataClassWithMultipleValuesRule"
        "400":
          $ref: "#/components/responses/InvalidRequest400"
        "401":
          $ref: "#/components/responses/InvalidRequest401"
        "403":
          $ref: "#/components/responses/InvalidRequest403"
        "404":
          $ref: "#/components/responses/InvalidRequest404"
        "500":
          $ref: "#/components/responses/InvalidRequest500"
      security:
      - basicAuth: []
      - jwtAuth: []
    patch:
      tags:
      - Data Class
      summary: Update a Data Class
      description: |
        Updates attributes of a `Data Class`.
      operationId: changeDataClass
      parameters:
      - $ref: "#/components/parameters/CorrelationId"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChangeDataClassRequest"
            examples:
              update-data-class-name:
                summary: Modification of the Data Class name
                value:
                  name: Country
              update-data-class-status:
                summary: Modification of the Data Class status
                value:
                  status: DISABLED
              update-data-class-attributes:
                summary: Modification of multiple Data Class attributes.
                value:
                  columnNameFilters: []
                  columnTypeFilters: []
                  allowNullValues: true
                  allowEmptyValues: false
                  confidenceThreshold: 70
                  examples:
                  - jane.doe@gmail.com
                  - john.smith@yahoo.fr
      responses:
        "200":
          description: |
            `Data Class` successfully changed.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataClass"
              examples:
                data-class-with-basic-view:
                  $ref: "#/components/examples/DataClassWithBasicView"
        "400":
          description: |
            Invalid request to update a `Data Class`.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StandardErrorResponse"
              examples:
                standard-invalid-request:
                  $ref: "#/components/examples/DefaultInvalidRequest"
                rule-with-values-invalid-request:
                  $ref: "#/components/examples/RuleWithValuesInvalidRequest"
        "401":
          $ref: "#/components/responses/InvalidRequest401"
        "403":
          $ref: "#/components/responses/InvalidRequest403"
        "404":
          $ref: "#/components/responses/InvalidRequest404"
        "500":
          $ref: "#/components/responses/InvalidRequest500"
      security:
      - basicAuth: []
      - jwtAuth: []
    delete:
      summary: Delete a Data Class
      description: "Delete a `Data Class` by its identifier.\nThe `Classification\
        \ Rules` defined for the `Data Class` and any `Data Class` related `List Of\
        \ Values` will be deleted, \nand the `Data Class` will be removed from all\
        \ `Data Class Groups` referencing it.\n"
      tags:
      - Data Class
      operationId: deleteDataClass
      parameters:
      - $ref: "#/components/parameters/CorrelationId"
      responses:
        "204":
          description: |
            `Data Class` successfully deleted.
        "400":
          $ref: "#/components/responses/InvalidRequest400"
        "401":
          $ref: "#/components/responses/InvalidRequest401"
        "403":
          $ref: "#/components/responses/InvalidRequest403"
        "404":
          $ref: "#/components/responses/InvalidRequest404"
      security:
      - basicAuth: []
      - jwtAuth: []
  /dataClasses/merge:
    post:
      summary: Merge Data Classes
      description: |
        Merge one or multiple `Data Classes` into a target `Data Class`.

        Possible error codes that can be returned include:
        - 400: When `dataClassesToBeMerged` includes the `Data Class` defined via `targetDataClass`.
        - 404: When at least one of the `Data Classes` defined by `dataClassesToBeMerged` does not exist.
      operationId: mergeDataClasses
      tags:
      - Data Class
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MergeDataClassesRequest"
      responses:
        "200":
          description: |
            `Data Classes` have been merged successfully. The resulting `Data Class` is included in the response.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataClass"
              examples:
                data-class-with-basic-view:
                  $ref: "#/components/examples/DataClassWithBasicView"
        "400":
          $ref: "#/components/responses/InvalidRequest400"
        "401":
          $ref: "#/components/responses/InvalidRequest401"
        "403":
          $ref: "#/components/responses/InvalidRequest403"
        "500":
          $ref: "#/components/responses/InvalidRequest500"
      security:
      - basicAuth: []
      - jwtAuth: []
  /ootbDataClasses:
    get:
      tags:
      - OOTB Data Class
      summary: Find Out-Of-The-Box Data Classes
      description: |
        Returns `Out-of-the-box Data Classes` with their import status.
      operationId: findOOTBDataClasses
      parameters:
      - $ref: "#/components/parameters/Offset"
      - $ref: "#/components/parameters/Limit"
      responses:
        "200":
          description: |
            `OOTB Data Class` retrieved successfully
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OotbDataClassPagedResponse"
              examples:
                no-results:
                  summary: We couldn't find any OOTB data classes
                  value:
                    results: []
                results-with-single-ootb-data-class:
                  $ref: "#/components/examples/SingleOotbDataClassAsResults"
                results-with-multiple-ootb-data-classes:
                  $ref: "#/components/examples/MultipleOotbDataClassesAsResults"
        "400":
          description: |
            Invalid request to find `OOTB Data Classes`.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StandardErrorResponse"
              examples:
                standard-invalid-request:
                  $ref: "#/components/examples/DefaultInvalidRequest"
        "401":
          $ref: "#/components/responses/InvalidRequest401"
        "403":
          $ref: "#/components/responses/InvalidRequest403"
        "500":
          $ref: "#/components/responses/InvalidRequest500"
      security:
      - basicAuth: []
      - jwtAuth: []
  /classificationRules:
    get:
      tags:
      - Classification Rule
      summary: Find Classification Rules
      description: |
        Finds `Classification Rules` based on the provided criteria.
      operationId: findClassificationRules
      parameters:
      - $ref: "#/components/parameters/DataClassIdInQuery"
      - $ref: "#/components/parameters/Offset"
      - $ref: "#/components/parameters/Limit"
      - $ref: "#/components/parameters/CorrelationId"
      responses:
        "200":
          description: |
            `Classification Rules` successfully retrieved.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ClassificationRulePagedResponse"
              examples:
                no-results:
                  summary: We couldn't find any Classification Rules.
                  value:
                    results: []
                results-with-single-classification-rule:
                  $ref: "#/components/examples/SingleClassificationRuleAsResults"
                results-with-multiple-classification-rules:
                  $ref: "#/components/examples/MultipleClassificationRulesAsResults"
        "400":
          description: |
            Invalid request to find `Data Classes`.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StandardErrorResponse"
              examples:
                standard-invalid-request:
                  $ref: "#/components/examples/DefaultInvalidRequest"
                rule-with-values-invalid-request:
                  $ref: "#/components/examples/RuleWithValuesInvalidRequest"
        "401":
          $ref: "#/components/responses/InvalidRequest401"
        "403":
          $ref: "#/components/responses/InvalidRequest403"
        "500":
          $ref: "#/components/responses/InvalidRequest500"
      security:
      - basicAuth: []
      - jwtAuth: []
    post:
      tags:
      - Classification Rule
      summary: Creates a new Classification Rule.
      description: |
        Create a new `Classification Rule` under a given `Data Class`.
      operationId: addClassificationRule
      parameters:
      - $ref: "#/components/parameters/CorrelationId"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AddClassificationRuleRequest"
            examples:
              add-regular-expression-rule:
                $ref: "#/components/examples/ClassificationRuleWithRegularExpressionAddRequest"
              add-list-of-values-rule:
                $ref: "#/components/examples/ClassificationRuleWithListOfValuesAddRequest"
              add-list-of-values-rule-as-csv:
                $ref: "#/components/examples/ClassificationRuleWithCSVListOfValuesAddRequest"
              add-code-set-rule:
                $ref: "#/components/examples/ClassificationRuleWithCodeSetAddRequest"
              add-data-type-rule:
                $ref: "#/components/examples/ClassificationRuleWithDataTypeAddRequest"
          multipart/form-data:
            schema:
              required:
              - addClassificationRuleRequest
              - file
              type: object
              properties:
                addClassificationRuleRequest:
                  $ref: "#/components/schemas/AddClassificationRuleWithFileRequest"
                file:
                  type: string
                  format: binary
                  description: Files containing the values (1 value per line)
      responses:
        "201":
          description: |
            `Classification Rule` successfully created.
          headers:
            Location:
              description: Reference to the newly created `Classification Rule`
              schema:
                type: string
                format: url
                example: https://hostname.com/classificationRules/2ffbd52a-6324-4337-9176-49ab9c66f6c9
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ClassificationRuleWithId"
              examples:
                list-of-value-rule:
                  $ref: "#/components/examples/ClassificationRuleBasedOnListOfValues"
                regular-expression-rule:
                  $ref: "#/components/examples/ClassificationRuleBasedOnRegularExpression"
                equal-rule:
                  $ref: "#/components/examples/ClassificationRuleBasedOnSingleValue"
        "400":
          description: |
            Invalid request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StandardErrorResponse"
              examples:
                standard-invalid-request:
                  $ref: "#/components/examples/DefaultInvalidRequest"
                too-many-values:
                  $ref: "#/components/examples/TooManyValuesResponse"
        "401":
          $ref: "#/components/responses/InvalidRequest401"
        "403":
          $ref: "#/components/responses/InvalidRequest403"
        "500":
          $ref: "#/components/responses/InvalidRequest500"
      security:
      - basicAuth: []
      - jwtAuth: []
  /classificationRules/{classificationRuleId}:
    get:
      tags:
      - Classification Rule
      summary: Get a Classification Rule
      description: "Returns a specific `Classification Rule`.\n\nFor the `Classification\
        \ Rules` of type `LIST_OF_VALUES`, this endpoint only returns a *summary*\
        \ of the `List Of Values`. This summary includes the following information:\n\
        - The identifier of the list (`id`)\n- The number of values (`valueCount`)\n\
        - The first 1,000 values (`firstValues`). \n\nTo retrieve all the values defined\
        \ inside a specific `List Of Values`, the following endpoints can be used:\n\
        - `/classificationRules/{classificationRuleId}/values`, which returns the\
        \ values in a JSON document. This endpoint supports pagination.\n- `/classificationRules/{classificationRuleId}/valuesAsFile`,\
        \ which returns all the values as a file.\n"
      operationId: getClassificationRule
      parameters:
      - $ref: "#/components/parameters/ClassificationRuleId"
      - $ref: "#/components/parameters/CorrelationId"
      responses:
        "200":
          description: |
            `Classification Rule` successfully retrieved.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ClassificationRuleWithId"
              examples:
                list-of-value-rule:
                  $ref: "#/components/examples/ClassificationRuleBasedOnListOfValues"
                regular-expression-rule:
                  $ref: "#/components/examples/ClassificationRuleBasedOnRegularExpression"
                equal-rule:
                  $ref: "#/components/examples/ClassificationRuleBasedOnSingleValue"
        "401":
          $ref: "#/components/responses/InvalidRequest401"
        "403":
          $ref: "#/components/responses/InvalidRequest403"
        "404":
          $ref: "#/components/responses/InvalidRequest404"
        "500":
          $ref: "#/components/responses/InvalidRequest500"
      security:
      - basicAuth: []
      - jwtAuth: []
    patch:
      tags:
      - Classification Rule
      summary: Update a Classification Rule
      description: "Update an existing `Classification Rule`.  \n\nYou can use this\
        \ endpoint to update a `List Of Values` that contains maximum 1,000 values.\n\
        To update a `List Of Values` that is larger than 1,000 values, use the `/listOfValues/{listOfValuesId}/valuesUpload`\
        \ endpoint.\n"
      operationId: changeClassificationRule
      parameters:
      - $ref: "#/components/parameters/ClassificationRuleId"
      - $ref: "#/components/parameters/CorrelationId"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChangeClassificationRuleRequest"
            examples:
              update-list-of-values-based-rule:
                $ref: "#/components/examples/ClassificationRuleWithListOfValuesChangeRequest"
              update-regular-expression-based-rule:
                $ref: "#/components/examples/ClassificationRuleWithRegularExpressionChangeRequest"
              update-data-type-rule:
                $ref: "#/components/examples/ClassificationRuleWithDataTypeChangeRequest"
          multipart/form-data:
            schema:
              type: object
              required:
              - changeClassificationRuleRequest
              - file
              properties:
                changeClassificationRuleRequest:
                  $ref: "#/components/schemas/ChangeClassificationRuleWithFileRequest"
                file:
                  type: string
                  format: binary
                  description: Files containing the values (1 value per line)
      responses:
        "200":
          description: |
            The `List Of Values` was successfully updated.
          headers:
            Location:
              description: A reference to the updated `List Of Values`.
              schema:
                type: string
                format: url
                example: https://hostname.com/listOfValues/2ffbd52a-6324-4337-9176-49ab9c66f6c9
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ClassificationRuleWithId"
              examples:
                list-of-value-rule:
                  $ref: "#/components/examples/ClassificationRuleBasedOnListOfValues"
                regular-expression-rule:
                  $ref: "#/components/examples/ClassificationRuleBasedOnRegularExpression"
        "400":
          description: |
            Invalid request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StandardErrorResponse"
              examples:
                standard-invalid-request:
                  $ref: "#/components/examples/DefaultInvalidRequest"
                too-many-values:
                  $ref: "#/components/examples/TooManyValuesResponse"
        "401":
          $ref: "#/components/responses/InvalidRequest401"
        "403":
          $ref: "#/components/responses/InvalidRequest403"
        "404":
          $ref: "#/components/responses/InvalidRequest404"
        "500":
          $ref: "#/components/responses/InvalidRequest500"
      security:
      - basicAuth: []
      - jwtAuth: []
    delete:
      summary: Delete a Classification Rule
      description: |
        Delete a `Classification Rule` by its identifier.
      tags:
      - Classification Rule
      operationId: deleteClassificationRule
      parameters:
      - $ref: "#/components/parameters/ClassificationRuleId"
      - $ref: "#/components/parameters/CorrelationId"
      responses:
        "204":
          description: |
            `Classification Rule` successfully deleted.
        "400":
          description: |
            Invalid request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StandardErrorResponse"
              examples:
                list-of-value-in-use:
                  $ref: "#/components/examples/ListOfValuesInUseResponse"
        "401":
          $ref: "#/components/responses/InvalidRequest401"
        "403":
          $ref: "#/components/responses/InvalidRequest403"
        "500":
          $ref: "#/components/responses/InvalidRequest500"
      security:
      - basicAuth: []
      - jwtAuth: []
  /classificationRules/{classificationRuleId}/valuesAsFile:
    put:
      tags:
      - Classification Rule
      summary: Update values of a Classification Rule via File Upload
      description: "Update the `List Of Values` defined for a specific `Classification\
        \ Rule`. \n\nPlease note that this endpoint is only applicable to `Classification\
        \ Rules` with type `LIST_OF_VALUES`. \nIf the identified `Classification Rule`\
        \ is of a different type, this endpoint returns a `400` response. \n\nThis\
        \ endpoint can be used to upload any `List of Values`, regardless of its size.\
        \ \nHowever, it **must** be used to create a `List Of Values` containing more\
        \ than 1,000 values.\n\nThe file provided to this endpoint must be a text\
        \ file (`text/plain`) in which each value is defined as a separate line. \n\
        The following characters are supported as valid value separators:\n- Carriage\
        \ return (aka `CR`  or `\\r`) \n- Line feed (aka `LF` or `\\n`)\n- The end\
        \ of line sequence composed of those 2 characters (aka `EOL` or `\\r\\n`)\n"
      operationId: updateListOfValuesOfClassificationRuleFromFile
      parameters:
      - $ref: "#/components/parameters/ClassificationRuleId"
      - $ref: "#/components/parameters/CorrelationId"
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
              - file
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: Files containing the values (1 value per line)
      responses:
        "201":
          description: |
            `List Of Values` successfully updated inside a `Classification Rule`.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListOfValuesBasedClassificationRuleWithId"
              examples:
                list-of-value-rule:
                  $ref: "#/components/examples/ClassificationRuleBasedOnListOfValues"
        "400":
          description: |
            Invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StandardErrorResponse"
              examples:
                standard-invalid-request:
                  $ref: "#/components/examples/DefaultInvalidRequest"
                too-many-values:
                  $ref: "#/components/examples/TooManyValuesResponse"
        "401":
          $ref: "#/components/responses/InvalidRequest401"
        "403":
          $ref: "#/components/responses/InvalidRequest403"
        "500":
          $ref: "#/components/responses/InvalidRequest500"
      security:
      - basicAuth: []
      - jwtAuth: []
    get:
      tags:
      - Classification Rule
      summary: Get the values of a Classification Rule as a file
      description: "Returns the values of a given `Classification Rule` as a file.\
        \ \n\nPlease note that this endpoint is only applicable to `Classification\
        \ Rules` with type `LIST_OF_VALUES`. \nIf the identified `Classification Rule`\
        \ is of a different type, this endpoint returns a `400` response. \n\nThe\
        \ file returned by this endpoint is a text file (`text/plain`) in which each\
        \ value is defined as a separate line. \nThe following characters are supported\
        \ as valid value separators:\n- Carriage return (aka `CR`  or `\\r`) \n- Line\
        \ feed (aka `LF` or `\\n`)\n- The end of line sequence composed of those 2\
        \ characters (aka `EOL` or `\\r\\n`)\n"
      operationId: getValuesFromListOfValuesAsFile
      parameters:
      - $ref: "#/components/parameters/ClassificationRuleId"
      - $ref: "#/components/parameters/CorrelationId"
      responses:
        "200":
          description: |
            Values file successfully returned.
          content:
            text/plain:
              schema:
                type: string
          headers:
            Content-Disposition:
              schema:
                type: string
                description: Provides a file name to the client.
                example: attachment; filename="f914145f-4356-4e5d-9fe9-b2d666d5db73-values.csv"
        "401":
          $ref: "#/components/responses/InvalidRequest401"
        "403":
          $ref: "#/components/responses/InvalidRequest403"
        "404":
          $ref: "#/components/responses/InvalidRequest404"
        "500":
          $ref: "#/components/responses/InvalidRequest500"
      security:
      - basicAuth: []
      - jwtAuth: []
  /classificationRules/{classificationRuleId}/values:
    get:
      tags:
      - Classification Rule
      summary: Get the values of a Classification Rule
      description: "Returns the values defined in the `List Of Values` of a given\
        \ `Classification Rule`. \nThis endpoint provides the ability to retrieve\
        \ all the values defined for a specific `Classification Rule`, using paging\
        \ if required. \n\nPlease note that this endpoint is only applicable to `Classification\
        \ Rules` with type `LIST_OF_VALUES`. \nIf the identified `Classification Rule`\
        \ is of a different type, this endpoint returns a `400` response.\n"
      operationId: getListOfValuesFromClassificationRule
      parameters:
      - $ref: "#/components/parameters/ClassificationRuleId"
      - $ref: "#/components/parameters/Cursor"
      - $ref: "#/components/parameters/Limit"
      responses:
        "200":
          description: |
            Values successfully returned.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ValuePagedResponse"
              examples:
                values-with-next-page-available:
                  summary: Values are returned and an additional page is available
                  value:
                    nextCursor: iurwfejlweinwtywkxnctwltcqlyl
                    results:
                    - Value 1
                    - Value 2
                    - Value 3
                    - Value 4
                    - Value 5
                values-with-no-next-page-available:
                  summary: Values are returned and no additional page is available
                  value:
                    results:
                    - Value 1
                    - Value 2
                    - Value 3
                    - Value 4
                    - Value 5
                values-empty:
                  summary: No values are defined in the `List Of Values`
                  value:
                    results: []
        "401":
          $ref: "#/components/responses/InvalidRequest401"
        "403":
          $ref: "#/components/responses/InvalidRequest403"
        "404":
          $ref: "#/components/responses/InvalidRequest404"
        "500":
          $ref: "#/components/responses/InvalidRequest500"
      security:
      - basicAuth: []
      - jwtAuth: []
  /dataClassGroups:
    get:
      tags:
      - Data Class Group
      summary: Find Data Class Groups
      description: |
        Finds `Data Class Groups` based on the provided criteria.
      operationId: findDataClassGroups
      parameters:
      - $ref: "#/components/parameters/DataClassGroupName"
      - $ref: "#/components/parameters/Offset"
      - $ref: "#/components/parameters/Limit"
      responses:
        "200":
          description: |
            `Data Class Groups` successfully retrieved.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataClassGroupPagedResponse"
        "400":
          $ref: "#/components/responses/InvalidRequest400"
        "401":
          $ref: "#/components/responses/InvalidRequest401"
        "403":
          $ref: "#/components/responses/InvalidRequest403"
        "500":
          $ref: "#/components/responses/InvalidRequest500"
      security:
      - basicAuth: []
      - jwtAuth: []
    post:
      summary: Create a Data Class Group
      description: |
        Creates a `Data Class Group`.
      operationId: addDataClassGroup
      tags:
      - Data Class Group
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AddDataClassGroupRequest"
      responses:
        "201":
          description: |
            `Data Class Group` successfully created.
          headers:
            Location:
              description: |
                Reference to the newly created `Data Class Group`.
              schema:
                type: string
                format: url
                example: https://hostname.com/dataClassGroups/2ffbd52a-6324-4337-9176-49ab9c66f6c9
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataClassGroup"
        "400":
          $ref: "#/components/responses/InvalidRequest400"
        "401":
          $ref: "#/components/responses/InvalidRequest401"
        "403":
          $ref: "#/components/responses/InvalidRequest403"
        "500":
          $ref: "#/components/responses/InvalidRequest500"
      security:
      - basicAuth: []
      - jwtAuth: []
  /dataClassGroups/{dataClassGroupId}:
    parameters:
    - $ref: "#/components/parameters/DataClassGroupIdInPath"
    get:
      tags:
      - Data Class Group
      summary: Get a Data Class Group
      description: |
        Get a single `Data Class Group` by its identifier.
      operationId: getDataClassGroup
      responses:
        "200":
          description: |
            `Data Class Group` successfully retrieved.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataClassGroup"
        "400":
          $ref: "#/components/responses/InvalidRequest400"
        "401":
          $ref: "#/components/responses/InvalidRequest401"
        "403":
          $ref: "#/components/responses/InvalidRequest403"
        "404":
          $ref: "#/components/responses/InvalidRequest404"
        "500":
          $ref: "#/components/responses/InvalidRequest500"
      security:
      - basicAuth: []
      - jwtAuth: []
    patch:
      tags:
      - Data Class Group
      summary: Update a Data Class Group.
      description: |
        Update attributes of a `Data Class Group`.
      operationId: changeDataClassGroup
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChangeDataClassGroupRequest"
      responses:
        "200":
          description: |
            `Data Class Group` successfully changed.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataClassGroup"
        "400":
          $ref: "#/components/responses/InvalidRequest400"
        "401":
          $ref: "#/components/responses/InvalidRequest401"
        "403":
          $ref: "#/components/responses/InvalidRequest403"
        "404":
          $ref: "#/components/responses/InvalidRequest404"
        "500":
          $ref: "#/components/responses/InvalidRequest500"
      security:
      - basicAuth: []
      - jwtAuth: []
    delete:
      summary: Delete a Data Class Group
      description: |
        Delete a `Data Class Group` by its identifier.
      tags:
      - Data Class Group
      operationId: deleteDataClassGroup
      responses:
        "204":
          description: |
            `Data Class Group` successfully deleted.
        "400":
          $ref: "#/components/responses/InvalidRequest400"
        "401":
          $ref: "#/components/responses/InvalidRequest401"
        "403":
          $ref: "#/components/responses/InvalidRequest403"
        "404":
          $ref: "#/components/responses/InvalidRequest404"
        "500":
          $ref: "#/components/responses/InvalidRequest500"
      security:
      - basicAuth: []
      - jwtAuth: []
components:
  parameters:
    CorrelationId:
      name: correlationId
      in: query
      description: |
        Correlation ID used to relate logs occurring in distinct system components.
      required: false
      schema:
        type: string
        format: uuid
    ClassificationRuleId:
      name: classificationRuleId
      in: path
      description: |
        The ID of a `Classification Rule`.
      required: true
      schema:
        type: string
        format: uuid
    DataClassIdInPath:
      name: dataClassId
      in: path
      description: |
        The ID of a `Data Class`.
      required: true
      schema:
        type: string
        format: uuid
    DataClassIdInQuery:
      name: dataClassId
      in: query
      description: |
        The ID of a `Data Class`.
      required: false
      schema:
        type: string
        format: uuid
    DataClassGroupIdInPath:
      name: dataClassGroupId
      in: path
      description: |
        The ID of a `Data Class Group`.
      required: true
      schema:
        type: string
        format: uuid
    DataClassGroupId:
      name: dataClassGroupId
      in: query
      description: |
        The ID of a `Data Class Group`.
      required: false
      schema:
        type: string
        format: uuid
    DataClassName:
      name: name
      in: query
      description: |
        The name of a `Data Class`.

        The matching logic is case insensitive and supports partial matches.

        E.g. A search for `EMAIL` matches `Data Class` name `Email Address`

        E.g. A search for `Security` matches `Data Class` name `Social-Security-Number`
      required: false
      schema:
        type: string
    DataClassDescription:
      name: description
      in: query
      description: |
        The description of a `Data Class`.

        The matching logic is case insensitive and supports partial matches.
      required: false
      schema:
        type: string
    DataClassGroupName:
      name: name
      in: query
      description: |
        The name of a `Data Class Group`.

        The matching logic is case insensitive and supports partial matches.

        E.g. A search for `PERSONAL` or a search for `Identi` match `Data Class Group` name 'Personal Identifiable Information'
      required: false
      schema:
        type: string
    DataClassContainsRules:
      name: containsRules
      in: query
      description: |
        Filters the `Data Classes` based on whether or not they contain rules.

        If `containsRules=true` is defined as parameter, only the `Data Classes` containing rules are returned.
        This can be useful to retrieve only the `Data Classes` that can be used for automated classification.
      required: false
      example: true
      schema:
        type: boolean
    DataClassStatus:
      name: status
      in: query
      description: |
        Applies a filter based on the `status` of the `Data Classes`.

        Possible values:
        - `ENABLED`
        - `DISABLED`

        If multiple `status` parameters are provided, the `Data Classes` matching any `status` defined
        as parameter are taken into account (OR logic).
      required: false
      schema:
        type: array
        items:
          type: string
        example:
        - ENABLED
      style: form
      explode: true
    RuleType:
      name: ruleType
      in: query
      required: false
      description: |
        Filter based on the `ruleType` of `Classification Rules` defined inside the `Data Class`.
        Multiple `ruleType` parameters can be provided.
        In this case, the API returns the `DataClasses` containing rules matching any of the defined types (OR logic).

        The following values are currently supported:
        - `REGULAR_EXPRESSION`
        - `REGULAR_EXPRESSION_COLUMN_NAME`
        - `DATA_TYPE`
        - `LIST_OF_VALUES`
        - `CODE_SET`
        - `LIKE`
        - `GREATER_THAN`
        - `LESS_THAN`
        - `EQUAL`
        - `BETWEEN`
      schema:
        type: array
        items:
          type: string
          example: LIST_OF_VALUES
      style: form
      explode: true
    Offset:
      name: offset
      in: query
      required: false
      description: |
        The index of the first result to retrieve.

        If not set (offset = `0`), results will be retrieved starting from row `0`.
      schema:
        type: integer
        format: int32
        default: 0
    Limit:
      name: limit
      in: query
      required: false
      description: |
        The maximum number of results to retrieve.

        If not set, the default limit  (limit = `50`) will be used. The maximum value for this parameter is
        `1000`.
      schema:
        type: integer
        format: int32
        default: 50
        maximum: 1000
    DataClassView:
      name: view
      in: query
      required: false
      description: "The view of the `Data Class` to return. \n\nPossible values are\
        \ `basic` or `extended` (case insensitive). The `basic` view does not include\
        \ the rules, whereas the `extended` view does.\n"
      schema:
        type: string
        default: basic
    Cursor:
      name: cursor
      in: query
      required: false
      description: |
        The cursor pointing to the first resource to be included in the response. This cursor cannot be created and must have been extracted from a response returned by a previous API call.

        If this parameter is missing, the API will return the resources starting from the first resource available (index=0).
      schema:
        type: string
  schemas:
    ListOfValues:
      type: object
      properties:
        valueCount:
          $ref: "#/components/schemas/ValueCount"
        firstValues:
          $ref: "#/components/schemas/FirstValues"
    CodeSet:
      type: object
      description: |
        Represents a `Code Set` asset.
      required:
      - id
      properties:
        id:
          $ref: "#/components/schemas/CodeSetId"
        valueCount:
          $ref: "#/components/schemas/ValueCount"
    DataClass:
      type: object
      required:
      - id
      - name
      - status
      - allowNullValues
      - allowEmptyValues
      - confidenceThreshold
      - createdBy
      - createdOn
      - lastModifiedBy
      - lastModifiedOn
      properties:
        id:
          $ref: "#/components/schemas/DataClassId"
        name:
          $ref: "#/components/schemas/DataClassName"
        description:
          $ref: "#/components/schemas/DataClassDescription"
        status:
          $ref: "#/components/schemas/DataClassStatus"
        columnNameFilters:
          $ref: "#/components/schemas/ColumnNameFilters"
        columnTypeFilters:
          $ref: "#/components/schemas/ColumnTypeFilters"
        allowNullValues:
          $ref: "#/components/schemas/AllowNullValues"
        allowEmptyValues:
          $ref: "#/components/schemas/AllowEmptyValues"
        confidenceThreshold:
          $ref: "#/components/schemas/ConfidenceThreshold"
        examples:
          $ref: "#/components/schemas/Examples"
        createdBy:
          $ref: "#/components/schemas/CreatedBy"
        createdOn:
          $ref: "#/components/schemas/CreatedOn"
        lastModifiedBy:
          $ref: "#/components/schemas/LastModifiedBy"
        lastModifiedOn:
          $ref: "#/components/schemas/LastModifiedOn"
        rules:
          $ref: "#/components/schemas/ClassificationRules"
    DataClassGroup:
      type: object
      description: |
        Group of `Data Classes`.
      required:
      - id
      - name
      - dataClasses
      properties:
        id:
          $ref: "#/components/schemas/DataClassGroupId"
        name:
          $ref: "#/components/schemas/DataClassGroupName"
        dataClasses:
          $ref: "#/components/schemas/DataClassIds"
    AddDataClassRequest:
      type: object
      description: |
        Request to create a `Data Class`. Only the `name` property is mandatory when creating a new `Data Class`.
      required:
      - name
      properties:
        name:
          $ref: "#/components/schemas/DataClassName"
        description:
          $ref: "#/components/schemas/DataClassDescription"
        status:
          $ref: "#/components/schemas/DataClassStatus"
        columnNameFilters:
          $ref: "#/components/schemas/ColumnNameFilters"
        columnTypeFilters:
          $ref: "#/components/schemas/ColumnTypeFilters"
        allowNullValues:
          $ref: "#/components/schemas/AllowNullValues"
        allowEmptyValues:
          $ref: "#/components/schemas/AllowEmptyValues"
        confidenceThreshold:
          $ref: "#/components/schemas/ConfidenceThreshold"
        examples:
          $ref: "#/components/schemas/Examples"
    ChangeDataClassRequest:
      type: object
      description: |
        Request to change a `Data Class`.

        All the attributes are optional.
      properties:
        name:
          $ref: "#/components/schemas/DataClassName"
        description:
          $ref: "#/components/schemas/DataClassDescription"
        status:
          $ref: "#/components/schemas/DataClassStatus"
        columnNameFilters:
          $ref: "#/components/schemas/ColumnNameFilters"
        columnTypeFilters:
          $ref: "#/components/schemas/ColumnTypeFilters"
        allowNullValues:
          $ref: "#/components/schemas/AllowNullValues"
        allowEmptyValues:
          $ref: "#/components/schemas/AllowEmptyValues"
        confidenceThreshold:
          $ref: "#/components/schemas/ConfidenceThreshold"
        examples:
          $ref: "#/components/schemas/Examples"
    ChangeClassificationRuleRequest:
      type: object
      description: |
        Request to change a `Classification Rule`.
      oneOf:
      - $ref: "#/components/schemas/ChangeSingleValuedClassificationRuleRequest"
      - $ref: "#/components/schemas/ChangeRegularExpressionBasedClassificationRuleRequest"
      - $ref: "#/components/schemas/ChangeDataTypeBasedClassificationRuleRequest"
      - $ref: "#/components/schemas/ChangeInlineListOfValuesBasedClassificationRuleRequest"
      - $ref: "#/components/schemas/ChangeInlineCsvListOfValuesBasedClassificationRuleRequest"
      - $ref: "#/components/schemas/ChangeBetweenClassificationRuleRequest"
      - $ref: "#/components/schemas/ChangeCodeSetBasedClassificationRuleRequest"
      discriminator:
        propertyName: type
        mapping:
          REGULAR_EXPRESSION: "#/components/schemas/ChangeRegularExpressionBasedClassificationRuleRequest"
          REGULAR_EXPRESSION_COLUMN_NAME: "#/components/schemas/ChangeRegularExpressionBasedClassificationRuleRequest"
          DATA_TYPE: "#/components/schemas/ChangeDataTypeBasedClassificationRuleRequest"
          LIST_OF_VALUES_INLINE_ARRAY: "#/components/schemas/ChangeInlineListOfValuesBasedClassificationRuleRequest"
          LIST_OF_VALUES_INLINE_CSV: "#/components/schemas/ChangeInlineCsvListOfValuesBasedClassificationRuleRequest"
          CODE_SET: "#/components/schemas/ChangeCodeSetBasedClassificationRuleRequest"
          LIKE: "#/components/schemas/ChangeSingleValuedClassificationRuleRequest"
          GREATER_THAN: "#/components/schemas/ChangeSingleValuedClassificationRuleRequest"
          LESS_THAN: "#/components/schemas/ChangeSingleValuedClassificationRuleRequest"
          EQUAL: "#/components/schemas/ChangeSingleValuedClassificationRuleRequest"
          BETWEEN: "#/components/schemas/ChangeBetweenClassificationRuleRequest"
    ChangeClassificationRuleWithFileRequest:
      type: object
      description: |
        Request to change a `Classification Rule` with file.
      oneOf:
      - $ref: "#/components/schemas/ChangeListOfValuesWithFileBasedClassificationRuleRequest"
      discriminator:
        propertyName: type
        mapping:
          LIST_OF_VALUES: "#/components/schemas/ChangeListOfValuesWithFileBasedClassificationRuleRequest"
    MergeDataClassesRequest:
      type: object
      description: |
        Request to merge `Data Classes` with a specific `Data Class`.
      required:
      - targetDataClass
      - dataClassesToBeMerged
      properties:
        targetDataClass:
          $ref: "#/components/schemas/TargetDataClassName"
        dataClassesToBeMerged:
          $ref: "#/components/schemas/ToBeMergedDataClassIds"
    ChangeDataClassGroupRequest:
      type: object
      description: |
        Request to update a `Data Class Group`.

        All the attributes are optional.
      properties:
        name:
          $ref: "#/components/schemas/DataClassGroupName"
        dataClasses:
          $ref: "#/components/schemas/DataClassIds"
    AddDataClassGroupRequest:
      type: object
      description: |
        Request to create a `Data Class Group`.

        Only the `name` property is mandatory. If no data classes are defined, the group is created empty.
      required:
      - name
      properties:
        name:
          $ref: "#/components/schemas/DataClassGroupName"
        dataClasses:
          $ref: "#/components/schemas/DataClassIds"
    AddClassificationRuleRequest:
      description: "Request to create a `Classification Rule` under an existing `Data\
        \ Class`. \n\nOnly the `type` and `dataClassId` properties are mandatory when\
        \ creating a new `Classification Rule`.\n"
      oneOf:
      - $ref: "#/components/schemas/SingleValuedClassificationRule"
      - $ref: "#/components/schemas/RegularExpressionBasedClassificationRule"
      - $ref: "#/components/schemas/DataTypeBasedClassificationRule"
      - $ref: "#/components/schemas/InlineListOfValuesBasedClassificationRule"
      - $ref: "#/components/schemas/InlineCsvListOfValuesBasedClassificationRule"
      - $ref: "#/components/schemas/BetweenClassificationRule"
      - $ref: "#/components/schemas/CodeSetBasedClassificationRule"
      discriminator:
        propertyName: type
        mapping:
          REGULAR_EXPRESSION: "#/components/schemas/RegularExpressionBasedClassificationRule"
          REGULAR_EXPRESSION_COLUMN_NAME: "#/components/schemas/RegularExpressionBasedClassificationRule"
          DATA_TYPE: "#/components/schemas/DataTypeBasedClassificationRule"
          LIST_OF_VALUES_INLINE_ARRAY: "#/components/schemas/InlineListOfValuesBasedClassificationRule"
          LIST_OF_VALUES_INLINE_CSV: "#/components/schemas/InlineCsvListOfValuesBasedClassificationRule"
          CODE_SET: "#/components/schemas/CodeSetBasedClassificationRule"
          LIKE: "#/components/schemas/SingleValuedClassificationRule"
          GREATER_THAN: "#/components/schemas/SingleValuedClassificationRule"
          LESS_THAN: "#/components/schemas/SingleValuedClassificationRule"
          EQUAL: "#/components/schemas/SingleValuedClassificationRule"
          BETWEEN: "#/components/schemas/BetweenClassificationRule"
    AddClassificationRuleWithFileRequest:
      type: object
      description: "Request to create a `Classification Rule` under an existing `Data\
        \ Class` with file. \n\nOnly the `type` and `dataClassId` properties are mandatory\
        \ when creating a new `Classification Rule`.\n"
      oneOf:
      - $ref: "#/components/schemas/ListOfValuesWithFileBasedClassificationRule"
      discriminator:
        propertyName: type
        mapping:
          LIST_OF_VALUES: "#/components/schemas/ListOfValuesWithFileBasedClassificationRule"
    BaseClassificationRuleWithId:
      type: object
      required:
      - id
      - createdBy
      - createdOn
      - lastModifiedBy
      - lastModifiedOn
      properties:
        id:
          $ref: "#/components/schemas/ClassificationRuleId"
        createdBy:
          $ref: "#/components/schemas/CreatedBy"
        createdOn:
          $ref: "#/components/schemas/CreatedOn"
        lastModifiedBy:
          $ref: "#/components/schemas/LastModifiedBy"
        lastModifiedOn:
          $ref: "#/components/schemas/LastModifiedOn"
    BaseClassificationRule:
      type: object
      required:
      - type
      - dataClassId
      properties:
        type:
          $ref: "#/components/schemas/RuleType"
        dataClassId:
          $ref: "#/components/schemas/DataClassId"
        description:
          $ref: "#/components/schemas/ClassificationRuleDescription"
    BaseChangeClassificationRuleRequest:
      type: object
      required:
      - type
      properties:
        type:
          $ref: "#/components/schemas/RuleType"
        description:
          $ref: "#/components/schemas/ClassificationRuleDescription"
    ClassificationRuleWithId:
      description: |
        A `ClassificationRule` defines a read-only representation of a rule.
      oneOf:
      - $ref: "#/components/schemas/SingleValuedClassificationRuleWithId"
      - $ref: "#/components/schemas/RegularExpressionBasedClassificationRuleWithId"
      - $ref: "#/components/schemas/DataTypeBasedClassificationRuleWithId"
      - $ref: "#/components/schemas/ListOfValuesBasedClassificationRuleWithId"
      - $ref: "#/components/schemas/BetweenClassificationRuleWithId"
      - $ref: "#/components/schemas/CodeSetBasedClassificationRuleWithId"
      discriminator:
        propertyName: type
        mapping:
          REGULAR_EXPRESSION: "#/components/schemas/RegularExpressionBasedClassificationRuleWithId"
          REGULAR_EXPRESSION_COLUMN_NAME: "#/components/schemas/RegularExpressionBasedClassificationRuleWithId"
          DATA_TYPE: "#/components/schemas/DataTypeBasedClassificationRuleWithId"
          LIST_OF_VALUES: "#/components/schemas/ListOfValuesBasedClassificationRuleWithId"
          CODE_SET: "#/components/schemas/CodeSetBasedClassificationRuleWithId"
          LIKE: "#/components/schemas/SingleValuedClassificationRuleWithId"
          GREATER_THAN: "#/components/schemas/SingleValuedClassificationRuleWithId"
          LESS_THAN: "#/components/schemas/SingleValuedClassificationRuleWithId"
          EQUAL: "#/components/schemas/SingleValuedClassificationRuleWithId"
          BETWEEN: "#/components/schemas/BetweenClassificationRuleWithId"
    BaseSingleValuedClassificationRule:
      type: object
      properties:
        value:
          $ref: "#/components/schemas/Value"
    SingleValuedClassificationRule:
      allOf:
      - $ref: "#/components/schemas/BaseClassificationRule"
      - $ref: "#/components/schemas/BaseSingleValuedClassificationRule"
    ChangeSingleValuedClassificationRuleRequest:
      allOf:
      - $ref: "#/components/schemas/BaseChangeClassificationRuleRequest"
      - $ref: "#/components/schemas/BaseSingleValuedClassificationRule"
    SingleValuedClassificationRuleWithId:
      allOf:
      - $ref: "#/components/schemas/BaseClassificationRuleWithId"
      - $ref: "#/components/schemas/SingleValuedClassificationRule"
    BaseRegularExpressionBasedClassificationRule:
      type: object
      properties:
        regularExpression:
          $ref: "#/components/schemas/RegularExpression"
    RegularExpressionBasedClassificationRule:
      allOf:
      - $ref: "#/components/schemas/BaseClassificationRule"
      - $ref: "#/components/schemas/BaseRegularExpressionBasedClassificationRule"
    ChangeRegularExpressionBasedClassificationRuleRequest:
      allOf:
      - $ref: "#/components/schemas/BaseChangeClassificationRuleRequest"
      - $ref: "#/components/schemas/BaseRegularExpressionBasedClassificationRule"
    RegularExpressionBasedClassificationRuleWithId:
      allOf:
      - $ref: "#/components/schemas/BaseClassificationRuleWithId"
      - $ref: "#/components/schemas/RegularExpressionBasedClassificationRule"
    BaseDataTypeBasedClassificationRule:
      type: object
      properties:
        dataTypes:
          type: array
          description: The list of data types defining this rule.
          items:
            $ref: "#/components/schemas/DataType"
    DataTypeBasedClassificationRule:
      allOf:
      - $ref: "#/components/schemas/BaseClassificationRule"
      - $ref: "#/components/schemas/BaseDataTypeBasedClassificationRule"
    ChangeDataTypeBasedClassificationRuleRequest:
      allOf:
      - $ref: "#/components/schemas/BaseChangeClassificationRuleRequest"
      - $ref: "#/components/schemas/BaseDataTypeBasedClassificationRule"
    DataTypeBasedClassificationRuleWithId:
      allOf:
      - $ref: "#/components/schemas/BaseClassificationRuleWithId"
      - $ref: "#/components/schemas/DataTypeBasedClassificationRule"
    BaseInlineListOfValuesBasedClassificationRule:
      type: object
      properties:
        values:
          $ref: "#/components/schemas/Values"
    InlineListOfValuesBasedClassificationRule:
      description: |
        `Classification Rule` based on a `List Of Values` defined inline as an array of values.
      allOf:
      - $ref: "#/components/schemas/BaseClassificationRule"
      - $ref: "#/components/schemas/BaseInlineListOfValuesBasedClassificationRule"
    ListOfValuesWithFileBasedClassificationRule:
      description: |
        `Classification Rule` based on a `List Of Values` defined as a file with values.
      type: object
      required:
      - type
      - dataClassId
      properties:
        type:
          $ref: "#/components/schemas/FileRuleType"
        dataClassId:
          $ref: "#/components/schemas/DataClassId"
        description:
          $ref: "#/components/schemas/ClassificationRuleDescription"
    ChangeListOfValuesWithFileBasedClassificationRuleRequest:
      description: |
        `Classification Rule` based on a `List Of Values` defined as a file with values.
      type: object
      required:
      - type
      properties:
        type:
          $ref: "#/components/schemas/FileRuleType"
        description:
          $ref: "#/components/schemas/ClassificationRuleDescription"
    ChangeInlineListOfValuesBasedClassificationRuleRequest:
      description: |
        `Classification Rule` based on a `List Of Values` defined inline as an array of values.
      allOf:
      - $ref: "#/components/schemas/BaseChangeClassificationRuleRequest"
      - $ref: "#/components/schemas/BaseInlineListOfValuesBasedClassificationRule"
    BaseInlineCsvListOfValuesBasedClassificationRule:
      type: object
      properties:
        value:
          $ref: "#/components/schemas/ValuesAsCsv"
    InlineCsvListOfValuesBasedClassificationRule:
      type: object
      description: |
        `Classification Rule` based on a `List Of Values` defined as a single value in CSV format.
      allOf:
      - $ref: "#/components/schemas/BaseClassificationRule"
      - $ref: "#/components/schemas/BaseInlineCsvListOfValuesBasedClassificationRule"
    ChangeInlineCsvListOfValuesBasedClassificationRuleRequest:
      type: object
      description: |
        `Classification Rule` based on a `List Of Values` defined as a single value in CSV format.
      allOf:
      - $ref: "#/components/schemas/BaseChangeClassificationRuleRequest"
      - $ref: "#/components/schemas/BaseInlineCsvListOfValuesBasedClassificationRule"
    BaseBetweenClassificationRule:
      type: object
      properties:
        minValueInclusive:
          $ref: "#/components/schemas/Value"
        maxValueInclusive:
          $ref: "#/components/schemas/Value"
    BetweenClassificationRule:
      allOf:
      - $ref: "#/components/schemas/BaseClassificationRule"
      - $ref: "#/components/schemas/BaseBetweenClassificationRule"
    ChangeBetweenClassificationRuleRequest:
      allOf:
      - $ref: "#/components/schemas/BaseChangeClassificationRuleRequest"
      - $ref: "#/components/schemas/BaseBetweenClassificationRule"
    BetweenClassificationRuleWithId:
      allOf:
      - $ref: "#/components/schemas/BaseClassificationRuleWithId"
      - $ref: "#/components/schemas/BetweenClassificationRule"
    BaseListOfValuesBasedClassificationRule:
      type: object
      properties:
        listOfValues:
          $ref: "#/components/schemas/ListOfValues"
    ListOfValuesBasedClassificationRule:
      description: |
        `Classification Rule` based on a `List Of Values`.
      allOf:
      - $ref: "#/components/schemas/BaseClassificationRule"
      - $ref: "#/components/schemas/BaseListOfValuesBasedClassificationRule"
    ChangeListOfValuesBasedClassificationRuleRequest:
      description: |
        `Classification Rule` based on a `List Of Values`.
      allOf:
      - $ref: "#/components/schemas/BaseChangeClassificationRuleRequest"
      - $ref: "#/components/schemas/BaseListOfValuesBasedClassificationRule"
    ListOfValuesBasedClassificationRuleWithId:
      allOf:
      - $ref: "#/components/schemas/BaseClassificationRuleWithId"
      - $ref: "#/components/schemas/ListOfValuesBasedClassificationRule"
    BaseCodeSetBasedClassificationRule:
      type: object
      properties:
        codeSet:
          $ref: "#/components/schemas/CodeSet"
    CodeSetBasedClassificationRule:
      allOf:
      - $ref: "#/components/schemas/BaseClassificationRule"
      - $ref: "#/components/schemas/BaseCodeSetBasedClassificationRule"
    ChangeCodeSetBasedClassificationRuleRequest:
      allOf:
      - $ref: "#/components/schemas/BaseChangeClassificationRuleRequest"
      - $ref: "#/components/schemas/BaseCodeSetBasedClassificationRule"
    CodeSetBasedClassificationRuleWithId:
      allOf:
      - $ref: "#/components/schemas/BaseClassificationRuleWithId"
      - $ref: "#/components/schemas/CodeSetBasedClassificationRule"
    ValuePagedResponse:
      type: object
      properties:
        nextCursor:
          type: string
          description: An opaque cursor that can be used to query the next page of
            results.
          example: 234iurjfklsefhr2cil3459jf
        results:
          type: array
          description: The list of results.
          items:
            $ref: "#/components/schemas/Value"
    DataClassPagedResponse:
      type: object
      properties:
        total:
          type: integer
          description: The total number of results.
          example: 1
        results:
          type: array
          description: The list of results.
          items:
            $ref: "#/components/schemas/DataClass"
    ClassificationRulePagedResponse:
      type: object
      properties:
        results:
          type: array
          description: The list of results.
          items:
            $ref: "#/components/schemas/ClassificationRuleWithId"
    DataClassGroupPagedResponse:
      type: object
      properties:
        results:
          type: array
          description: The list of results.
          items:
            $ref: "#/components/schemas/DataClassGroup"
    DataClassName:
      type: string
      description: |
        Name of the `Data Class`.
      example: email
    DataClassDescription:
      type: string
      description: |
        The description of the `Data Class`. The maximum length of this field is set to 10,000 characters.
      example: Email address
    DataClassStatus:
      type: string
      description: |
        The status of a `Data Class`.

        This attribute allows a `Data Class` to be `ENABLED` or `DISABLED`.
        An `DISABLED` `Data Class` will never be used as part of the classification process.

        Possible values:
        - `ENABLED`
        - `DISABLED`
      example: ENABLED
    CodeSetId:
      type: string
      format: uuid
      description: |
        The ID of a `Code Set` asset defined.
    DataClassId:
      type: string
      format: uuid
      description: |
        The ID of the `Data Class`.
    ClassificationRuleId:
      type: string
      format: uuid
      description: |
        The ID of a `Classification Rule`.
    TargetDataClassName:
      type: string
      description: |
        The name of a `Data Class`. Following the merge operation, only this specific `Data Class` will remain. If it doesn't exist, a new data class will be created.
    DataClassIds:
      type: array
      description: |
        IDs of the `Data Classes` contained in the `Data Class Group`.
      items:
        $ref: "#/components/schemas/DataClassId"
    ToBeMergedDataClassIds:
      type: array
      description: |
        The IDs of the `Data Classes` to be merged. At the end of the merge operation, those `Data Classes` will be deleted.
      items:
        $ref: "#/components/schemas/DataClassId"
      minItems: 1
    ClassificationRules:
      type: array
      description: |
        `Classification Rules` defined for the `Data Class`.
      items:
        $ref: "#/components/schemas/ClassificationRuleWithId"
    RuleType:
      type: string
      example: REGULAR_EXPRESSION
      description: "RuleType used by the rule.\n\nThe following values are currently\
        \ supported:\n  - `REGULAR_EXPRESSION`\n  - `REGULAR_EXPRESSION_COLUMN_NAME`\n\
        \  - `DATA_TYPE`\n  - `LIST_OF_VALUES`\n  - `CODE_SET`\n  - `LIKE`\n  - `GREATER_THAN`\n\
        \  - `LESS_THAN` \n  - `EQUAL`\n  - `BETWEEN`\n\nWhen **creating** or **updating**\
        \ a `Classification Rule`, the following values are also supported:\n  - `LIST_OF_VALUES_INLINE_ARRAY`\n\
        \  - `LIST_OF_VALUES_INLINE_CSV`\n\nThese additional types are automatically\
        \ converted into `LIST_OF_VALUES` and will be retrieved as such with GET endpoints.\n"
    FileRuleType:
      type: string
      example: LIST_OF_VALUES
      description: |
        RuleType used in case of creating or updating rule with file.

        The following values are currently supported:
          - `LIST_OF_VALUES`
    RegularExpression:
      type: string
      description: |
        A regular expression. The maximum length of this field is set to 10,000 characters.
      example: "/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/."
    DataType:
      type: string
      description: |
        A data type.
      example:
      - string
      - double
      - int
      - boolean
      - date
      - timestamp
    ClassificationRuleDescription:
      type: string
      description: |
        A description of a `Classification Rule`.
      example: Rule based on the email address regular expression.
    Value:
      type: string
      description: |
        Value used by the `Classification Rule`.
      example: "/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/."
    Values:
      type: array
      items:
        type: string
      maxItems: 1000
      description: "Values defined as an array of strings. \n\nThis array has a maximum\
        \ size of 1,000 values.\nTo provide more than 1,000 values, provide them via\
        \ file instead.\n"
      example:
      - BE
      - FR
      - NL
    FirstValues:
      type: array
      items:
        type: string
      maxItems: 1000
      description: |
        Values defined as an array of strings. Contains the first 1,000 values.
      example:
      - BE
      - FR
      - NL
    ValuesAsCsv:
      type: string
      description: "Values defined as a CSV-formatted string in which each value is\
        \ defined one a separate line.\n\nThe following characters are supported as\
        \ valid value separators:\n- Carriage return (aka `CR`  or `\\r`) \n- Line\
        \ feed (aka `LF` or `\\n`)\n- The end of line sequence composed of those 2\
        \ characters (aka `EOL` or `\\r\\n`)\n"
      example: |
        value1
        value2
        value3
        value4
    ColumnNameFilters:
      type: array
      items:
        type: string
      default: []
      example:
      - email
      - e-mail
      description: |
        The `Data Class` is considered only if the column name is a full or partial match with the value of this property.

        It is not case sensitive and it is using a text match (not a regular expression).

        Any match will make the `Data Class` considered.
    ColumnTypeFilters:
      type: array
      items:
        type: string
      default: []
      description: |
        The `Data Class` can only be considered if the column technical data type is part of the values defined for this property.

        Valid values are: `string`, `double`, `int`, `boolean`, `date`, and `timestamp`.
      example:
      - string
      - double
    AllowNullValues:
      type: boolean
      description: |
        If the value is set to `true`, null values are considered when calculating the confidence level of a matching `Data Class`.

        If the value is set to `false`, only the non-null values are considered by the classification process and are taken into account when calculating the confidence level of a matching `Data Class`.
      default: false
    AllowEmptyValues:
      type: boolean
      description: |
        If the value is set to `true`, empty values are considered by the classification process and are taken into account when calculating the confidence level of a matching `Data Class`.

        If the value is set to `false`, only the non-empty values are considered by the classification process and are taken into account when calculating the confidence level of a matching `Data Class`.
      default: false
    ConfidenceThreshold:
      type: integer
      description: The Data Class is only considered in the result if this confidence
        threshold is reached.
      default: 0
      minimum: 0
      maximum: 100
    ValueCount:
      type: integer
      description: The number of values defined in the rule
      default: 0
      minimum: 0
    Examples:
      type: array
      default: []
      items:
        type: string
      description: |
        Examples of values that match the `Data Class`.
      example:
      - john.doe@acme.com
      - marc@company.com
    DataClassGroupId:
      type: string
      format: uuid
      description: |
        The ID of the `Data Class Group`.
    DataClassGroupName:
      type: string
      description: |
        Name of the `Data Class Group`.
      example: PII Data Classes
    CreatedBy:
      type: string
      description: The id of the user that created this resource.
      format: uuid
      example: 4d250cc5-e583-4640-9874-b93d82c7a6cb
    CreatedOn:
      type: integer
      description: The timestamp (in UTC time standard) of the creation of this resource.
      format: int64
      example: 1475503010320
    LastModifiedBy:
      type: string
      description: The id of the user who modified this resource the last time.
      format: uuid
      example: a073ff90-e7bc-4b35-ba90-c4d475f642fe
    LastModifiedOn:
      type: integer
      description: The timestamp (in UTC time standard) of the last modification of
        this resource.
      format: int64
      example: 1476703764163
    StandardErrorResponse:
      type: object
      properties:
        statusCode:
          type: integer
          description: An HTTP response code.
          example: 400
        titleMessage:
          type: string
          description: A translated message.
          example: Invalid request
        helpMessage:
          type: string
          description: A translated message.
          example: Do this or do that
        userMessage:
          type: string
          description: A translated message.
          example: This has happened.
        errorCode:
          type: string
          description: An error code. This error code is not translated.
          example: dataClassWithSameNameAlreadyExists
    OotbDataClass:
      type: object
      required:
      - name
      - status
      - types
      properties:
        name:
          type: string
          description: The name of OOTB Data Class
          example: SSN
        status:
          type: string
          description: |
            The import status of OOTB Data Class.

            Values can be:
            - `NEW`
            - `EXISTS`
            - `EXISTS-DIFFERENT`
          example: EXISTS
        types:
          type: array
          items:
            type: string
          description: |
            Types of rules currently associated to the OOTB Data Class if any
          example:
          - REGULAR_EXPRESSION
          - LIST_OF_VALUES
    OotbDataClassPagedResponse:
      type: object
      required:
      - results
      properties:
        results:
          type: array
          description: List of OOTB Data Classes paginated
          items:
            $ref: "#/components/schemas/OotbDataClass"
    DataClasses:
      type: array
      description: Out-of-the-box Data Classes import response
      items:
        $ref: "#/components/schemas/DataClass"
  responses:
    InvalidRequest400:
      description: The request is not valid.
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/StandardErrorResponse"
          example:
            statusCode: 400
            titleMessage: Invalid Request
            helpMessage: Please check the application logs for more information.
            userMessage: The request is not valid.
            errorCode: invalidRequest
    InvalidRequest500:
      description: An unexpected error occurred.
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/StandardErrorResponse"
          example:
            statusCode: 500
            titleMessage: Unexpected error
            helpMessage: Please check the application logs for more information.
            userMessage: Something went wrong.
            errorCode: unexpectedError
    InvalidRequest401:
      description: The client is not authenticated.
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/StandardErrorResponse"
          example:
            statusCode: 401
            titleMessage: Unauthorized
            helpMessage: Please check the application logs for more information.
            userMessage: Failed to authenticate request through basic credentials
            errorCode: authenticationFailed
    InvalidRequest403:
      description: The user lacks permissions.
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/StandardErrorResponse"
          example:
            statusCode: 403
            titleMessage: Forbidden
            helpMessage: Please check the application logs for more information.
            userMessage: The user does not have the required permissions.
            errorCode: authorizationFailed
    InvalidRequest404:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/StandardErrorResponse"
          example:
            statusCode: 404
            titleMessage: Not Found
            helpMessage: Please check the application logs for more information.
            userMessage: The resource could not be found
            errorCode: Not found
  examples:
    DataClassWithNameOnly:
      summary: Data Class that does not include a rule
      value:
        id: 4fd664f5-a987-4769-ac0a-50d33e081a03
        name: Email Address
        status: ENABLED
        columnNameFilters: []
        columnTypeFilters: []
        allowNullValues: false
        allowEmptyValues: false
        confidenceThreshold: 50
        examples: []
        createdBy: c4391a65-38ba-4b83-97fe-218811bf1b18
        createdOn: 1475503010320
        lastModifiedBy: c4391a65-38ba-4b83-97fe-218811bf1b18
        lastModifiedOn: 1475503010320
    DataClassWithBasicView:
      summary: Basic view of a Data Class (No Classification Rule included)
      description: |
        In this example, the `Classification Rules` of the `Data Class` are not returned.
      value:
        id: c20f183c-ca24-441c-ad96-aee5566ff2e9
        name: Country
        status: ENABLED
        columnNameFilters: []
        columnTypeFilters: []
        allowNullValues: false
        allowEmptyValues: false
        confidenceThreshold: 50
        examples:
        - IT
        - Poland
        - "Belgium,BE"
        createdBy: 078c598b-229b-4cd1-9802-5a5f2ee68dbd
        createdOn: 1681298659002
        lastModifiedBy: 078c598b-229b-4cd1-9802-5a5f2ee68dbd
        lastModifiedOn: 1681298659002
    DataClassWithMultipleValuesRule:
      summary: Extended view of a Data Class (with Classification Rules included)
      description: |
        In this example, the `Classification Rule` is of type `LIST_OF_VALUES`. The first 100 values, as well as the count of values are included.

        To retrieve the rules of the `Data Class`, the `view=extended` parameter has been provided to the endpoint.
      value:
        id: c20f183c-ca24-441c-ad96-aee5566ff2e9
        name: Country
        status: ENABLED
        columnNameFilters: []
        columnTypeFilters: []
        allowNullValues: false
        allowEmptyValues: false
        confidenceThreshold: 50
        examples:
        - IT
        - Poland
        - "Belgium,BE"
        rules:
        - id: f914145f-4356-4e5d-9fe9-b2d666d5db79
          dataClassId: c20f183c-ca24-441c-ad96-aee5566ff2e9
          type: LIST_OF_VALUES
          listOfValues:
            valueCount: 3
            firstValues:
            - CountryShort
            - CountryLong
            - CountryShortLong
          createdBy: 078c598b-229b-4cd1-9802-5a5f2ee68dbd
          createdOn: 1681298659002
          lastModifiedBy: 078c598b-229b-4cd1-9802-5a5f2ee68dbd
          lastModifiedOn: 1681298659002
        createdBy: 078c598b-229b-4cd1-9802-5a5f2ee68dbd
        createdOn: 1681298659002
        lastModifiedBy: 078c598b-229b-4cd1-9802-5a5f2ee68dbd
        lastModifiedOn: 1681298659002
    SingleDataClassAsResults:
      summary: Only a single Data Class is returned.
      description: "In this example, a single `Data Class` is returned.  \nThe `Classification\
        \ Rules` defined for this `Data Class` are not returned via this endpoint.\n"
      value:
        total: 1
        results:
        - id: 1de748bc-a0b2-4d13-9c99-7225419edeeb
          name: Email Address
          status: ENABLED
          columnNameFilters: []
          columnTypeFilters: []
          allowNullValues: false
          allowEmptyValues: false
          confidenceThreshold: 50
          examples: []
          createdBy: c4391a65-38ba-4b83-97fe-218811bf1b18
          createdOn: 1475503010320
          lastModifiedBy: c4391a65-38ba-4b83-97fe-218811bf1b18
          lastModifiedOn: 1475503010320
    MultipleDataClassesAsResults:
      summary: Multiple Data Classes are returned.
      description: |
        In this example, multiple `Data Classes` are returned.
        The `Classification Rules` defined for this `Data Class` are not returned via this endpoint since the `basic` view has been requested.
      value:
        total: 3
        results:
        - id: 1de748bc-a0b2-4d13-9c99-7225419edeeb
          name: Email Address
          status: ENABLED
          columnNameFilters: []
          columnTypeFilters: []
          allowNullValues: false
          allowEmptyValues: false
          confidenceThreshold: 50
          examples: []
          createdBy: c4391a65-38ba-4b83-97fe-218811bf1b18
          createdOn: 1475503010320
          lastModifiedBy: c4391a65-38ba-4b83-97fe-218811bf1b18
          lastModifiedOn: 1475503010320
        - id: 1de748bc-a0b2-4d13-9c99-7225419edeec
          name: IBAN
          status: ENABLED
          columnNameFilters: []
          columnTypeFilters: []
          allowNullValues: false
          allowEmptyValues: false
          confidenceThreshold: 50
          examples: []
          createdBy: c4391a65-38ba-4b83-97fe-218811bf1b18
          createdOn: 1475503010320
          lastModifiedBy: c4391a65-38ba-4b83-97fe-218811bf1b18
          lastModifiedOn: 1475503010320
        - id: 1de748bc-a0b2-4d13-9c99-7225419edeed
          name: Country Codes
          status: ENABLED
          columnNameFilters: []
          columnTypeFilters: []
          allowNullValues: false
          allowEmptyValues: false
          confidenceThreshold: 50
          examples: []
          createdBy: c4391a65-38ba-4b83-97fe-218811bf1b18
          createdOn: 1475503010320
          lastModifiedBy: c4391a65-38ba-4b83-97fe-218811bf1b18
          lastModifiedOn: 1475503010320
    MultipleExtendedDataClassesAsResults:
      summary: Multiple Extended Data Classes are returned.
      description: |
        In this example, multiple `Data Classes` are returned.
        The `Classification Rules` defined for this `Data Class` are returned via this endpoint since the `view=extended` parameter has been provided.
      value:
        total: 3
        results:
        - id: 1de748bc-a0b2-4d13-9c99-7225419edeeb
          name: Email Address
          status: ENABLED
          columnNameFilters: []
          columnTypeFilters: []
          allowNullValues: false
          allowEmptyValues: false
          confidenceThreshold: 50
          examples:
          - jane.doe@gmail.com
          - john.smith@yahoo.fr
          rules:
          - id: b20be0cb-a26c-46bf-b0a7-784ea9f78492
            dataClassId: 1de748bc-a0b2-4d13-9c99-7225419edeeb
            type: REGULAR_EXPRESSION
            description: Standard email address regular expression.
            regularExpression: "/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\\
              .[a-zA-Z0-9-]+)*$/."
            createdBy: c4391a65-38ba-4b83-97fe-218811bf1b18
            createdOn: 1475503010320
            lastModifiedBy: c4391a65-38ba-4b83-97fe-218811bf1b18
            lastModifiedOn: 1475503010320
          createdBy: c4391a65-38ba-4b83-97fe-218811bf1b18
          createdOn: 1475503010320
          lastModifiedBy: c4391a65-38ba-4b83-97fe-218811bf1b18
          lastModifiedOn: 1475503010320
        - id: 1de748bc-a0b2-4d13-9c99-7225419edeec
          name: IBAN
          status: ENABLED
          columnNameFilters: []
          columnTypeFilters: []
          allowNullValues: false
          allowEmptyValues: false
          confidenceThreshold: 50
          examples:
          - DE89 3704 0044 0532 0130 00
          - AT61 1904 3002 3457 3201
          - FR14 2004 1010 0505 0001 3
          rules:
          - id: 1de748bc-a0b2-4d13-9c99-7225416edetr
            dataClassId: 1de748bc-a0b2-4d13-9c99-7225419edeec
            type: REGULAR_EXPRESSION
            description: Standard IBAN regular expression.
            regularExpression: "/[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[0-9]{7}([a-zA-Z0-9]?){0,16}/."
            createdBy: c4391a65-38ba-4b83-97fe-218811bf1b18
            createdOn: 1475503010320
            lastModifiedBy: c4391a65-38ba-4b83-97fe-218811bf1b18
            lastModifiedOn: 1475503010320
          createdBy: c4391a65-38ba-4b83-97fe-218811bf1b18
          createdOn: 1475503010320
          lastModifiedBy: c4391a65-38ba-4b83-97fe-218811bf1b18
          lastModifiedOn: 1475503010320
        - id: 1de748bc-a0b2-4d13-9c99-7225419edeed
          name: Country Codes
          status: ENABLED
          columnNameFilters: []
          columnTypeFilters: []
          allowNullValues: false
          allowEmptyValues: false
          confidenceThreshold: 50
          examples:
          - IT
          - BE
          - FR
          rules:
          - id: 2de748bc-a0b2-4d13-9c99-7225416edetr
            dataClassId: 1de748bc-a0b2-4d13-9c99-7225419edeed
            type: LIST_OF_VALUES
            listOfValues:
              valueCount: 3
              firstValues:
              - IT
              - BE
              - FR
            createdBy: c4391a65-38ba-4b83-97fe-218811bf1b18
            createdOn: 1475503010320
            lastModifiedBy: c4391a65-38ba-4b83-97fe-218811bf1b18
            lastModifiedOn: 1475503010320
          createdBy: c4391a65-38ba-4b83-97fe-218811bf1b18
          createdOn: 1475503010320
          lastModifiedBy: c4391a65-38ba-4b83-97fe-218811bf1b18
          lastModifiedOn: 1475503010320
    SingleClassificationRuleAsResults:
      summary: Only a single Classification Rule is returned.
      description: |
        In this example, a single `Classification Rule` is returned.
      value:
        results:
        - id: f914145f-4356-4e5d-9fe9-b2d666d5db73
          dataClassId: 930828ce-8f17-4a77-ae23-7081eed104a0
          description: Rule based on a sample list of values.
          valueCount: 5
          firstValues:
          - Value 1
          - Value 2
          - Value 3
          - Value 4
          - Value 5
          createdBy: c4391a65-38ba-4b83-97fe-218811bf1b18
          createdOn: 1475503010320
          lastModifiedBy: c4391a65-38ba-4b83-97fe-218811bf1b18
          lastModifiedOn: 1475503010320
    MultipleClassificationRulesAsResults:
      summary: Multiple Classification Rules are returned.
      description: |
        In this example, multiple `Classification Rules` are returned.
      value:
        results:
        - id: f914145f-4356-4e5d-9fe9-b2d666d5db73
          type: LIST_OF_VALUE
          dataClassId: 930828ce-8f17-4a77-ae23-7081eed104a0
          description: Rule based on a sample list of values.
          valueCount: 5
          firstValues:
          - Value 1
          - Value 2
          - Value 3
          - Value 4
          - Value 5
          createdBy: c4391a65-38ba-4b83-97fe-218811bf1b18
          createdOn: 1475503010320
          lastModifiedBy: c4391a65-38ba-4b83-97fe-218811bf1b18
          lastModifiedOn: 1475503010320
        - id: b20be0cb-a26c-46bf-b0a7-784ea9f78492
          type: REGULAR_EXPRESSION
          description: Standard email address regular expression.
          dataClassId: e8c8e107-442f-4ca9-a789-bb382e394b40
          regularExpression: "/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\\
            .[a-zA-Z0-9-]+)*$/."
          createdBy: c4391a65-38ba-4b83-97fe-218811bf1b18
          createdOn: 1475503010320
          lastModifiedBy: c4391a65-38ba-4b83-97fe-218811bf1b18
          lastModifiedOn: 1475503010320
        - id: b20be0cb-a26c-46bf-b0a7-784ea9f78495
          type: EQUAL
          dataClassId: e8c8e107-442f-4ca9-a789-bb382e394b40
          value: Morning
          createdBy: c4391a65-38ba-4b83-97fe-218811bf1b18
          createdOn: 1475503010320
          lastModifiedBy: c4391a65-38ba-4b83-97fe-218811bf1b18
          lastModifiedOn: 1475503010320
    SingleOotbDataClassAsResults:
      summary: Only a single OOTB Data Class is returned.
      value:
        results:
        - name: SSN
          types:
          - REGULAR_EXPRESSION
          status: EXISTS
    MultipleOotbDataClassesAsResults:
      summary: Multiple OOTB Data Classes are returned
      value:
        results:
        - name: SSN
          types:
          - REGULAR_EXPRESSION
          status: EXISTS
        - name: IBAN
          types:
          - REGULAR_EXPRESSION
          - LIST_OF_VALUES
          status: NEW
    DefaultInvalidRequest:
      summary: Default invalid request
      value:
        statusCode: 400
        titleMessage: Invalid Request
        helpMessage: Check the application logs for more information.
        userMessage: The request is not valid.
        errorCode: invalidRequest
    RuleWithValuesInvalidRequest:
      summary: Rule with values invalid request
      value:
        statusCode: 400
        titleMessage: Max number of inline values exceeded
        helpMessage: "The total number of inline values exceeds the maximum allowed\
          \ number of 1,000. To create a rule with more than 1,000 values, upload\
          \ a CSV file through the dedicated REST API."
        userMessage: The request contains a rule with more than the maximum allowed
          number of values.
        errorCode: invalidRequest
    TooManyValuesResponse:
      summary: Too many values in `List Of Value`
      value:
        statusCode: 400
        titleMessage: Max number of values exceeded
        helpMessage: "The total number of values in the list of values exceeds the\
          \ maximum allowed number of 1,000. To create a rule with more than 1,000\
          \ values, upload a file through dedicated REST API."
        userMessage: "The number of values exceeds the maximum allowed number of 1,000."
        errorCode: tooManyValues
    ClassificationRuleWithCodeSetAddRequest:
      summary: Request to create a Classification Rule based on a Code Set
      description: "In this example, the `Classification Rule` is of type `CODE_SET`\
        \ and \nincludes a reference to a `Code Set` asset.\n"
      value:
        type: CODE_SET
        dataClassId: e8c8e107-442f-4ca9-a789-bb382e394b40
        codeSet:
          id: f914145f-4356-4e5d-9fe9-b2d666d5db73
    ClassificationRuleWithCSVListOfValuesAddRequest:
      summary: Request to create a Classification Rule based on a List Of Values provided
        as CSV
      value:
        type: LIST_OF_VALUES_INLINE_CSV
        description: Sample list of values
        dataClassId: e8c8e107-442f-4ca9-a789-bb382e394b40
        values: |
          Value1
          Value2
          Value3
          Value4
    ClassificationRuleWithListOfValuesAddRequest:
      summary: Request to create a Classification Rule based on a List Of Values
      value:
        type: LIST_OF_VALUES
        dataClassId: e8c8e107-442f-4ca9-a789-bb382e394b40
        description: Sample list of values
        values:
        - Value 1
        - Value 2
        - Value 3
        - Value 4
        - Value 5
    ClassificationRuleWithListOfValuesChangeRequest:
      summary: Request to update a Classification Rule based on a List Of Values.
      description: |
        In this example, the `List Of Value` can be defined inline since it contains less than 1000 values.
      value:
        type: LIST_OF_VALUES
        values:
        - Value 1
        - Value 2
        - Value 3
        - Value 4
        - Value 5
    ClassificationRuleWithRegularExpressionAddRequest:
      summary: Request to create a Classification Rule based on a regular expression.
      value:
        type: REGULAR_EXPRESSION
        dataClassId: e8c8e107-442f-4ca9-a789-bb382e394b40
        description: Standard email address regular expression.
        regularExpression: "/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\\
          .[a-zA-Z0-9-]+)*$/."
    ClassificationRuleWithRegularExpressionChangeRequest:
      summary: Request to update a Classification Rule based on a regular expression.
      value:
        type: REGULAR_EXPRESSION
        regularExpression: "/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\\
          .[a-zA-Z0-9-]+)*$/."
    ClassificationRuleWithDataTypeAddRequest:
      summary: Request to create a Classification Rule based on a data type.
      value:
        type: DATA_TYPE
        dataClassId: e8c8e107-442f-4ca9-a789-bb382e394b40
        description: Data class rule applying to date data type.
        dataTypes:
        - date
        - timestamp
    ClassificationRuleWithDataTypeChangeRequest:
      summary: Request to update a Classification Rule based on a data type.
      value:
        type: DATA_TYPE
        dataTypes:
        - date
        - timestamp
    ClassificationRuleBasedOnListOfValues:
      summary: Classification Rule based on a List Of Values
      value:
        id: f914145f-4356-4e5d-9fe9-b2d666d5db73
        type: LIST_OF_VALUES
        dataClassId: 930828ce-8f17-4a77-ae23-7081eed104a0
        description: Rule based on a sample list of values.
        listOfValues:
          valueCount: 5
          firstValues:
          - Value 1
          - Value 2
          - Value 3
          - Value 4
          - Value 5
        createdBy: c4391a65-38ba-4b83-97fe-218811bf1b18
        createdOn: 1475503010320
        lastModifiedBy: c4391a65-38ba-4b83-97fe-218811bf1b18
        lastModifiedOn: 1475503010320
    ClassificationRuleBasedOnRegularExpression:
      summary: Classification Rule based on a Regular Expression
      value:
        id: b20be0cb-a26c-46bf-b0a7-784ea9f78492
        type: REGULAR_EXPRESSION
        description: Standard email address regular expression.
        dataClassId: e8c8e107-442f-4ca9-a789-bb382e394b40
        regularExpression: "/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\\
          .[a-zA-Z0-9-]+)*$/."
        createdBy: c4391a65-38ba-4b83-97fe-218811bf1b18
        createdOn: 1475503010320
        lastModifiedBy: c4391a65-38ba-4b83-97fe-218811bf1b18
        lastModifiedOn: 1475503010320
    ClassificationRuleBasedOnSingleValue:
      summary: Classification Rule based on a single value
      value:
        id: b20be0cb-a26c-46bf-b0a7-784ea9f78495
        type: EQUAL
        dataClassId: e8c8e107-442f-4ca9-a789-bb382e394b40
        value: Morning
        createdBy: c4391a65-38ba-4b83-97fe-218811bf1b18
        createdOn: 1475503010320
        lastModifiedBy: c4391a65-38ba-4b83-97fe-218811bf1b18
        lastModifiedOn: 1475503010320
    ListOfValuesInUseResponse:
      summary: The `List Of Values` cannot be deleted since it is used in a `Classification
        Rule`
      value:
        statusCode: 400
        titleMessage: List of Value in use
        helpMessage: The list of value cannot be deleted since it is used by a classification
          rule.
        errorCode: listOfValueInUse
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: Collibra REST API authentication using Basic Authentication.
    jwtAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Collibra REST API authentication using JSON Web Token.
