openapi: 3.2.0 info: title: Catalog Reconciliation Rules API version: '1.0' description: API for managing the ADOC data catalog, including assets, asset metadata, tags, labels, sampling, lineage, and watched assets, as well as data reliability policies (data quality, reconciliation, data drift, schema drift, and related rule types) and their executions. Covers discovering and searching assets, retrieving asset configuration and activity, and creating, scheduling, and running policies against catalog assets. tags: - name: Reconciliation Rules paths: /catalog-server/api/rules/reconciliation/{identifier}: get: operationId: getReconciliationRule tags: - Reconciliation Rules summary: Get a reconciliation rule by ID or name description: 'Returns details of a reconciliation rule by its ID or name. Optionally specify a version or request only the last executed version. **Authorization**: requires `ASSET_VIEW` and `POLICY_VIEW`. **Version selection**: optional `version` query parameter. When `onlyExecutedVersion=true` and `version` is omitted, uses the last completed execution''s rule version. Invalid `version` values are ignored.' parameters: - name: identifier in: path description: Policy ID (numeric) or policy name required: true schema: type: string - name: accessKey in: header description: API access key generated from ADOC UI required: true schema: type: string - name: secretKey in: header description: API secret key generated from ADOC UI required: true schema: type: string - name: Accept in: header description: Always set to application/json required: true schema: type: string - name: version in: query description: Specific policy version (optional; invalid values ignored) schema: type: integer - name: onlyExecutedVersion in: query description: When true and version omitted, return last executed version schema: type: boolean responses: '200': description: Reconciliation rule details content: application/json: schema: $ref: '#/components/schemas/Reconciliation.RuleResponse' '404': description: 'Policy not found (identifier did not resolve), or Reconciliation policy rule with id {ruleId} not found' '422': description: Entity is not a reconciliation rule. /catalog-server/api/rules/reconciliation/{id}/executions: post: operationId: triggerReconciliationExecution tags: - Reconciliation Rules summary: Trigger a reconciliation rule execution description: 'This endpoint triggers execution of a Reconciliation policy by numeric rule ID. #### Request Body - `markerConfigs` (array of objects): An array of marker configurations containing asset ID, marker type, and other details. - `assetId` (number): The ID of the asset. - `markerConfig` (object, optional): Only required for SELECTIVE profiling. It is a configuration object used to define different types of bounds for policy execution selectively. The `type`attribute determines the structure and required fields of the `markerConfig` object. Below are the possible types and their configurations: - Type: `TimestampBasedMarkerConfig`: This configuration is applicable to Kafka asset-based policies. It utilizes the offset associated with the specified timestamp to determine data bounds for policy execution. - **type**: `"TimestampBasedMarkerConfig"` (string) - The type of the marker configuration. - **format**: (string) - The format of the date values. - **initialOffset**: (string) - The initial date offset for the bound. - **timeZoneId**: (string) - The time zone ID. - Type: `boundFileEvent`: Used to define bounds based on file events and dates. - **type**: `"boundFileEvent"` (string) - The type of the marker configuration. - **fromDate**: (string) - The start date and time for the bound, in the specified format. - **toDate**: (string) - The end date and time for the bound, in the specified format. - **timeZoneId**: (string) - The time zone ID. - Type: `bound`: Used to define bounds based on an ID range. - **type**: `"bound"` (string) - The type of the marker configuration. - **idColumnName**: (string) - The name of the column containing ID values. - **fromId**: (integer) - The start ID for the bound. - **toId**: (integer) - The end ID for the bound. - Type: `boundDateTime`: Used to define bounds based on date and time. - **type**: `"boundDateTime"` (string) - The type of the marker configuration. - **dateColumnName**: (string) - The name of the column containing date and time values. - **format**: (string) - The format of the date and time values. - **fromDate**: (string) - The start date and time for the bound, in the specified format. - **toDate**: (string) - The end date and time for the bound, in the specified format. - **timeZoneId**: (string) - The time zone ID. - `executionType` (string): The type of execution. - `analyticsPipelineId` (number): The ID of the analytics pipeline. - `sparkResourceConfig` (object): Configuration for Spark resources. - `yunikorn` (object): Configuration for YuniKorn resource manager. - `minExecutors` (number): Minimum number of executors. - `maxExecutors` (number): Maximum number of executors. - `executorCores` (number): Number of cores per executor. - `executorMemory` (string): Memory allocated to each executor. - `driverCores` (number): Number of cores for the driver. - `driverMemory` (string): Memory allocated to the driver. - `additionalConfiguration` (object): Additional configuration details. - `ruleItemSelections` (array of numbers): Array of rule item selections. - `includeInQualityScore` (boolean): Indicates whether to include in quality score. #### Response Body - `execution`: Object containing details of the execution including `analysisJob`, `analyticsPipelineId`, `dataPersistenceEnabled`, and more. - `items`: Array of items containing execution details such as `executionId`, `finishedAt`, `isError`, `leftAnalyticsPipelineName`, `rightAnalyticsPipelineName`, and more. **Authorization**: requires `ASSET_VIEW` and `POLICY_EXECUTE`. **Request body**: `PolicyExecutionRequest` — markerConfigs, executionType, analyticsPipelineId, sparkResourceConfig, ruleItemSelections, includeInQualityScore.' parameters: - name: id in: path description: Numeric rule ID required: true schema: type: integer - name: accessKey in: header description: API access key generated from ADOC UI required: true schema: type: string - name: secretKey in: header description: API secret key generated from ADOC UI required: true schema: type: string - name: Accept in: header description: Always set to application/json required: true schema: type: string - name: Content-Type in: header description: Always set to application/json required: true schema: type: string requestBody: description: Execution request configuration content: application/json: schema: $ref: '#/components/schemas/PolicyExecutionRequest' responses: '200': description: Execution details content: application/json: schema: $ref: '#/components/schemas/Reconciliation.Execution' '400': description: Custom SQL / dataplane compatibility validation failure '404': description: Rule not found., or Execution not found '422': description: Previous execution of rule '{name}' has not completed. Not running the rule. get: operationId: getReconciliationExecutions tags: - Reconciliation Rules summary: List executions for a reconciliation rule description: 'This endpoint retrieves the executions of a Reconciliation policy based on its id. ### Parameters - `id` (path, required): The unique identifier of the reconciliation rule. **Authorization**: requires `ASSET_VIEW` and `POLICY_VIEW`.' parameters: - name: id in: path description: Numeric rule ID required: true schema: type: integer - name: accessKey in: header description: API access key generated from ADOC UI required: true schema: type: string - name: secretKey in: header description: API secret key generated from ADOC UI required: true schema: type: string - name: Accept in: header description: Always set to application/json required: true schema: type: string - name: page in: query description: Page number (0-based, default 0) schema: type: integer - name: size in: query description: Number of items per page (default 25) schema: type: integer - name: sortBy in: query description: Sort field and direction (e.g., name:asc or createdAt:desc) schema: type: string responses: '200': description: Paginated list of reconciliation executions content: application/json: schema: $ref: '#/components/schemas/Reconciliation.ExecutionsResponse' '400': description: Bad Request — missing or non-numeric id /catalog-server/api/rules/reconciliation/{id}: put: operationId: updateReconciliationRule tags: - Reconciliation Rules summary: Update a reconciliation rule description: 'This endpoint is used to update an existing Reconciliation policy. #### Request Body - `rule` (object) - `enabled` (boolean, optional): Indicates whether the rule is enabled. - `name` (string, optional): The name of the rule. - `description` (string, optional): Description of the rule. - `thresholdLevel` (object) - `success` (number, optional): The success threshold level. - `warning` (number, optional): The warning threshold level. - `type` (string, optional): The type of the rule. - `scheduled` (boolean, optional): Indicates whether the rule is scheduled. - `leftBackingAsset` (object): Details of the left backing asset. - `tableAssetId` (number, optional): The table asset ID for the left backing asset. - `rightBackingAsset` (object): Details of the right backing asset. - `tableAssetId` (number, optional): The table asset ID for the right backing asset. - `timeSecondsOffset` (number, optional): Time seconds offset. - `notificationChannels` (object): Notification channel configuration. - `configuredNotificationGroupIds` (array): Configured notification group IDs. - `notifyOnSuccess` (boolean): Indicates whether to notify on success. - `alertsEnabled` (boolean): Indicates whether alerts are enabled. - `reNotifyFactor` (number): Re-notify factor. - `labels` (array of objects): Labels for the rule. - `policyGroups` (array of objects): Policy groups for the rule. - `items` (array of objects) - `measurementType` (string, optional): The measurement type. - `executionOrder` (number, optional): The execution order. - `mappings` (array of objects) - `leftColumnName` (string, optional): The left column name for mapping. - `operation` (string, optional): The operation for mapping. - `rightColumnName` (string, optional): The right column name for mapping. - `executionOrder` (number, optional): The execution order for mapping. - `useForJoining` (boolean, optional): Indicates whether to use for joining. - `ignoreNullValues` (boolean, optional): Indicates whether to ignore null values. - `weightage` (number, optional): The weightage for mapping. - `businessExplanation` (string, optional): Business explanation for mapping. - `isWarning` (boolean, optional): Indicates whether the mapping is a warning. - `labels` (array of objects): Labels for the mapping. **Authorization**: requires `ASSET_VIEW` and `POLICY_MODIFY`. **Request body**: `Reconciliation.RuleRequest` (same shape as create).' parameters: - name: id in: path description: Numeric rule ID required: true schema: type: integer - name: accessKey in: header description: API access key generated from ADOC UI required: true schema: type: string - name: secretKey in: header description: API secret key generated from ADOC UI required: true schema: type: string - name: Accept in: header description: Always set to application/json required: true schema: type: string - name: Content-Type in: header description: Always set to application/json required: true schema: type: string requestBody: description: Updated reconciliation rule content: application/json: schema: $ref: '#/components/schemas/Reconciliation.RuleRequest' responses: '200': description: Updated reconciliation rule content: application/json: schema: $ref: '#/components/schemas/Reconciliation.RuleResponse' '400': description: Bad Request — validation failure delete: operationId: deleteReconciliationRule tags: - Reconciliation Rules summary: Delete (archive) a reconciliation rule description: 'This endpoint is used to delete a specific Reconciliation policy by its id. **Authorization**: requires `ASSET_VIEW` and `POLICY_MODIFY`.' parameters: - name: id in: path description: Numeric rule ID required: true schema: type: integer - name: accessKey in: header description: API access key generated from ADOC UI required: true schema: type: string - name: secretKey in: header description: API secret key generated from ADOC UI required: true schema: type: string - name: Accept in: header description: Always set to application/json required: true schema: type: string - name: message in: query description: Optional archival reason schema: type: string responses: '204': description: Rule deleted successfully '404': description: Reconciliation policy rule with id {id} not found /catalog-server/api/rules/reconciliation/{id}/unarchive: post: operationId: unarchiveReconciliationRule tags: - Reconciliation Rules summary: Unarchive a reconciliation rule description: 'This endpoint is used to unarchive a reconciliation policy by its id. When users delete or rename a column of a table, which is associated with a policy, the policy is automatically archived by ADOC, not allowing users to execute it. To reuse the policy, users must unarchive the policy. **Authorization**: requires `ASSET_VIEW` and `POLICY_MODIFY`.' parameters: - name: id in: path description: Numeric rule ID required: true schema: type: integer - name: accessKey in: header description: API access key generated from ADOC UI required: true schema: type: string - name: secretKey in: header description: API secret key generated from ADOC UI required: true schema: type: string - name: Accept in: header description: Always set to application/json required: true schema: type: string responses: '200': description: Unarchived rule content: application/json: schema: $ref: '#/components/schemas/UnarchiveResponse' '404': description: 'Policy not found, or Reconciliation policy rule with id {ruleId} not found' /catalog-server/api/rules/reconciliation/{id}/schedule: put: operationId: setReconciliationSchedule tags: - Reconciliation Rules summary: Toggle schedule for a reconciliation rule description: 'This endpoint toggles the schedule status of a Reconciliation policy to enable or disable the policy. This toggle functionality allows users to control whether the Reconcliation policy runs at predefined intervals or remains inactive. **Authorization**: requires `ASSET_VIEW` and `POLICY_MODIFY`. **Note**: this route only applies the `scheduled` boolean from `ScheduleRequest`.' parameters: - name: id in: path description: Numeric rule ID required: true schema: type: integer - name: accessKey in: header description: API access key generated from ADOC UI required: true schema: type: string - name: secretKey in: header description: API secret key generated from ADOC UI required: true schema: type: string - name: Accept in: header description: Always set to application/json required: true schema: type: string - name: Content-Type in: header description: Always set to application/json required: true schema: type: string requestBody: description: Schedule configuration (scheduled boolean required) content: application/json: schema: $ref: '#/components/schemas/ScheduleRequest' responses: '200': description: Updated rule with schedule status content: application/json: schema: $ref: '#/components/schemas/Reconciliation.RuleResponse' '404': description: Rule not found. '422': description: Cron not configured, schedule state conflict, or wrong rule type /catalog-server/api/rules/reconciliation/executions/{id}: get: operationId: getReconciliationExecutionDetail tags: - Reconciliation Rules summary: Get reconciliation execution detail description: 'This endpoint retrieves the details of a Reconciliation policy execution based on the provided execution id. **Request Body** This request does not require a request body. **Response Body** - `execution` (object): Details of the reconciliation execution, including analysis job context, analytics pipeline ID, execution status, and other related information. - `analysisJob` (object): Information about the analysis job, such as job context, status, and timestamps. - `analyticsPipelineId` (number): ID of the analytics pipeline. - `dataPersistenceEnabled` (boolean): Indicates if data persistence is enabled for the execution. - `executionError` (null): Details of any execution error, if present. - `executionMode` (string): Mode of the execution. - `executionStatus` (string): Status of the execution. - `executionType` (string): Type of the execution. - `finishedAt` (string): Timestamp when the execution finished. - `id` (number): ID of the execution. - `includeInQualityScore` (boolean): Indicates if the execution is included in quality score calculations. - `isProtectedResource` (boolean): Indicates if the resource is protected. - `jobState` (string): State of the job. - `lastHealthUpdateAt` (string): Timestamp of the last health update. - `leftMarkerConfig` (object): Configuration for the left marker. - `markerConfig` (null): Marker configuration, if available. - `parentId` (null): ID of the parent execution, if applicable. - `participatingColumns` (array): List of participating columns. - `requestId` (string): ID of the request. - `resultPersistencePath` (object): Details of the result persistence path. - `resultStatus` (string): Status of the result. - `ruleId` (number): ID of the rule associated with the execution. - `ruleName` (string): Name of the rule. - `ruleSelectionEnabled` (boolean): Indicates if rule selection is enabled. - `ruleType` (string): Type of the rule. - `ruleVersion` (number): Version of the rule. - `startedAt` (string): Timestamp when the execution started. - `thresholdLevel` (object): Details of the threshold levels for success and warning. - `items` (array): List of items related to the execution, including details of left and right analytics pipeline, error information, and timestamps. **Authorization**: requires `ASSET_VIEW` and `POLICY_VIEW`.' parameters: - name: id in: path description: Numeric execution ID required: true schema: type: integer - name: accessKey in: header description: API access key generated from ADOC UI required: true schema: type: string - name: secretKey in: header description: API secret key generated from ADOC UI required: true schema: type: string - name: Accept in: header description: Always set to application/json required: true schema: type: string responses: '200': description: Execution detail content: application/json: schema: $ref: '#/components/schemas/Reconciliation.Execution' '404': description: Reconciliation policy rule Execution with id {executionId} not found /catalog-server/api/rules/reconciliation/executions/{id}/result: get: operationId: getReconciliationExecutionResult tags: - Reconciliation Rules summary: Get reconciliation execution result description: 'This endpoint retrieves the Reconciliation policy execution result by the policy id. **Authorization**: requires `ASSET_VIEW` and `POLICY_VIEW`.' parameters: - name: id in: path description: Numeric execution ID required: true schema: type: integer - name: accessKey in: header description: API access key generated from ADOC UI required: true schema: type: string - name: secretKey in: header description: API secret key generated from ADOC UI required: true schema: type: string - name: Accept in: header description: Always set to application/json required: true schema: type: string responses: '200': description: Execution result content: application/json: schema: $ref: '#/components/schemas/ExecutionResult' '404': description: Rule execution not found. /catalog-server/api/rules/reconciliation: post: operationId: createReconciliationRule tags: - Reconciliation Rules summary: Create a reconciliation rule description: 'This endpoint allows users to create a Reconciliation policy. #### Request Body - `rule` (object) - `enabled` (boolean, optional): Whether the rule is enabled. - `name` (string, optional): The name of the rule. - `description` (string, optional): Description of the rule. - `thresholdLevel` (object) - `success` (number, optional): Success threshold level. - `warning` (number, optional): Warning threshold level. - `type` (string, optional): The type of the rule. - `scheduled` (boolean, optional): Whether the rule is scheduled. - `leftBackingAsset` (object): Details of the left backing asset. - `tableAssetId` (number, optional): The table asset ID for the left backing asset. - `rightBackingAsset` (object): Details of the right backing asset. - `tableAssetId` (number, optional): The table asset ID for the right backing asset. - `timeSecondsOffset` (number, optional): Time seconds offset. - `notificationChannels` (object): Notification channel configuration. - `configuredNotificationGroupIds` (array): Configured notification group IDs. - `notifyOnSuccess` (boolean): Whether to notify on success. - `alertsEnabled` (boolean): Whether alerts are enabled. - `reNotifyFactor` (number): Re-notify factor. - `labels` (array of objects): Labels for the rule. - `policyGroups` (array of objects): Policy groups for the rule. - `items` (array of objects) - `measurementType` (string, optional): The measurement type. - `executionOrder` (number, optional): The execution order. - `mappings` (array of objects) - `leftColumnName` (string, optional): The left column name for mapping. - `operation` (string, optional): The operation for mapping. - `rightColumnName` (string, optional): The right column name for mapping. - `executionOrder` (number, optional): The execution order for mapping. - `useForJoining` (boolean, optional): Whether to use for joining. - `ignoreNullValues` (boolean, optional): Whether to ignore null values. - `weightage` (number, optional): The weightage for mapping. - `businessExplanation` (string, optional): Business explanation for mapping. - `isWarning` (boolean, optional): Whether the mapping is a warning. - `labels` (array of objects): Labels for the mapping. **Authorization**: requires `ASSET_VIEW` and `POLICY_CREATE`. **Request body**: `Reconciliation.RuleRequest` with: - `rule` (`ReconciliationRule`): left/right backing assets, thresholdLevel, notificationChannels, etc. - `items` (`Item[]`): measurementType, executionOrder - `mappings` (`ColumnMapping[]`): leftColumnName, rightColumnName, operation, useForJoining, weightage, etc. - optional `analyticsPipelineId`, `cloningDetails`' parameters: - name: accessKey in: header description: API access key generated from ADOC UI required: true schema: type: string - name: secretKey in: header description: API secret key generated from ADOC UI required: true schema: type: string - name: Accept in: header description: Always set to application/json required: true schema: type: string - name: Content-Type in: header description: Always set to application/json required: true schema: type: string requestBody: description: Reconciliation rule definition content: application/json: schema: $ref: '#/components/schemas/Reconciliation.RuleRequest' responses: '200': description: Created reconciliation rule content: application/json: schema: $ref: '#/components/schemas/Reconciliation.RuleResponse' '400': description: Bad Request — invalid policy name or validation failure get: operationId: listReconciliationRules tags: - Reconciliation Rules summary: List all reconciliation rules description: 'This endpoint retrieves policies for reconciliation from the catalog server. The request includes query parameters for pagination, with options to specify the page number, page size, and rule status. ### Request Body This request does not include a request body. ### Response Body The response includes a JSON object with a "meta" key containing count, page, and size information, and a "rules" key containing an array of policy objects. Each policy object includes details such as column mappings, execution order, measurement type, and other rule-specific information. **Authorization**: requires `ASSET_VIEW` and `POLICY_VIEW`.' parameters: - name: accessKey in: header description: API access key generated from ADOC UI required: true schema: type: string - name: secretKey in: header description: API secret key generated from ADOC UI required: true schema: type: string - name: Accept in: header description: Always set to application/json required: true schema: type: string - name: page in: query description: Page number (0-based, default 0) schema: type: integer - name: size in: query description: Number of items per page (default 25) schema: type: integer - name: sortBy in: query description: Sort field and direction (e.g., name:asc or createdAt:desc) schema: type: string responses: '200': description: Paginated list of reconciliation rules content: application/json: schema: $ref: '#/components/schemas/Reconciliation.RulesResponse' /catalog-server/api/rules/reconciliation/byName/{name}: put: operationId: updateReconciliationByName tags: - Reconciliation Rules summary: Update a reconciliation rule by name description: 'This endpoint updates a Reconciliation policy by its name. It requires the following parameters in the request body: #### Request Body - `rule` (object) - `enabled` (boolean, optional): Indicates whether the rule is enabled. - `name` (string, optional): The name of the rule. - `description` (string, optional): Description of the rule. - `thresholdLevel` (object) - `success` (number, optional): The success threshold level. - `warning` (number, optional): The warning threshold level. - `type` (string, optional): The type of the rule. - `scheduled` (boolean, optional): Indicates whether the rule is scheduled. - `leftBackingAsset` (object): Details of the left backing asset. - `tableAssetId` (number, optional): The table asset ID for the left backing asset. - `rightBackingAsset` (object): Details of the right backing asset. - `tableAssetId` (number, optional): The table asset ID for the right backing asset. - `timeSecondsOffset` (number, optional): Time seconds offset. - `notificationChannels` (object): Notification channel configuration. - `configuredNotificationGroupIds` (array): Configured notification group IDs. - `notifyOnSuccess` (boolean): Indicates whether to notify on success. - `alertsEnabled` (boolean): Indicates whether alerts are enabled. - `reNotifyFactor` (number): Re-notify factor. - `labels` (array of objects): Labels for the rule. - `policyGroups` (array of objects): Policy groups for the rule. - `items` (array of objects) - `measurementType` (string, optional): The measurement type. - `executionOrder` (number, optional): The execution order. - `mappings` (array of objects) - `leftColumnName` (string, optional): The left column name for mapping. - `operation` (string, optional): The operation for mapping. - `rightColumnName` (string, optional): The right column name for mapping. - `executionOrder` (number, optional): The execution order for mapping. - `useForJoining` (boolean, optional): Indicates whether to use for joining. - `ignoreNullValues` (boolean, optional): Indicates whether to ignore null values. - `weightage` (number, optional): The weightage for mapping. - `businessExplanation` (string, optional): Business explanation for mapping. - `isWarning` (boolean, optional): Indicates whether the mapping is a warning. - `labels` (array of objects): Labels for the mapping. **Authorization**: requires `ASSET_VIEW` and `POLICY_MODIFY`. **Request body**: `Reconciliation.RuleRequest`.' parameters: - name: name in: path description: Policy name required: true schema: type: string - name: accessKey in: header description: API access key generated from ADOC UI required: true schema: type: string - name: secretKey in: header description: API secret key generated from ADOC UI required: true schema: type: string - name: Accept in: header description: Always set to application/json required: true schema: type: string - name: Content-Type in: header description: Always set to application/json required: true schema: type: string requestBody: description: Updated reconciliation rule content: application/json: schema: $ref: '#/components/schemas/Reconciliation.RuleRequest' responses: '200': description: Updated reconciliation rule content: application/json: schema: $ref: '#/components/schemas/Reconciliation.RuleResponse' '404': description: 'Reconciliation Policy with the given name: {name} not found' delete: operationId: deleteReconciliationByName tags: - Reconciliation Rules summary: Delete (archive) a reconciliation rule by name description: 'This endpint deletes a specific Reconciliation policy by its name. **Authorization**: requires `ASSET_VIEW` and `POLICY_MODIFY`.' parameters: - name: name in: path description: Policy name required: true schema: type: string - name: accessKey in: header description: API access key generated from ADOC UI required: true schema: type: string - name: secretKey in: header description: API secret key generated from ADOC UI required: true schema: type: string - name: Accept in: header description: Always set to application/json required: true schema: type: string - name: message in: query description: Optional archival reason schema: type: string responses: '204': description: Rule deleted successfully '404': description: 'Policy with the given name: {name} not found, or Reconciliation policy rule with id {ruleId} not found' get: operationId: getReconciliationByName tags: - Reconciliation Rules summary: Get a reconciliation rule by name description: '### Get Policy by Name This endpoint retrieves details about a specific Reconciliation policy based on its `name`. **Authorization**: requires `ASSET_VIEW` and `POLICY_VIEW`.' parameters: - name: name in: path description: Policy name required: true schema: type: string - name: accessKey in: header description: API access key generated from ADOC UI required: true schema: type: string - name: secretKey in: header description: API secret key generated from ADOC UI required: true schema: type: string - name: Accept in: header description: Always set to application/json required: true schema: type: string - name: version in: query description: Specific policy version (optional; invalid values ignored) schema: type: integer - name: onlyExecutedVersion in: query description: When true and version omitted, return last executed version schema: type: boolean responses: '200': description: Reconciliation rule details content: application/json: schema: $ref: '#/components/schemas/Reconciliation.RuleResponse' '404': description: 'Policy with the given name: {name} not found, or Reconciliation policy rule with id {ruleId} not found' /catalog-server/api/rules/reconciliation/byName/{name}/schedule: put: operationId: setReconciliationScheduleByName tags: - Reconciliation Rules summary: Toggle schedule for a reconciliation rule by name description: 'This endpoint toggles the schedule status of a Reconciliation policy to enable or disable the scheduled execution of that policy. This toggle functionality allows users to control whether the policy runs at predefined intervals or remains inactive. **Authorization**: requires `ASSET_VIEW` and `POLICY_MODIFY`. **Note**: this route only applies the `scheduled` boolean from `ScheduleRequest`.' parameters: - name: name in: path description: Policy name required: true schema: type: string - name: accessKey in: header description: API access key generated from ADOC UI required: true schema: type: string - name: secretKey in: header description: API secret key generated from ADOC UI required: true schema: type: string - name: Accept in: header description: Always set to application/json required: true schema: type: string - name: Content-Type in: header description: Always set to application/json required: true schema: type: string requestBody: description: Schedule configuration (scheduled boolean required) content: application/json: schema: $ref: '#/components/schemas/ScheduleRequest' responses: '200': description: Updated rule with schedule status content: application/json: schema: $ref: '#/components/schemas/Reconciliation.RuleResponse' '404': description: 'Policy with the given name: {name} not found' '422': description: Cron not configured, schedule state conflict, or wrong rule type /catalog-server/api/rules/reconciliation/byName/{name}/unarchive: post: operationId: unarchiveReconciliationByName tags: - Reconciliation Rules summary: Unarchive a reconciliation rule by name description: 'Restores a previously archived reconciliation policy by policy name. **Authorization**: requires `ASSET_VIEW` and `POLICY_MODIFY`.' parameters: - name: name in: path description: Policy name required: true schema: type: string - name: accessKey in: header description: API access key generated from ADOC UI required: true schema: type: string - name: secretKey in: header description: API secret key generated from ADOC UI required: true schema: type: string - name: Accept in: header description: Always set to application/json required: true schema: type: string responses: '200': description: Unarchived rule content: application/json: schema: $ref: '#/components/schemas/UnarchiveResponse' '404': description: 'Policy with the given name: {name} not found, or Reconciliation policy rule with id {ruleId} not found' /catalog-server/api/rules/reconciliation/byName/{name}/executions: post: operationId: triggerReconciliationExecutionByName tags: - Reconciliation Rules summary: Trigger execution of a reconciliation rule by name description: 'This endpoint triggers the execution of a Reconciliation policy by its name. #### Request Body - `markerConfigs` (array of objects): An array of marker configurations containing asset ID, marker type, and other details. - `assetId` (number): The ID of the asset. - `markerConfig` (object, optional): Only required for SELECTIVE profiling. It is a configuration object used to define different types of bounds for policy execution selectively. The `type`attribute determines the structure and required fields of the `markerConfig` object. Below are the possible types and their configurations: - Type: `TimestampBasedMarkerConfig`: This configuration is applicable to Kafka asset-based policies. It utilizes the offset associated with the specified timestamp to determine data bounds for policy execution. - **type**: `"TimestampBasedMarkerConfig"` (string) - The type of the marker configuration. - **format**: (string) - The format of the date values. - **initialOffset**: (string) - The initial date offset for the bound. - **timeZoneId**: (string) - The time zone ID. - Type: `boundFileEvent`: Used to define bounds based on file events and dates. - **type**: `"boundFileEvent"` (string) - The type of the marker configuration. - **fromDate**: (string) - The start date and time for the bound, in the specified format. - **toDate**: (string) - The end date and time for the bound, in the specified format. - **timeZoneId**: (string) - The time zone ID. - Type: `bound`: Used to define bounds based on an ID range. - **type**: `"bound"` (string) - The type of the marker configuration. - **idColumnName**: (string) - The name of the column containing ID values. - **fromId**: (integer) - The start ID for the bound. - **toId**: (integer) - The end ID for the bound. - Type: `boundDateTime`: Used to define bounds based on date and time. - **type**: `"boundDateTime"` (string) - The type of the marker configuration. - **dateColumnName**: (string) - The name of the column containing date and time values. - **format**: (string) - The format of the date and time values. - **fromDate**: (string) - The start date and time for the bound, in the specified format. - **toDate**: (string) - The end date and time for the bound, in the specified format. - **timeZoneId**: (string) - The time zone ID. - `executionType` (string): The type of execution. - `analyticsPipelineId` (number): The ID of the analytics pipeline. - `sparkResourceConfig` (object): Configuration for Spark resources. - `yunikorn` (object): Configuration for YuniKorn resource manager. - `minExecutors` (number): Minimum number of executors. - `maxExecutors` (number): Maximum number of executors. - `executorCores` (number): Number of cores per executor. - `executorMemory` (string): Memory allocated to each executor. - `driverCores` (number): Number of cores for the driver. - `driverMemory` (string): Memory allocated to the driver. - `additionalConfiguration` (object): Additional configuration details. - `ruleItemSelections` (array of numbers): Array of rule item selections. - `includeInQualityScore` (boolean): Indicates whether to include in quality score. #### Response Body - `execution`: Object containing details of the execution including `analysisJob`, `analyticsPipelineId`, `dataPersistenceEnabled`, and more. - `items`: Array of items containing execution details such as `executionId`, `finishedAt`, `isError`, `leftAnalyticsPipelineName`, `rightAnalyticsPipelineName`, and more. **Authorization**: requires `ASSET_VIEW` and `POLICY_EXECUTE`. **Request body**: `PolicyExecutionRequest`.' parameters: - name: name in: path description: Policy name required: true schema: type: string - name: accessKey in: header description: API access key generated from ADOC UI required: true schema: type: string - name: secretKey in: header description: API secret key generated from ADOC UI required: true schema: type: string - name: Accept in: header description: Always set to application/json required: true schema: type: string - name: Content-Type in: header description: Always set to application/json required: true schema: type: string requestBody: description: Execution request configuration content: application/json: schema: $ref: '#/components/schemas/PolicyExecutionRequest' responses: '200': description: Execution details content: application/json: schema: $ref: '#/components/schemas/Reconciliation.Execution' '400': description: Custom SQL / dataplane compatibility validation failure '404': description: 'Policy with the given name: {name} not found' '422': description: Previous execution of rule '{name}' has not completed. Not running the rule. get: operationId: getReconciliationExecutionsByName tags: - Reconciliation Rules summary: List executions for a reconciliation rule by name description: 'This endpoint retrieves a list of all Reconciliation policy executions for a particular tenant based on the provided policy name. #### Response The response will be in JSON format and will contain an array of `executions` and `meta` information. Each `execution` object includes details about the analysis job, execution status, and other relevant information. The `items` array within the `executions` contains detailed information about each execution, including any errors and result details. **Authorization**: requires `ASSET_VIEW` and `POLICY_VIEW`.' parameters: - name: name in: path description: Policy name required: true schema: type: string - name: accessKey in: header description: API access key generated from ADOC UI required: true schema: type: string - name: secretKey in: header description: API secret key generated from ADOC UI required: true schema: type: string - name: Accept in: header description: Always set to application/json required: true schema: type: string - name: page in: query description: Page number (0-based, default 0) schema: type: integer - name: size in: query description: Number of items per page (default 25) schema: type: integer - name: sortBy in: query description: Sort field and direction (e.g., name:asc or createdAt:desc) schema: type: string responses: '200': description: Paginated list of executions content: application/json: schema: $ref: '#/components/schemas/Reconciliation.ExecutionsResponse' '404': description: 'Policy with the given name: {name} not found' components: schemas: BelowConfigs: type: object title: io.ad.catalog.api.model.quality.BelowConfigs required: - direction - success properties: direction: type: string enum: - ABOVE - BELOW - RANGE - CHANGES_BY - DECREASED_BY - INCREASED_BY success: type: number warning: type: number CustomSqlConfig: type: object title: io.ad.catalog.api.model.quality.CustomSqlConfig required: - columnMetadataList - columnVariables - queryType - ruleVersion - sanitizedQuery - sqlExpression properties: columnMetadataList: type: array items: $ref: '#/components/schemas/ColumnMetadata' columnVariables: type: array items: $ref: '#/components/schemas/ColumnVariable' queryType: type: string ruleVersion: type: integer sanitizedQuery: type: string sqlExpression: type: string tableAlias: type: - string - 'null' Marker: type: object title: io.ad.catalog.api.model.profile.incrementalstrategies.Marker required: - type properties: type: type: string Artifact: type: object title: io.ad.dataplane.model.spec.Artifact required: - name - path - version properties: name: type: string path: type: string version: type: string RuleExecutionResult: type: object title: io.ad.catalog.api.model.quality.RuleExecutionResult required: - ruleExecutionType - status properties: ruleExecutionType: type: string enum: - RECONCILIATION_RULE_TYPE_EXECUTION - DQ_RULE_TYPE_EXECUTION - DATA_DRIFT_EXECUTION - SCHEMA_DRIFT_EXECUTION - DATA_CADENCE_TYPE_EXECUTION - PROFILE_ANOMALY_TYPE_EXECUTION - AUTO_ANOMALY_TYPE_EXECUTION status: type: string enum: - STARTED - RUNNING - ERRORED - WARNING - SUCCESSFUL - ABORTED - SKIPPED - WAITING - ANOMALY_DETECTION - EXECUTION_RESULT RuleTag: type: object title: io.ad.catalog.api.model.quality.RuleTag required: - name properties: id: type: integer name: type: string ruleId: type: integer tagId: type: integer tenantId: type: - string - 'null' ShortSegment: type: object title: io.ad.catalog.api.model.ShortSegment required: - type properties: id: type: integer name: type: - string - 'null' type: type: string SparkJobStatus: type: object title: io.ad.catalog.api.model.SparkJobStatus required: - id - isFinished - status properties: details: type: - string - 'null' errorMsg: type: - string - 'null' id: type: string isFinished: type: boolean result: oneOf: - $ref: '#/components/schemas/Any' - type: 'null' status: type: string Mapping: type: object title: io.ad.catalog.api.model.quality.Mapping required: - key properties: isColumnVariable: type: boolean key: type: string value: type: - string - 'null' RelativeConfig: type: object title: io.ad.catalog.api.model.quality.RelativeConfig oneOf: - $ref: '#/components/schemas/ChangesByConfig' - $ref: '#/components/schemas/DecreasedByConfig' - $ref: '#/components/schemas/IncreasedByConfig' discriminator: propertyName: type mapping: io.ad.catalog.api.model.quality.ChangesByConfig: '#/components/schemas/ChangesByConfig' io.ad.catalog.api.model.quality.DecreasedByConfig: '#/components/schemas/DecreasedByConfig' io.ad.catalog.api.model.quality.IncreasedByConfig: '#/components/schemas/IncreasedByConfig' UnarchiveResponse: type: object title: io.ad.catalog.api.model.quality.DataQuality.UnarchiveResponse required: - status properties: status: type: string enum: - SUCCESS - FAILED_ON_BACKING_ASSET - FAILED_ON_RULE_ITEMS ChangesByConfig: type: object title: io.ad.catalog.api.model.quality.ChangesByConfig required: - direction - operator - success - unit - isDirectional properties: direction: type: string enum: - ABOVE - BELOW - RANGE - CHANGES_BY - DECREASED_BY - INCREASED_BY operator: type: string enum: - LEGACY - EQ - NEQ - GT - GTE - LT - LTE success: type: number unit: type: string enum: - PERCENTAGE - ABSOLUTE warning: type: number isDirectional: type: boolean MetaData: type: object title: io.ad.catalog.api.model.quality.MetaData required: - count - page - size properties: count: type: integer page: type: integer size: type: integer DataprocSparkResourceConfig: type: object title: io.ad.catalog.api.model.profile.DataprocSparkResourceConfig properties: clusterMasterType: type: - string - 'null' clusterWorkerType: type: - string - 'null' numMasterNodes: type: integer numWorkerNodes: type: integer Reconciliation.ItemExecution: type: object title: Reconciliation.ItemExecution required: - executionId - isError - leftAnalyticsPipelineName - rightAnalyticsPipelineName - ruleItemId - startedAt properties: delayedLeftAnalysisJobId: type: integer delayedRightAnalysisJobId: type: integer executionId: type: integer finishedAt: oneOf: - $ref: '#/components/schemas/DateTime' - type: 'null' id: type: integer isError: type: boolean leftAnalyticsPipelineName: type: string leftError: type: - string - 'null' leftResult: type: - string - 'null' leftRowsFailed: type: integer leftRowsScanned: type: integer matchResult: type: - string - 'null' measuresSelection: type: - array - 'null' items: type: integer rightAnalyticsPipelineName: type: string rightError: type: - string - 'null' rightResult: type: - string - 'null' rightRowsFailed: type: integer rightRowsScanned: type: integer ruleItemId: type: integer startedAt: $ref: '#/components/schemas/DateTime' LivySparkResourceConfig: type: object title: io.ad.catalog.api.model.profile.LivySparkResourceConfig properties: driverCores: type: integer driverMemory: type: - string - 'null' executorCores: type: integer executorMemory: type: - string - 'null' numExecutors: type: integer RuleSparkSQLDynamicFilterVariableMapping: type: object title: io.ad.catalog.api.model.quality.RuleSparkSQLDynamicFilterVariableMapping required: - mapping - ruleName properties: mapping: type: array items: $ref: '#/components/schemas/Mapping' ruleId: type: integer ruleName: type: string IncreasedByConfig: type: object title: io.ad.catalog.api.model.quality.IncreasedByConfig required: - direction - operator - success - unit - isDirectional properties: direction: type: string enum: - ABOVE - BELOW - RANGE - CHANGES_BY - DECREASED_BY - INCREASED_BY operator: type: string enum: - LEGACY - EQ - NEQ - GT - GTE - LT - LTE success: type: number unit: type: string enum: - PERCENTAGE - ABSOLUTE warning: type: number isDirectional: type: boolean BackingAsset: type: object title: io.ad.catalog.api.model.quality.BackingAsset properties: customQuery: type: - string - 'null' customTableAssetIds: type: - array - 'null' items: type: integer id: type: integer marker: oneOf: - $ref: '#/components/schemas/MarkerConfig' - type: 'null' ruleId: type: integer tableAlias: type: - string - 'null' tableAssetId: type: integer tableAssetUid: type: - string - 'null' ColumnMapping: type: object title: io.ad.catalog.api.model.quality.Reconciliation.ColumnMapping required: - ignoreNullValues - isArchived - isJoinColumnUsedForMeasure - isWarning - leftColumnName - mappingType - name - operation - rightColumnName - ruleVersion - useForJoining - weightage properties: businessExplanation: type: - string - 'null' deletedAt: oneOf: - $ref: '#/components/schemas/DateTime' - type: 'null' id: type: integer ignoreNullValues: type: boolean isArchived: type: boolean isJoinColumnUsedForMeasure: type: boolean isWarning: type: boolean labels: type: - array - 'null' items: $ref: '#/components/schemas/Label' leftColumnName: type: string mappingType: type: string enum: - AUTO - MANUAL name: type: string operation: type: string enum: - EQ - NOT_EQ - GTE - GT - LTE - LT reconciliationRuleId: type: integer rightColumnName: type: string ruleVersion: type: integer useForJoining: type: boolean weightage: type: number RuleItemResult: type: object title: io.ad.catalog.api.model.quality.RuleItemResult required: - dimension - id - includeInQualityScore - ruleItemId - threshold - weightage properties: dimension: type: string enum: - UNIQUENESS - VALIDITY - ACCURACY - CONSISTENCY - COMPLETENESS - TIMELINESS - OTHERS error: type: - string - 'null' id: type: integer includeInQualityScore: type: boolean isWarning: type: boolean name: type: - string - 'null' resultPercent: type: number ruleItemId: type: integer status: type: - string - 'null' enum: - STARTED - RUNNING - ERRORED - WARNING - SUCCESSFUL - ABORTED - SKIPPED - WAITING - ANOMALY_DETECTION - EXECUTION_RESULT success: type: boolean threshold: type: number weightage: type: number AboveConfigs: type: object title: io.ad.catalog.api.model.quality.AboveConfigs required: - direction - success properties: direction: type: string enum: - ABOVE - BELOW - RANGE - CHANGES_BY - DECREASED_BY - INCREASED_BY success: type: number warning: type: number AbsoluteThresholdConfig: type: object title: io.ad.catalog.api.model.quality.AbsoluteThresholdConfig required: - config - type properties: config: $ref: '#/components/schemas/AbsoluteConfigs' success: type: number type: type: string enum: - ANOMALY - RELATIVE - TIME_BASED - ABSOLUTE warning: type: number DataplaneJob: type: object title: io.ad.catalog.api.model.analysisservice.DataplaneJob required: - executionStatus - jobType - startedAt properties: analysisJobContext: oneOf: - $ref: '#/components/schemas/AnalysisJobContext' - type: 'null' analysisServiceJobId: type: integer analyticsPipelineId: type: integer assetId: type: integer assetUid: type: - string - 'null' autoRetries: type: integer autoRetryEnabled: type: boolean createdAt: oneOf: - $ref: '#/components/schemas/DateTime' - type: 'null' dataSourceId: type: - string - 'null' dataSourceType: type: - string - 'null' engineType: type: - string - 'null' enum: - SPARK - JDBC_SQL - POD errorMessage: type: - string - 'null' executionId: type: integer executionStatus: type: string enum: - WAITING - SKIPPED - SUBMITTED - QUEUED - IN_PROGRESS - ABORTED - FAILED - POSTPROCESSING - ANOMALY_DETECTION - EXECUTION_RESULT - SUCCESSFUL finishedAt: oneOf: - $ref: '#/components/schemas/DateTime' - type: 'null' jobSpec: oneOf: - $ref: '#/components/schemas/JobSpec' - type: 'null' jobState: type: - string - 'null' enum: - ACKNOWLEDGED - SUBMITTED - QUEUED - SKIPPED - RUNNING - READ_DATA - REFERENCE_DATA - PROFILE_STAGE_1 - PROFILE_STAGE_2 - PROFILE_STAGE_3 - PROFILE_STAGE_4 - DQ_BATCH_RULES - DQ_ROW_RULES - DQ_CUSTOM_RULES - DQ_SEGMENT - DQ_GOOD_RESULT_STORE - DQ_BAD_RESULT_STORE - VALIDATE - PROCESSING - PREPARE_RESULT - SEND_RESULT - SEND_RESULT_FAILED - SUCCESSFUL - FAILED - ABORTED - WAITING - METRICS_REQUEST_SENT - PARTIAL_RESPONSE_PUBLISHED - COMPLETE_RESPONSE_PUBLISHED - METRICS_RESPONSE_RECEIVED - ANOMALY_DETECTION_INITIATED - PARTIAL_ANOMALY_RESULT_RECEIVED - COMPLETE_ANOMALY_RESULT_RECEIVED - POLICY_EXECUTION_SUCCESSFUL - POLICY_EXECUTION_FAILURE - EXECUTION_RESULT jobType: type: string enum: - SAMPLE_DATA - FILE_INFO_CRAWLER - SAMPLE_DATA_CRAWLER - UDF_VALIDATION - SQL_VIEW_SAMPLE_DATA - VISUAL_VIEW_SAMPLE_DATA - DATA_VIOLATIONS_SAMPLE_DATA - DATA_VIOLATIONS_SAMPLE_DATA_S3 - DATA_VIOLATIONS_SAMPLE_DATA_ADLS - DATA_VIOLATIONS_SAMPLE_DATA_GCS - DATA_VIOLATIONS_SAMPLE_DATA_HDFS - DATA_VIOLATIONS_SAMPLE_DATA_LOCAL - PROFILE - DATA_QUALITY - RECONCILIATION - ROW_COUNT_EQUALITY - FILE_CRAWLER - KAFKA_CRAWLER - PUBSUB_CRAWLER - CRAWLER - ASSET_FILE_MONITORING - ASSET_MONITORING - ASSET_REFERENCE_VALIDATION - AUTO_TAG - EXECUTION_RESULT - CONNECTION_VALIDATION - PARENT_LIST - CADENCE - AUTO_ANOMALY - SQL_VALIDATION - RESULT - DATA_VIOLATIONS - DOWNLOAD_DATA_VIOLATIONS - FRESHNESS - DATA_SOURCE_QUERY lastHealthUpdateAt: oneOf: - $ref: '#/components/schemas/DateTime' - type: 'null' request: oneOf: - $ref: '#/components/schemas/DataplaneRequest' - type: 'null' requestId: type: - string - 'null' resourceStrategyType: type: - string - 'null' enum: - INVENTORY - CUSTOM selectedResourceInventory: type: - string - 'null' sparkClusterContext: type: - string - 'null' enum: - LOCAL - LIVY - DATABRICKS - KUBERNETES - DATAPROC sparkResourceConfig: oneOf: - $ref: '#/components/schemas/SparkResourceConfig' - type: 'null' startedAt: $ref: '#/components/schemas/DateTime' startedRunningAt: oneOf: - $ref: '#/components/schemas/DateTime' - type: 'null' tenantId: type: - string - 'null' updatedAt: oneOf: - $ref: '#/components/schemas/DateTime' - type: 'null' RuleThresholdConfiguration: type: object title: io.ad.catalog.api.model.quality.RuleThresholdConfiguration oneOf: - $ref: '#/components/schemas/AbsoluteThresholdConfig' - $ref: '#/components/schemas/AnomalyThresholdConfig' - $ref: '#/components/schemas/RelativeThresholdConfig' - $ref: '#/components/schemas/TimeBasedThresholdConfig' discriminator: propertyName: type mapping: io.ad.catalog.api.model.quality.AbsoluteThresholdConfig: '#/components/schemas/AbsoluteThresholdConfig' io.ad.catalog.api.model.quality.AnomalyThresholdConfig: '#/components/schemas/AnomalyThresholdConfig' io.ad.catalog.api.model.quality.RelativeThresholdConfig: '#/components/schemas/RelativeThresholdConfig' io.ad.catalog.api.model.quality.TimeBasedThresholdConfig: '#/components/schemas/TimeBasedThresholdConfig' PolicyExecutionRequest: type: object title: io.ad.catalog.api.model.quality.PolicyExecutionRequest required: - columnVariables - executionType - includeInQualityScore - resourceStrategyType properties: analysisJobRequestId: type: - string - 'null' analyticsPipelineId: type: integer assetDirection: type: - string - 'null' autoRetryEnabled: type: boolean columnVariables: type: array items: $ref: '#/components/schemas/ColumnVariable' engineType: type: - string - 'null' enum: - SPARK - JDBC_SQL - POD executionType: type: string enum: - SELECTIVE - FULL - INCREMENTAL includeInQualityScore: type: boolean markerConfigs: type: - array - 'null' items: $ref: '#/components/schemas/PolicyExecutionMarkerConfig' monitorExecutionId: type: integer pipelineAutomationExecutionId: type: integer pipelineRunId: type: integer profileId: type: integer resourceStrategyType: type: string enum: - INVENTORY - CUSTOM rightEngineType: type: - string - 'null' enum: - SPARK - JDBC_SQL - POD rightSparkFilterSelectedColumns: type: - array - 'null' items: type: string rightSparkSQLDynamicFilterVariableMapping: type: - array - 'null' items: $ref: '#/components/schemas/RuleSparkSQLDynamicFilterVariableMapping' ruleItemSelections: type: - array - 'null' items: type: integer selectedResourceInventory: type: - string - 'null' sourceExecutionId: type: integer sparkAppName: type: - string - 'null' sparkFilterSelectedColumns: type: - array - 'null' items: type: string sparkResourceConfig: oneOf: - $ref: '#/components/schemas/SparkResourceConfig' - type: 'null' sparkSQLDynamicFilterVariableMapping: type: - array - 'null' items: $ref: '#/components/schemas/RuleSparkSQLDynamicFilterVariableMapping' SparkResourceConfig: type: object title: io.ad.catalog.api.model.profile.SparkResourceConfig required: - invalidFields properties: additionalConfiguration: type: - object - 'null' additionalProperties: type: string databricks: oneOf: - $ref: '#/components/schemas/DataBricksSparkResourceConfig' - type: 'null' dataproc: oneOf: - $ref: '#/components/schemas/DataprocSparkResourceConfig' - type: 'null' invalidFields: type: array items: type: string livy: oneOf: - $ref: '#/components/schemas/LivySparkResourceConfig' - type: 'null' yunikorn: oneOf: - $ref: '#/components/schemas/YunikornSparkResourceConfig' - type: 'null' AnomalyThresholdConfig: type: object title: io.ad.catalog.api.model.quality.AnomalyThresholdConfig required: - config - type properties: config: $ref: '#/components/schemas/AnomalyConfig' success: type: number type: type: string enum: - ANOMALY - RELATIVE - TIME_BASED - ABSOLUTE warning: type: number RelativeThresholdConfig: type: object title: io.ad.catalog.api.model.quality.RelativeThresholdConfig required: - config - operationalConfig - type properties: config: $ref: '#/components/schemas/RelativeConfig' operationalConfig: $ref: '#/components/schemas/OperationalConfig' success: type: number type: type: string enum: - ANOMALY - RELATIVE - TIME_BASED - ABSOLUTE warning: type: number CloningDetails: type: object title: io.ad.catalog.api.model.quality.CloningDetails required: - ruleId - version properties: ruleId: type: integer version: type: integer DataBricksSparkResourceConfig: type: object title: io.ad.catalog.api.model.profile.DataBricksSparkResourceConfig properties: clusterDriverType: type: - string - 'null' clusterWorkerType: type: - string - 'null' maxWorkers: type: integer minWorkers: type: integer ReconciliationRule: type: object title: io.ad.catalog.api.model.quality.Reconciliation.ReconciliationRule required: - archived - createdAt - enabled - includeInQualityScore - isProtectedResource - leftBackingAsset - leftSparkSQLFilterType - name - rightBackingAsset - rightSparkSQLFilterType - scheduled - thresholdLevel - timeSecondsOffset - timeZone - treatZeroRowsAsSuccess - type - updatedAt - version properties: analyticsPipelineId: type: integer archivalReason: type: - string - 'null' archived: type: boolean autoCreated: type: boolean autoRetryEnabled: type: boolean createdAt: $ref: '#/components/schemas/DateTime' createdBy: type: - string - 'null' delayInMinutes: type: integer description: type: - string - 'null' enabled: type: boolean engineType: type: - string - 'null' enum: - SPARK - JDBC_SQL - POD executionTimeoutInMinutes: type: integer id: type: integer includeInQualityScore: type: boolean isProtectedResource: type: boolean joinType: type: - string - 'null' enum: - INNER - LEFT - RIGHT - FULL - CROSS labels: type: - array - 'null' items: $ref: '#/components/schemas/Label' lastUpdatedBy: type: - string - 'null' leftBackingAsset: $ref: '#/components/schemas/BackingAsset' leftCustomSqlConfig: oneOf: - $ref: '#/components/schemas/CustomSqlConfig' - type: 'null' leftFilter: type: - string - 'null' leftSparkFilterSelectedColumns: type: - array - 'null' items: type: string leftSparkSQLDynamicFilterVariableMapping: oneOf: - $ref: '#/components/schemas/RuleSparkSQLDynamicFilterVariableMapping' - type: 'null' leftSparkSQLFilterType: type: string enum: - STATIC - DYNAMIC name: type: string notificationChannels: oneOf: - $ref: '#/components/schemas/NotificationPayload' - type: 'null' policyGroups: type: - array - 'null' items: $ref: '#/components/schemas/PolicyGroup' resourceStrategyType: type: - string - 'null' enum: - INVENTORY - CUSTOM rightBackingAsset: $ref: '#/components/schemas/BackingAsset' rightCustomSqlConfig: oneOf: - $ref: '#/components/schemas/CustomSqlConfig' - type: 'null' rightEngineType: type: - string - 'null' enum: - SPARK - JDBC_SQL - POD rightFilter: type: - string - 'null' rightSparkFilterSelectedColumns: type: - array - 'null' items: type: string rightSparkSQLDynamicFilterVariableMapping: oneOf: - $ref: '#/components/schemas/RuleSparkSQLDynamicFilterVariableMapping' - type: 'null' rightSparkSQLFilterType: type: string enum: - STATIC - DYNAMIC schedule: type: - string - 'null' scheduled: type: boolean selectedResourceInventory: type: - string - 'null' sparkResourceConfig: oneOf: - $ref: '#/components/schemas/SparkResourceConfig' - type: 'null' subType: type: - string - 'null' enum: - ASSET - SQL tags: type: - array - 'null' items: $ref: '#/components/schemas/RuleTag' tenantId: type: - string - 'null' thresholdLevel: $ref: '#/components/schemas/RuleThresholdConfiguration' timeSecondsOffset: type: integer timeZone: type: string totalExecutionTimeoutInMinutes: type: integer treatZeroRowsAsSuccess: type: boolean type: type: string enum: - DATA_QUALITY - RECONCILIATION - EQUALITY - DATA_DRIFT - SCHEMA_DRIFT - DATA_CADENCE - PROFILE_ANOMALY - AUTO_ANOMALY updatedAt: $ref: '#/components/schemas/DateTime' version: type: integer RuleExecution: type: object title: io.ad.catalog.api.model.quality.RuleExecution required: - allowRerun - autoRetryEnabled - dataPersistenceEnabled - executionMode - executionStatus - executionType - includeInQualityScore - isProtectedResource - isResourceRequestedAtRunTime - participatingColumns - policyResultStatusStrategy - resultStatus - rightSparkSQLFilterType - ruleId - ruleSelectionEnabled - ruleVersion - sparkSQLFilterType - startedAt - thresholdLevel properties: allowRerun: type: boolean analysisJob: oneOf: - $ref: '#/components/schemas/DataplaneJob' - type: 'null' analyticsPipelineId: type: integer autoRetries: type: integer autoRetryEnabled: type: boolean dataPersistenceEnabled: type: boolean driverPodName: type: - string - 'null' engineType: type: - string - 'null' enum: - SPARK - JDBC_SQL - POD executedBy: type: - string - 'null' executionError: type: - string - 'null' executionMode: type: string enum: - SCHEDULED - MANUAL - WEBHOOK - API executionRank: type: integer executionStatus: type: string enum: - STARTED - RUNNING - ERRORED - WARNING - SUCCESSFUL - ABORTED - SKIPPED - WAITING - ANOMALY_DETECTION - EXECUTION_RESULT executionType: type: string enum: - SELECTIVE - FULL - INCREMENTAL filter: type: - string - 'null' finishedAt: oneOf: - $ref: '#/components/schemas/DateTime' - type: 'null' id: type: integer includeInQualityScore: type: boolean isProtectedResource: type: boolean isResourceRequestedAtRunTime: type: boolean jobState: type: - string - 'null' enum: - ACKNOWLEDGED - SUBMITTED - QUEUED - SKIPPED - RUNNING - READ_DATA - REFERENCE_DATA - PROFILE_STAGE_1 - PROFILE_STAGE_2 - PROFILE_STAGE_3 - PROFILE_STAGE_4 - DQ_BATCH_RULES - DQ_ROW_RULES - DQ_CUSTOM_RULES - DQ_SEGMENT - DQ_GOOD_RESULT_STORE - DQ_BAD_RESULT_STORE - VALIDATE - PROCESSING - PREPARE_RESULT - SEND_RESULT - SEND_RESULT_FAILED - SUCCESSFUL - FAILED - ABORTED - WAITING - METRICS_REQUEST_SENT - PARTIAL_RESPONSE_PUBLISHED - COMPLETE_RESPONSE_PUBLISHED - METRICS_RESPONSE_RECEIVED - ANOMALY_DETECTION_INITIATED - PARTIAL_ANOMALY_RESULT_RECEIVED - COMPLETE_ANOMALY_RESULT_RECEIVED - POLICY_EXECUTION_SUCCESSFUL - POLICY_EXECUTION_FAILURE - EXECUTION_RESULT lastHealthUpdateAt: oneOf: - $ref: '#/components/schemas/DateTime' - type: 'null' lastMarker: oneOf: - $ref: '#/components/schemas/Marker' - type: 'null' leftLastMarker: oneOf: - $ref: '#/components/schemas/Marker' - type: 'null' leftMarkerConfig: oneOf: - $ref: '#/components/schemas/MarkerConfig' - type: 'null' markerConfig: oneOf: - $ref: '#/components/schemas/MarkerConfig' - type: 'null' parentId: type: integer participatingColumns: type: array items: type: string persistencePath: type: - string - 'null' pipelineAdditionalConfiguration: type: - object - 'null' additionalProperties: type: string policyResultStatusStrategy: type: string enum: - CUSTOM - WEIGHTAGE - RULES requestId: type: - string - 'null' resetPoint: type: integer resourceStrategyType: type: - string - 'null' enum: - INVENTORY - CUSTOM resultPersistencePath: type: - object - 'null' additionalProperties: type: string resultStatus: type: string enum: - STARTED - RUNNING - ERRORED - WARNING - SUCCESSFUL - ABORTED - SKIPPED - WAITING - ANOMALY_DETECTION - EXECUTION_RESULT rightEngineType: type: - string - 'null' enum: - SPARK - JDBC_SQL - POD rightFilter: type: - string - 'null' rightLastMarker: oneOf: - $ref: '#/components/schemas/Marker' - type: 'null' rightMarkerConfig: oneOf: - $ref: '#/components/schemas/MarkerConfig' - type: 'null' rightSparkFilterSelectedColumns: type: - array - 'null' items: type: string rightSparkSQLDynamicFilterVariableMapping: oneOf: - $ref: '#/components/schemas/RuleSparkSQLDynamicFilterVariableMapping' - type: 'null' rightSparkSQLFilterType: type: string enum: - STATIC - DYNAMIC ruleId: type: integer ruleName: type: - string - 'null' ruleSelectionEnabled: type: boolean ruleType: type: - string - 'null' enum: - DATA_QUALITY - RECONCILIATION - EQUALITY - DATA_DRIFT - SCHEMA_DRIFT - DATA_CADENCE - PROFILE_ANOMALY - AUTO_ANOMALY ruleVersion: type: integer scheduleInstanceId: type: - string - 'null' selectedResourceInventory: type: - string - 'null' sourceExecutionId: type: integer sparkFilterSelectedColumns: type: - array - 'null' items: type: string sparkResourceConfig: oneOf: - $ref: '#/components/schemas/SparkResourceConfig' - type: 'null' sparkSQLDynamicFilterVariableMapping: oneOf: - $ref: '#/components/schemas/RuleSparkSQLDynamicFilterVariableMapping' - type: 'null' sparkSQLFilterType: type: string enum: - STATIC - DYNAMIC startedAt: $ref: '#/components/schemas/DateTime' thresholdLevel: $ref: '#/components/schemas/RuleThresholdConfiguration' treatZeroRowsAsSuccess: type: boolean Reconciliation.RulesResponse: type: object title: Reconciliation.RulesResponse required: - meta - rules properties: meta: $ref: '#/components/schemas/MetaData' rules: type: array items: $ref: '#/components/schemas/Reconciliation.RuleResponse' DataplaneJobStatus: type: object title: io.ad.catalog.api.model.DataplaneJobStatus required: - id - isFinished - status properties: details: type: - string - 'null' errorMsg: type: - string - 'null' id: type: string isFinished: type: boolean result: oneOf: - $ref: '#/components/schemas/Any' - type: 'null' status: type: string ColumnVariable: type: object title: io.ad.catalog.api.model.quality.ColumnVariable required: - getOnlyWithVariableName - isNumber - name properties: format: type: - string - 'null' getOnlyWithVariableName: $ref: '#/components/schemas/ColumnVariable' isNumber: type: boolean name: type: string value: type: - string - 'null' DateTime: type: object title: org.joda.time.DateTime DataplaneRequest: type: object title: io.ad.dataplane.model.DataplaneRequest required: - engine - method - requestId properties: engine: $ref: '#/components/schemas/Engine' method: type: string enum: - SUBMIT - CANCEL - STATUS requestId: type: string GenericRuleExecution: type: object title: io.ad.catalog.api.model.quality.GenericRuleExecution required: - dataPersistenceEnabled - executionMode - executionStatus - executionType - includeInQualityScore - resultStatus - ruleId - ruleSelectionEnabled - ruleVersion - startedAt properties: analysisJob: oneOf: - $ref: '#/components/schemas/DataplaneJob' - type: 'null' autoRetries: type: integer autoRetryEnabled: type: boolean dataPersistenceEnabled: type: boolean engineType: type: - string - 'null' enum: - SPARK - JDBC_SQL - POD executionError: type: - string - 'null' executionMode: type: string enum: - SCHEDULED - MANUAL - WEBHOOK - API executionStatus: type: string enum: - STARTED - RUNNING - ERRORED - WARNING - SUCCESSFUL - ABORTED - SKIPPED - WAITING - ANOMALY_DETECTION - EXECUTION_RESULT executionType: type: string enum: - SELECTIVE - FULL - INCREMENTAL finishedAt: oneOf: - $ref: '#/components/schemas/DateTime' - type: 'null' id: type: integer includeInQualityScore: type: boolean lastMarker: oneOf: - $ref: '#/components/schemas/Marker' - type: 'null' leftLastMarker: oneOf: - $ref: '#/components/schemas/Marker' - type: 'null' leftMarkerConfig: oneOf: - $ref: '#/components/schemas/MarkerConfig' - type: 'null' markerConfig: oneOf: - $ref: '#/components/schemas/MarkerConfig' - type: 'null' parentId: type: integer persistencePath: type: - string - 'null' resetPoint: type: integer resourceStrategyType: type: - string - 'null' enum: - INVENTORY - CUSTOM resultPersistencePath: type: - object - 'null' additionalProperties: type: string resultStatus: type: string enum: - STARTED - RUNNING - ERRORED - WARNING - SUCCESSFUL - ABORTED - SKIPPED - WAITING - ANOMALY_DETECTION - EXECUTION_RESULT rightLastMarker: oneOf: - $ref: '#/components/schemas/Marker' - type: 'null' rightMarkerConfig: oneOf: - $ref: '#/components/schemas/MarkerConfig' - type: 'null' ruleId: type: integer ruleName: type: - string - 'null' ruleSelectionEnabled: type: boolean ruleType: type: - string - 'null' enum: - DATA_QUALITY - RECONCILIATION - EQUALITY - DATA_DRIFT - SCHEMA_DRIFT - DATA_CADENCE - PROFILE_ANOMALY - AUTO_ANOMALY ruleVersion: type: integer selectedResourceInventory: type: - string - 'null' sparkResourceConfig: oneOf: - $ref: '#/components/schemas/SparkResourceConfig' - type: 'null' startedAt: $ref: '#/components/schemas/DateTime' thresholdLevel: $ref: '#/components/schemas/RuleThresholdConfiguration' ColumnMetadata: type: object title: io.ad.catalog.api.model.quality.ColumnMetadata required: - name - type properties: name: type: string type: type: string ExecutionResult: type: object title: io.ad.catalog.api.model.quality.ExecutionResult required: - execution - items - meta - result properties: childExecutions: type: - array - 'null' items: $ref: '#/components/schemas/ExecutionResult' execution: $ref: '#/components/schemas/GenericRuleExecution' items: type: array items: $ref: '#/components/schemas/RuleItemResult' meta: type: object additionalProperties: $ref: '#/components/schemas/Any' result: $ref: '#/components/schemas/RuleExecutionResult' PolicyExecutionMarkerConfig: type: object title: io.ad.catalog.api.model.quality.PolicyExecutionMarkerConfig required: - assetId - markerConfig properties: assetId: type: integer markerConfig: $ref: '#/components/schemas/MarkerConfig' OperationalConfig: type: object title: io.ad.catalog.api.model.quality.OperationalConfig required: - lookBack properties: lookBack: $ref: '#/components/schemas/LookBackConfig' RangeConfigs: type: object title: io.ad.catalog.api.model.quality.RangeConfigs required: - direction - lowerSuccess - upperSuccess properties: direction: type: string enum: - ABOVE - BELOW - RANGE - CHANGES_BY - DECREASED_BY - INCREASED_BY lowerSuccess: type: number lowerWarning: type: number upperSuccess: type: number upperWarning: type: number Engine: type: object title: io.ad.dataplane.model.engine.Engine required: - type properties: config: oneOf: - $ref: '#/components/schemas/EngineConfig' - type: 'null' type: type: string enum: - SPARK_ASYNC - POD_ASYNC - STANDALONE_ASYNC - PUSHDOWN_ASYNC YunikornSparkResourceConfig: type: object title: io.ad.catalog.api.model.profile.YunikornSparkResourceConfig properties: driverCores: type: integer driverLimitCores: type: - string - 'null' driverMemory: type: - string - 'null' driverMemoryOverhead: type: - string - 'null' driverMemoryOverheadFactor: type: number driverRequestCores: type: - string - 'null' executorCores: type: integer executorLimitCores: type: - string - 'null' executorMemory: type: - string - 'null' executorMemoryOverhead: type: - string - 'null' executorMemoryOverheadFactor: type: number executorRequestCores: type: - string - 'null' maxExecutors: type: integer minExecutors: type: integer TimeBasedThresholdConfig: type: object title: io.ad.catalog.api.model.quality.TimeBasedThresholdConfig required: - config - type properties: config: $ref: '#/components/schemas/TimeBasedConfig' success: type: number type: type: string enum: - ANOMALY - RELATIVE - TIME_BASED - ABSOLUTE warning: type: number ScheduleRequest: type: object title: io.ad.catalog.api.model.quality.ScheduleRequest required: - scheduled properties: cronExpression: type: - string - 'null' scheduled: type: boolean timeZone: type: - string - 'null' MarkerConfig: type: object title: io.ad.catalog.api.model.profile.incrementalstrategies.MarkerConfig required: - type properties: type: type: string JobSpec: type: object title: io.ad.dataplane.model.spec.JobSpec required: - artifactFacts properties: artifactFacts: type: array items: $ref: '#/components/schemas/Artifact' Reconciliation.Rule: type: object title: Reconciliation.Rule required: - columnMappings - continueExecutionOnFailure - isCompositeRule - isSegmented - items - leftBackingAssetId - leftSparkSQLFilterType - rightBackingAssetId - rightSparkSQLFilterType - ruleId - ruleVersion - timeSecondsOffset - treatZeroRowsAsSuccess properties: columnMappings: type: array items: $ref: '#/components/schemas/ColumnMapping' continueExecutionOnFailure: type: boolean delayInMinutes: type: integer id: type: integer isCompositeRule: type: boolean isSegmented: type: boolean items: type: array items: $ref: '#/components/schemas/Reconciliation.Item' joinType: type: - string - 'null' enum: - INNER - LEFT - RIGHT - FULL - CROSS leftBackingAssetId: type: integer leftCustomSqlConfig: oneOf: - $ref: '#/components/schemas/CustomSqlConfig' - type: 'null' leftEngineType: type: - string - 'null' enum: - SPARK - JDBC_SQL - POD leftFilter: type: - string - 'null' leftSparkFilterSelectedColumns: type: - array - 'null' items: type: string leftSparkSQLDynamicFilterVariableMapping: oneOf: - $ref: '#/components/schemas/RuleSparkSQLDynamicFilterVariableMapping' - type: 'null' leftSparkSQLFilterType: type: string enum: - STATIC - DYNAMIC rightBackingAssetId: type: integer rightCustomSqlConfig: oneOf: - $ref: '#/components/schemas/CustomSqlConfig' - type: 'null' rightEngineType: type: - string - 'null' enum: - SPARK - JDBC_SQL - POD rightFilter: type: - string - 'null' rightSparkFilterSelectedColumns: type: - array - 'null' items: type: string rightSparkSQLDynamicFilterVariableMapping: oneOf: - $ref: '#/components/schemas/RuleSparkSQLDynamicFilterVariableMapping' - type: 'null' rightSparkSQLFilterType: type: string enum: - STATIC - DYNAMIC ruleId: type: integer ruleVersion: type: integer segments: type: - array - 'null' items: $ref: '#/components/schemas/ShortSegment' subType: type: - string - 'null' enum: - ASSET - SQL timeSecondsOffset: type: integer treatZeroRowsAsSuccess: type: boolean EngineConfig: type: object title: io.ad.dataplane.model.engine.EngineConfig Reconciliation.Execution: type: object title: Reconciliation.Execution required: - execution - items properties: execution: $ref: '#/components/schemas/RuleExecution' items: type: array items: $ref: '#/components/schemas/Reconciliation.ItemExecution' LookBackConfig: type: object title: io.ad.catalog.api.model.quality.LookBackConfig required: - window - windowType properties: window: type: integer windowType: type: string enum: - RUNS - DAYS - HOURS - MINUTES DecreasedByConfig: type: object title: io.ad.catalog.api.model.quality.DecreasedByConfig required: - direction - operator - success - unit - isDirectional properties: direction: type: string enum: - ABOVE - BELOW - RANGE - CHANGES_BY - DECREASED_BY - INCREASED_BY operator: type: string enum: - LEGACY - EQ - NEQ - GT - GTE - LT - LTE success: type: number unit: type: string enum: - PERCENTAGE - ABSOLUTE warning: type: number isDirectional: type: boolean Label: type: object title: io.ad.catalog.api.model.Label required: - key - value properties: key: type: string labelType: type: - string - 'null' enum: - ASSET - RULE - DQ_RULE_ITEM - RECONCILIATION_COLUMN_MAPPING - POLICY_TEMPLATE_MEASURE - USER_DEFINED_FUNCTION value: type: string Reconciliation.Item: type: object title: Reconciliation.Item required: - executionOrder - measurementType - version properties: executionOrder: type: integer id: type: integer measurementType: type: string enum: - EQUALITY - COUNT - PROFILE_EQUALITY - HASHED_EQUALITY - TIMELINESS - CUSTOM - ROW_COUNT_EQUALITY ruleId: type: integer thresholdConfig: $ref: '#/components/schemas/RuleThresholdConfiguration' version: type: integer AnalysisJobContext: type: object title: io.ad.catalog.api.model.AnalysisJobContext required: - type properties: dataplaneJobStatus: oneOf: - $ref: '#/components/schemas/DataplaneJobStatus' - type: 'null' sparkJobStatus: oneOf: - $ref: '#/components/schemas/SparkJobStatus' - type: 'null' statusRetryCount: type: integer type: type: string TimeBasedConfig: type: object title: io.ad.catalog.api.model.quality.TimeBasedConfig required: - lookBackWindowType - successLookBackWindow properties: lookBackWindowType: type: string enum: - RUNS - DAYS - HOURS - MINUTES successLookBackWindow: type: integer warningLookBackWindow: type: integer AnomalyConfig: type: object title: io.ad.catalog.api.model.quality.AnomalyConfig required: - successSensitivityLevel properties: successSensitivityLevel: type: string enum: - HIGH - MEDIUM - LOW warningSensitivityLevel: type: - string - 'null' enum: - HIGH - MEDIUM - LOW Reconciliation.RuleRequest: type: object title: Reconciliation.RuleRequest required: - items - mappings - rule properties: analyticsPipelineId: type: integer cloningDetails: oneOf: - $ref: '#/components/schemas/CloningDetails' - type: 'null' items: type: array items: $ref: '#/components/schemas/Reconciliation.Item' mappings: type: array items: $ref: '#/components/schemas/ColumnMapping' rule: $ref: '#/components/schemas/ReconciliationRule' Reconciliation.RuleResponse: type: object title: Reconciliation.RuleResponse required: - rule properties: details: oneOf: - $ref: '#/components/schemas/Reconciliation.Rule' - type: 'null' rule: $ref: '#/components/schemas/ReconciliationRule' NotificationPayload: type: object title: io.ad.catalog.api.model.NotificationPayload required: - alertsEnabled - configuredNotificationGroupIds - notifyOn - notifyOnSuccess - notifyOnWarning - reNotifyMode properties: alertsEnabled: type: boolean configuredNotificationGroupIds: type: array items: type: integer notifyOn: type: array items: type: string enum: - ERROR - WARNING - SUCCESS - ALL notifyOnSuccess: type: boolean notifyOnWarning: type: boolean reNotifyFactor: type: integer reNotifyMode: type: string enum: - INTERVAL - RULE_CHANGE severity: type: - string - 'null' enum: - LOW - MEDIUM - HIGH - CRITICAL tags: type: - array - 'null' items: type: string Reconciliation.ExecutionsResponse: type: object title: Reconciliation.ExecutionsResponse required: - executions - meta properties: executions: type: array items: $ref: '#/components/schemas/Reconciliation.Execution' meta: $ref: '#/components/schemas/MetaData' PolicyGroup: type: object title: io.ad.catalog.api.model.PolicyGroup properties: createdAt: oneOf: - $ref: '#/components/schemas/DateTime' - type: 'null' description: type: - string - 'null' id: type: integer name: type: - string - 'null' tenantId: type: - string - 'null' updatedAt: oneOf: - $ref: '#/components/schemas/DateTime' - type: 'null' Any: type: object title: kotlin.Any AbsoluteConfigs: type: object title: io.ad.catalog.api.model.quality.AbsoluteConfigs oneOf: - $ref: '#/components/schemas/AboveConfigs' - $ref: '#/components/schemas/BelowConfigs' - $ref: '#/components/schemas/RangeConfigs' discriminator: propertyName: type mapping: io.ad.catalog.api.model.quality.AboveConfigs: '#/components/schemas/AboveConfigs' io.ad.catalog.api.model.quality.BelowConfigs: '#/components/schemas/BelowConfigs' io.ad.catalog.api.model.quality.RangeConfigs: '#/components/schemas/RangeConfigs'