> For the complete documentation index, see [llms.txt](https://developer.collibra.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.collibra.com/api/references/data-quality/models.md).

# Models

## The StandardErrorResponse object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"StandardErrorResponse":{"type":"object","description":"Error response returned by the Data Quality API.","required":["statusCode","errorCode","titleMessage","userMessage"],"properties":{"statusCode":{"type":"integer","description":"HTTP status code corresponding to the error."},"errorCode":{"type":"string","description":"Internal error code representing the specific error type."},"titleMessage":{"type":"string","description":"A brief title summarizing the error."},"userMessage":{"type":"string","description":"Detailed, user-friendly message explaining the error and possible remediation steps."}}}}}}
```

## The JobDefinition object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"JobDefinition":{"type":"object","properties":{"jobName":{"$ref":"#/components/schemas/JobName"},"jobType":{"$ref":"#/components/schemas/JobType"},"sourceQuery":{"$ref":"#/components/schemas/SourceQuery"},"runDate":{"$ref":"#/components/schemas/RunDateValue"},"runDateEnd":{"$ref":"#/components/schemas/RunDateEndValue"},"dataLocation":{"$ref":"#/components/schemas/DataLocation"},"jobSettings":{"$ref":"#/components/schemas/JobSettings"},"monitoringSettings":{"$ref":"#/components/schemas/JobMonitoringSettings"},"notifications":{"$ref":"#/components/schemas/JobNotifications"},"schedulingSettings":{"$ref":"#/components/schemas/SchedulingSettings"}}},"JobName":{"type":"string","description":"Job name. Allowed characters by default: letters, digits, `_`, `.`, `-`. **Configurable** via the server env variable `VALIDATION_PATTERN_JOB_NAME`. Default pattern: `^[a-zA-Z0-9_.-]+$`.\n","minLength":1,"maxLength":255,"pattern":"^[a-zA-Z0-9_.-]+$"},"JobType":{"type":"string","description":"Execution mode for Data Quality job. Pullup jobs are available only when the Pullup preview feature is enabled. Allowed values: \"PUSHDOWN\", \"PULLUP\".\n"},"SourceQuery":{"nullable":true,"type":"string","description":"Source SQL for the job. \n\n- If you want to limit the data slice by date/time, **do not hard-code literal\n  dates** in the SQL. Always use the placeholders `${rd}` (start) and `${rdEnd}`\n  (exclusive end), and pass the actual values via the `runDate` / `runDateEnd`\n  fields of the request.  \n  Example pattern: `WHERE \"trade_date\" >= '${rd}' AND \"trade_date\" < '${rdEnd}'` \n- The engine will substitute `${rd}` / `${rdEnd}` based on your chosen\n  `dateFormat` (DATE or TIMESTAMP). \n- Keep the placeholders inside single quotes in SQL (e.g. `'${rd}'`). \n- If you do not include a date predicate, the job will scan the full table (or\n  whatever the query returns). \n- If omitted, the platform will generate a default(vendor compatible) `SELECT * FROM \"<schema>\".\"<table>\"`"},"RunDateValue":{"description":"Start of the time slice used only when the `sourceQuery` contains the `${rd}` placeholder.\nThe engine substitutes `${rd}` using `jobSettings.dateFormat`:\n  - DATE → `yyyy-MM-dd`\n  - TIMESTAMP → RFC 3339 `yyyy-MM-dd'T'HH:mm:ss'Z'` \n\nIf `sourceQuery` omits `${rd}`, this value does **not** restrict the data scan and\nonly affects the **run’s date** (e.g., run metadata/labeling, scheduling context).","oneOf":[{"$ref":"#/components/schemas/DateOnly"},{"$ref":"#/components/schemas/Rfc3339DateTime"}],"discriminator":{"propertyName":"kind","mapping":{"DATE":"#/components/schemas/DateOnly","TIMESTAMP":"#/components/schemas/Rfc3339DateTime"}}},"DateOnly":{"type":"object","required":["kind","value"],"description":"Calendar date, format yyyy-MM-dd.","properties":{"kind":{"type":"string","pattern":"^DATE$"},"value":{"type":"string","format":"date"}}},"Rfc3339DateTime":{"type":"object","required":["kind","value"],"format":"date-time","description":"RFC 3339 timestamp with timezone offset. The server normalizes all inputs to UTC and responses are returned in UTC (trailing 'Z'), seconds precision.","properties":{"kind":{"type":"string","pattern":"^TIMESTAMP$"},"value":{"type":"string","format":"date-time"}}},"RunDateEndValue":{"nullable":true,"oneOf":[{"$ref":"#/components/schemas/DateOnly"},{"$ref":"#/components/schemas/Rfc3339DateTime"}],"discriminator":{"propertyName":"kind","mapping":{"DATE":"#/components/schemas/DateOnly","TIMESTAMP":"#/components/schemas/Rfc3339DateTime"}},"description":"**Exclusive end** of the time slice, used only when the `sourceQuery` contains the `${rdEnd}` placeholder.\nMust be **greater than** `runDate` when both are provided. Formatted per `jobSettings.dateFormat`:\n  - DATE → `yyyy-MM-dd`\n  - TIMESTAMP → RFC 3339 `yyyy-MM-dd'T'HH:mm:ss'Z'` \n\nIf `sourceQuery` omits `${rdEnd}`, this value does **not** restrict the data scan and is ignored for run timing."},"DataLocation":{"description":"Identifies where the job reads data from. Combines the platform connection and the specific catalog/schema/table location inside that connection.\n","required":["edgeSiteName","edgeConnectionName","dataSourceName","schemaName","tableName"],"type":"object","properties":{"edgeSiteName":{"description":"Edge site name","type":"string"},"edgeConnectionName":{"type":"string","description":"Edge connection name"},"dataSourceName":{"type":"string","description":"Data source (database/catalog) name"},"databaseProductName":{"$ref":"#/components/schemas/DatabaseProduct"},"schemaName":{"description":"Schema name","type":"string"},"tableName":{"description":"Table name","type":"string"}}},"DatabaseProduct":{"type":"string","readOnly":true,"description":"The database vendor associated with the connection.\n\nCurrent possible values include:\n    * `ATHENA`\n    * `BIGQUERY`\n    * `DATABRICKS`\n    * `DB2`\n    * `MYSQL`\n    * `POSTGRES`\n    * `REDSHIFT`\n    * `SAP`\n    * `SNOWFLAKE`\n    * `SQLSERVER`\n    * `TRINO`\n\n  Additional values will be introduced in the future."},"JobSettings":{"type":"object","description":"Job-level execution settings, including date format and pushdown/pullup tuning. Pullup jobs are available only when the Pullup preview feature is enabled.\n","properties":{"dateFormat":{"$ref":"#/components/schemas/DateFormat"},"pushdownSettings":{"$ref":"#/components/schemas/PushdownSettings"},"pullupSettings":{"$ref":"#/components/schemas/PullupSettings"}}},"DateFormat":{"type":"string","default":"DATE","description":"Date format used for `runDate` / `runDateEnd`.\nSupported values:\n  - DATE -> yyyy-MM-dd \n  - TIMESTAMP -> RFC 3339 timestamp, example - 2025-10-23T13:50:02Z","enum":["DATE","TIMESTAMP"]},"PushdownSettings":{"type":"object","nullable":true,"description":"Settings for pushdown execution. Controls concurrency used by the source system connection.\nProvide this object only when the job's jobType is PUSHDOWN. Omit or set to null for non-pushdown jobs.","properties":{"connections":{"type":"integer","minimum":1,"default":10,"description":"Number of concurrent source connections\n"},"threads":{"type":"integer","minimum":1,"default":5,"description":"Worker threads per connection for pushdown queries\n"}}},"PullupSettings":{"type":"object","nullable":true,"description":"Settings for pullup execution. Controls partitioning and Spark sizing.\nProvide this object only when the job's jobType is PULLUP. Omit or set to null for non-pullup jobs.\n\nPullup functionality is available only when the Pullup preview feature is enabled.","properties":{"loadOptions":{"$ref":"#/components/schemas/LoadOptions"},"sparkJobSizing":{"$ref":"#/components/schemas/SparkJobSizing"},"sparkSqlProperties":{"type":"object","nullable":true,"description":"Arbitrary Spark SQL session properties as key/value pairs\n","additionalProperties":{"type":"string"}}}},"LoadOptions":{"type":"object","nullable":true,"description":"Data loading options applied when reading from the source\n","properties":{"numPartitions":{"type":"integer","minimum":0,"default":0,"description":"Number of Spark input partitions\n"},"parallelJdbcOptions":{"$ref":"#/components/schemas/ParallelJdbcOptions"}}},"ParallelJdbcOptions":{"nullable":true,"description":"Options for parallel JDBC partitioning. Choose a `mode`, which determines which\nfields are required: \n - `AUTO` – system selects column & partitions \n - `AUTO_COLUMN` – system selects column; you provide `partitionNumber`\n - `MANUAL` – you provide `partitionColumn` and `partitionNumber`","oneOf":[{"$ref":"#/components/schemas/ParallelJdbcOptionsAuto"},{"$ref":"#/components/schemas/ParallelJdbcOptionsAutoColumn"},{"$ref":"#/components/schemas/ParallelJdbcOptionsManual"}],"discriminator":{"propertyName":"mode","mapping":{"AUTO":"#/components/schemas/ParallelJdbcOptionsAuto","AUTO_COLUMN":"#/components/schemas/ParallelJdbcOptionsAutoColumn","MANUAL":"#/components/schemas/ParallelJdbcOptionsManual"}},"default":null},"ParallelJdbcOptionsAuto":{"type":"object","description":"Automatic column & partition selection.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO`."}},"required":["mode"],"additionalProperties":false},"ParallelJdbcOptionsAutoColumn":{"type":"object","description":"Automatic column selection; you specify the number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO_COLUMN`."},"partitionNumber":{"type":"integer","minimum":0,"description":"Number of partitions to use."}},"required":["mode","partitionNumber"],"additionalProperties":false},"ParallelJdbcOptionsManual":{"type":"object","description":"You specify both the partition column and number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `MANUAL`."},"partitionColumn":{"type":"string","description":"Numeric/integer column to partition on."},"partitionNumber":{"type":"integer","minimum":1,"description":"Number of partitions to use."}},"required":["mode","partitionColumn","partitionNumber"],"additionalProperties":false},"SparkJobSizing":{"type":"object","nullable":true,"description":"Optional manual sizing for Spark resources.\n\nIf this object is **omitted or null**, the platform automatically selects\nSpark resources based on the source query.","properties":{"numExecutors":{"type":"integer","minimum":1,"description":"Number of executors to use (upper bound).","default":1},"driverCores":{"type":"integer","minimum":1,"description":"Number of driver CPU cores.","default":1},"numExecutorCores":{"type":"integer","minimum":1,"description":"Number of CPU cores per executor.","default":1},"executorMemoryGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Maximum memory per executor in GB.","default":1}]},"driverMemoryGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Driver memory in GB.","default":1}]},"memoryOverheadGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Additional off-heap memory per executor in GB.","nullable":true,"default":null}]}},"additionalProperties":false},"SparkMemoryGB":{"type":"integer","description":"Memory amount in gigabytes. The unit is in **GB**, fractional values are not supported\n"},"JobMonitoringSettings":{"type":"object","description":"Monitoring configuration for the job, excluding custom rules. Currently, only adaptive rules are supported. This structure is designed for future extensibility to include additional monitor types.","properties":{"adaptiveMonitors":{"$ref":"#/components/schemas/AdaptiveMonitors"}}},"AdaptiveMonitors":{"type":"object","description":"Feature toggles for adaptive monitors computed during profiling. All data quality jobs always run profiling with data type detection and schema-change checks enabled.\n","properties":{"descriptiveStatistics":{"type":"boolean","default":false,"description":"Show descriptive statistics in profiling results (e.g., count, min, mean, max). Note: may expose sensitive values such as minimum/maximum. If disabled, all column values are masked in the profiling results.\n"},"emptyFields":{"type":"boolean","default":true,"description":"Detect changes in the number of empty values in numeric columns.\n"},"executionTime":{"type":"boolean","default":false,"description":"Track changes in total execution time of the data job.\n"},"max":{"type":"boolean","default":false,"description":"Detect changes in the highest value across numeric columns.\n"},"mean":{"type":"boolean","default":false,"description":"Detect changes in the average (mean) value across numeric columns.\n"},"min":{"type":"boolean","default":false,"description":"Detect changes in the lowest value across numeric columns.\n"},"nullValues":{"type":"boolean","default":true,"description":"Detect changes in the number of NULL values across all columns.\n"},"rowCount":{"type":"boolean","default":true,"description":"Track changes in the total number of rows.\n"},"uniqueness":{"type":"boolean","default":true,"description":"Track changes in the number of distinct values across all columns.\n"},"settings":{"$ref":"#/components/schemas/AdaptiveMonitorSettings"}}},"AdaptiveMonitorSettings":{"type":"object","description":"Optional learning/tuning parameters applied to the above monitors.\n","properties":{"dataLookBack":{"type":"integer","minimum":0,"default":10,"description":"Number of historical runs to consider when detecting changes (0 = no look back).\n"},"learningPhase":{"type":"integer","minimum":0,"default":4,"description":"Number of initial runs used to learn a baseline before signaling changes (0 = no learning phase).    \n"}}},"JobNotifications":{"type":"object","description":"Controls which events trigger a notification, which channels deliver them, and what message is sent. This schema is **channel-extensible**: it starts with EMAIL and will be updated in future versions to support additional channels (e.g., Slack) without breaking existing clients.\n","properties":{"notificationOptions":{"type":"array","description":"Per-event settings. Add one item per event to monitor.","items":{"$ref":"#/components/schemas/NotificationOption"}},"globalMessage":{"type":"string","description":"Default message template when `useIndividualMessages` is false."},"useIndividualMessages":{"type":"boolean","description":"If true, use each option's `message`; otherwise use `globalMessage`."},"channels":{"type":"array","minItems":1,"description":"Delivery channels and their destinations","items":{"$ref":"#/components/schemas/NotificationChannel"}}},"required":["notificationOptions","channels"]},"NotificationOption":{"type":"object","description":"Configuration for a single notification event.\n","required":["notificationType","enabled"],"properties":{"notificationType":{"$ref":"#/components/schemas/NotificationType"},"enabled":{"type":"boolean","description":"Whether this notification is active."},"message":{"type":"string","description":"Custom message for this notification. Used when `useIndividualMessages` is `true`. If omitted or blank, the service falls back to `globalMessage`, if that is also blank, a system default template is used.\n"},"quantity":{"type":"integer","minimum":0,"nullable":true,"description":"Threshold used **only** for specific types:  \n  - `ROWS_LESS_THAN_LIMIT` – minimum expected row count.  \n  - `RUNS_WITHOUT_DATA` – number of consecutive empty runs (N).  \n  - `DAYS_WITHOUT_DATA` – number of days with no data (N).  \n  - `SCORE_LESS_THAN_LIMIT` – minimum acceptable score.  \n  - `RUN_TIME_MORE_THEN_LIMIT` – maximum allowed runtime in minutes.  \nIgnored for other types."}}},"NotificationType":{"type":"string","description":"The event that triggers this notification.\n\nCurrent possible values include:\n  * `JOB_FAILED`            – sent when a job run fails.\n  * `JOB_COMPLETED`         – sent when a job run finishes successfully.\n  * `ROWS_LESS_THAN_LIMIT`  – sent when produced row count is below a limit.\n  * `RUNS_WITHOUT_DATA`     – sent after N consecutive runs produced no data.\n  * `DAYS_WITHOUT_DATA`     – sent when no data was produced for N days.\n  * `SCORE_LESS_THAN_LIMIT` – sent when quality score is below a limit.\n  * `RUN_TIME_MORE_THEN_LIMIT` – sent when runtime exceeds a limit (in minutes).\n\nAdditional notification types may be introduced in the future."},"NotificationChannel":{"type":"object","description":"Notification delivery channel and its destination/parameters.\n\nCurrent supported channel type:\n  * `EMAIL` – send notifications via email to the given recipients.\n\nAdditional channel types (e.g., `SLACK`) may be introduced in the future.","properties":{"channel":{"type":"string","description":"Delivery channel type.\n\nCurrent value:\n  * `EMAIL`\n\nAdditional values MAY be added in future versions."},"recipients":{"type":"array","minItems":1,"description":"Platform usernames to receive email notifications when `channel = EMAIL`\n(e.g., `jsmith`, `adoe`).","items":{"type":"string"}}},"additionalProperties":true},"SchedulingSettings":{"nullable":true,"description":"Controls when a scheduled job runs and how `runDate` is adjusted. Exactly **one** schedule mode is allowed. **Optional** If omitted or null, the job will not be scheduled.\n","oneOf":[{"$ref":"#/components/schemas/SchedulingHourly"},{"$ref":"#/components/schemas/SchedulingDaily"},{"$ref":"#/components/schemas/SchedulingMonthly"}],"discriminator":{"propertyName":"schedulerMode","mapping":{"HOURLY":"#/components/schemas/SchedulingHourly","DAILY":"#/components/schemas/SchedulingDaily","MONTHLY":"#/components/schemas/SchedulingMonthly"}}},"SchedulingHourly":{"allOf":[{"$ref":"#/components/schemas/SchedulingBase"},{"type":"object","required":["hourly","schedulerMode"],"description":"Hourly schedule configuration. If scheduleRunTime is set \"14:30:00\", the job runs at 14:30, 15:30, 16:30, etc.","properties":{"schedulerMode":{"type":"string","description":"Schedule type.\n\nFor this schema, the value MUST be `HOURLY`."},"hourly":{"type":"object","description":"Hourly schedule rules.","required":["hourlyOffset"],"properties":{"hourlyOffset":{"type":"string","description":"Run-date offset in hours relative to the scheduled time.\n\nCurrent possible values include:\n  * `SCHEDULED` – use the scheduled date/time.\n  * `ONE_HOUR` – run date is 1 hour before the scheduled time.\n  * `TWO_HOURS` – run date is 2 hours before the scheduled time.\n\nAdditional values MAY be added in future versions."}}}}}]},"SchedulingBase":{"type":"object","required":["isActive","scheduledRunTime","schedulerMode"],"properties":{"isActive":{"type":"boolean","description":"Enable/disable the schedule (disabled schedules do not trigger runs)."},"scheduledRunTime":{"type":"string","description":"Time of day in **UTC**, format `HH:mm:ss`.  (24 hours) Example: `14:10:00` means the job starts at 14:10:00 UTC.\n"},"schedulerMode":{"type":"string","description":"Schedule type.\n\nCurrent possible values:\n  * `HOURLY`\n  * `DAILY`\n  * `MONTHLY`\n\nAdditional modes MAY be added in future versions."}}},"SchedulingDaily":{"allOf":[{"$ref":"#/components/schemas/SchedulingBase"},{"type":"object","required":["daily","schedulerMode"],"properties":{"schedulerMode":{"type":"string","description":"Schedule type.\n\nFor this schema, the value MUST be `DAILY`."},"daily":{"type":"object","description":"Daily schedule rules.","required":["dailyOffset","daysOfWeek"],"properties":{"dailyOffset":{"type":"string","description":"Run-date offset in days relative to the scheduled day.\n\nCurrent possible values include:\n  * `SCHEDULED`\n  * `ONE_DAY`\n  * `TWO_DAYS`\n  * `THREE_DAYS`\n  * `FOUR_DAYS`\n  * `FIVE_DAYS`\n  * `SIX_DAYS`\n  * `SEVEN_DAYS`\n\nAdditional values MAY be added in future versions."},"daysOfWeek":{"type":"array","minItems":1,"items":{"type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"description":"Days of week to run."}}}}}]},"SchedulingMonthly":{"allOf":[{"$ref":"#/components/schemas/SchedulingBase"},{"type":"object","required":["monthly","schedulerMode"],"properties":{"schedulerMode":{"type":"string","description":"Schedule type.\n\nFor this schema, the value MUST be `MONTHLY`."},"monthly":{"type":"object","description":"Monthly schedule rules.","required":["monthlyRepeat","monthlyOffset"],"properties":{"monthlyRepeat":{"type":"string","description":"Which day of the month to run the job on.\n\nCurrent possible values:\n  * `FIRST` – first day of the month\n  * `LAST`  – last day of the month\n  * `DAY`   – specific calendar day (requires `dayNumber` in 1–31 range)\n\nAdditional values MAY be added in future versions."},"monthlyOffset":{"type":"string","description":"Run-date offset applied to the scheduled monthly day.\n\nCurrent possible values include:\n  * `SCHEDULED`              - use the scheduled date\n  * `FIRST_OF_CURRENT_MONTH` - first day of the current month\n  * `LAST_OF_CURRENT_MONTH`  - last day of the current month\n  * `FIRST_OF_PRIOR_MONTH`   - first day of the prior month\n  * `LAST_OF_PRIOR_MONTH`    - last day of the prior month\n\nAdditional values may be added in future versions."},"dayNumber":{"type":"integer","minimum":1,"maximum":31,"nullable":true,"description":"Required when `monthlyRepeat = DAY`."}}}}}]}}}}
```

## The JobDefinitionUpdateRequest object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"JobDefinitionUpdateRequest":{"type":"object","properties":{"jobName":{"type":"string","description":"The name of an existing job definition to update"},"sourceQuery":{"$ref":"#/components/schemas/SourceQuery"},"runDate":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/RunDateValue"},{"description":"Start of the time slice used only when the `sourceQuery` contains the `${rd}` placeholder.\nThe engine substitutes `${rd}` using `jobSettings.dateFormat`:\n  - DATE → `yyyy-MM-dd`\n  - TIMESTAMP → RFC 3339 `yyyy-MM-dd'T'HH:mm:ss'Z'` \n\nIf `sourceQuery` omits `${rd}`, this value does **not** restrict the data scan and\nonly affects the **run’s date** (e.g., run metadata/labeling, scheduling context).\n \n**Optional**. May be omitted or set to null.\nIf not provided, no updates will be made to existing run date."}]},"runDateEnd":{"$ref":"#/components/schemas/RunDateEndValue"},"dataLocation":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/DataLocation"},{"description":"Data location details for the job, including edge site, connection, data source, schema, and table.\nIf table was moved/renamed, provide the new details here.\n\n**Optional**. May be omitted or set to null.\nIf not provided, no updates will be made to existing data location."}]},"jobSettings":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/JobSettingsPatch"},{"description":"Job-level execution settings. \n\n**Optional**. May be omitted or set to null.\nIf not provided, no updates will be made to existing job settings."}]},"monitoringSettings":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/JobMonitoringSettingsPatch"},{"description":"Monitoring configuration for the job, excluding custom rules. Currently, only adaptive rules are supported. \nThis structure is designed for future extensibility to include additional monitor types.  \n\n**Optional**. May be omitted or set to null.\nIf not provided, no updates will be made to existing monitoring settings."}]},"notifications":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/JobNotifications"},{"description":"Notification configuration for a job. Controls which events trigger a notification, who receives it, \nand which message is sent.\n\n**Optional**. May be omitted or set to null.\nIf not provided, no updates will be made to existing notifications."}]},"schedulingSettings":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/SchedulingSettings"},{"description":"Controls when a scheduled job runs and how the runDate is adjusted by schedule-specific offsets. \nThe scheduler runs at the given UTC time and applies the selected mode (HOURLY/DAILY/MONTHLY).\n\n**Optional**. May be omitted or set to null.\nIf not provided, no updates will be made to existing scheduling settings."}]}}},"SourceQuery":{"nullable":true,"type":"string","description":"Source SQL for the job. \n\n- If you want to limit the data slice by date/time, **do not hard-code literal\n  dates** in the SQL. Always use the placeholders `${rd}` (start) and `${rdEnd}`\n  (exclusive end), and pass the actual values via the `runDate` / `runDateEnd`\n  fields of the request.  \n  Example pattern: `WHERE \"trade_date\" >= '${rd}' AND \"trade_date\" < '${rdEnd}'` \n- The engine will substitute `${rd}` / `${rdEnd}` based on your chosen\n  `dateFormat` (DATE or TIMESTAMP). \n- Keep the placeholders inside single quotes in SQL (e.g. `'${rd}'`). \n- If you do not include a date predicate, the job will scan the full table (or\n  whatever the query returns). \n- If omitted, the platform will generate a default(vendor compatible) `SELECT * FROM \"<schema>\".\"<table>\"`"},"RunDateValue":{"description":"Start of the time slice used only when the `sourceQuery` contains the `${rd}` placeholder.\nThe engine substitutes `${rd}` using `jobSettings.dateFormat`:\n  - DATE → `yyyy-MM-dd`\n  - TIMESTAMP → RFC 3339 `yyyy-MM-dd'T'HH:mm:ss'Z'` \n\nIf `sourceQuery` omits `${rd}`, this value does **not** restrict the data scan and\nonly affects the **run’s date** (e.g., run metadata/labeling, scheduling context).","oneOf":[{"$ref":"#/components/schemas/DateOnly"},{"$ref":"#/components/schemas/Rfc3339DateTime"}],"discriminator":{"propertyName":"kind","mapping":{"DATE":"#/components/schemas/DateOnly","TIMESTAMP":"#/components/schemas/Rfc3339DateTime"}}},"DateOnly":{"type":"object","required":["kind","value"],"description":"Calendar date, format yyyy-MM-dd.","properties":{"kind":{"type":"string","pattern":"^DATE$"},"value":{"type":"string","format":"date"}}},"Rfc3339DateTime":{"type":"object","required":["kind","value"],"format":"date-time","description":"RFC 3339 timestamp with timezone offset. The server normalizes all inputs to UTC and responses are returned in UTC (trailing 'Z'), seconds precision.","properties":{"kind":{"type":"string","pattern":"^TIMESTAMP$"},"value":{"type":"string","format":"date-time"}}},"RunDateEndValue":{"nullable":true,"oneOf":[{"$ref":"#/components/schemas/DateOnly"},{"$ref":"#/components/schemas/Rfc3339DateTime"}],"discriminator":{"propertyName":"kind","mapping":{"DATE":"#/components/schemas/DateOnly","TIMESTAMP":"#/components/schemas/Rfc3339DateTime"}},"description":"**Exclusive end** of the time slice, used only when the `sourceQuery` contains the `${rdEnd}` placeholder.\nMust be **greater than** `runDate` when both are provided. Formatted per `jobSettings.dateFormat`:\n  - DATE → `yyyy-MM-dd`\n  - TIMESTAMP → RFC 3339 `yyyy-MM-dd'T'HH:mm:ss'Z'` \n\nIf `sourceQuery` omits `${rdEnd}`, this value does **not** restrict the data scan and is ignored for run timing."},"DataLocation":{"description":"Identifies where the job reads data from. Combines the platform connection and the specific catalog/schema/table location inside that connection.\n","required":["edgeSiteName","edgeConnectionName","dataSourceName","schemaName","tableName"],"type":"object","properties":{"edgeSiteName":{"description":"Edge site name","type":"string"},"edgeConnectionName":{"type":"string","description":"Edge connection name"},"dataSourceName":{"type":"string","description":"Data source (database/catalog) name"},"databaseProductName":{"$ref":"#/components/schemas/DatabaseProduct"},"schemaName":{"description":"Schema name","type":"string"},"tableName":{"description":"Table name","type":"string"}}},"DatabaseProduct":{"type":"string","readOnly":true,"description":"The database vendor associated with the connection.\n\nCurrent possible values include:\n    * `ATHENA`\n    * `BIGQUERY`\n    * `DATABRICKS`\n    * `DB2`\n    * `MYSQL`\n    * `POSTGRES`\n    * `REDSHIFT`\n    * `SAP`\n    * `SNOWFLAKE`\n    * `SQLSERVER`\n    * `TRINO`\n\n  Additional values will be introduced in the future."},"JobSettingsPatch":{"type":"object","nullable":true,"properties":{"dateFormat":{"$ref":"#/components/schemas/DateFormatPatch"},"pushdownSettings":{"$ref":"#/components/schemas/PushdownSettingsPatch"},"pullupSettings":{"$ref":"#/components/schemas/PullupSettingsPatch"}}},"DateFormatPatch":{"type":"string","nullable":true,"description":"Date format used for `runDate` / `runDateEnd`.\nSupported values:\n  - DATE -> yyyy-MM-dd \n  - TIMESTAMP -> RFC 3339 timestamp, example - 2025-10-23T13:50:02Z","enum":["DATE","TIMESTAMP"]},"PushdownSettingsPatch":{"type":"object","nullable":true,"description":"Settings for pushdown execution. Controls concurrency used by the source system connection.\nProvide this object only when the job's jobType is PUSHDOWN. Omit or set to null for non-pushdown jobs.","properties":{"connections":{"type":"integer","description":"Number of concurrent source connections\n","minimum":1,"nullable":true},"threads":{"type":"integer","description":"Worker threads per connection for pushdown queries\n","minimum":1,"nullable":true}}},"PullupSettingsPatch":{"type":"object","nullable":true,"description":"Settings for pullup execution. Controls partitioning and Spark sizing.\nProvide this object only when the job's jobType is PULLUP. Omit or set to null for non-pullup jobs.\n\nPullup functionality is available only when the Pullup preview feature is enabled.","properties":{"loadOptions":{"$ref":"#/components/schemas/LoadOptionsPatch"},"sparkJobSizing":{"$ref":"#/components/schemas/SparkJobSizingPatch"},"sparkSqlProperties":{"type":"object","nullable":true,"description":"Arbitrary Spark SQL session properties as key/value pairs\n","additionalProperties":{"type":"string"}}}},"LoadOptionsPatch":{"type":"object","nullable":true,"description":"Data loading options applied when reading from the source\n","properties":{"numPartitions":{"type":"integer","nullable":true,"minimum":0,"description":"Number of Spark input partitions\n"},"parallelJdbcOptions":{"$ref":"#/components/schemas/ParallelJdbcOptions"}}},"ParallelJdbcOptions":{"nullable":true,"description":"Options for parallel JDBC partitioning. Choose a `mode`, which determines which\nfields are required: \n - `AUTO` – system selects column & partitions \n - `AUTO_COLUMN` – system selects column; you provide `partitionNumber`\n - `MANUAL` – you provide `partitionColumn` and `partitionNumber`","oneOf":[{"$ref":"#/components/schemas/ParallelJdbcOptionsAuto"},{"$ref":"#/components/schemas/ParallelJdbcOptionsAutoColumn"},{"$ref":"#/components/schemas/ParallelJdbcOptionsManual"}],"discriminator":{"propertyName":"mode","mapping":{"AUTO":"#/components/schemas/ParallelJdbcOptionsAuto","AUTO_COLUMN":"#/components/schemas/ParallelJdbcOptionsAutoColumn","MANUAL":"#/components/schemas/ParallelJdbcOptionsManual"}},"default":null},"ParallelJdbcOptionsAuto":{"type":"object","description":"Automatic column & partition selection.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO`."}},"required":["mode"],"additionalProperties":false},"ParallelJdbcOptionsAutoColumn":{"type":"object","description":"Automatic column selection; you specify the number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO_COLUMN`."},"partitionNumber":{"type":"integer","minimum":0,"description":"Number of partitions to use."}},"required":["mode","partitionNumber"],"additionalProperties":false},"ParallelJdbcOptionsManual":{"type":"object","description":"You specify both the partition column and number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `MANUAL`."},"partitionColumn":{"type":"string","description":"Numeric/integer column to partition on."},"partitionNumber":{"type":"integer","minimum":1,"description":"Number of partitions to use."}},"required":["mode","partitionColumn","partitionNumber"],"additionalProperties":false},"SparkJobSizingPatch":{"type":"object","nullable":true,"description":"Optional manual sizing for Spark resources.\n\nIf this object is **omitted or null**, the platform automatically selects\nSpark resources based on the source query.","properties":{"numExecutors":{"type":"integer","minimum":1,"description":"Number of executors to use (upper bound)."},"driverCores":{"type":"integer","minimum":1,"description":"Number of driver CPU cores."},"numExecutorCores":{"type":"integer","minimum":1,"description":"Number of CPU cores per executor."},"executorMemoryGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Maximum memory per executor in GB."}]},"driverMemoryGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Driver memory in GB."}]},"memoryOverheadGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Additional off-heap memory per executor in GB.","nullable":true}]}},"additionalProperties":false},"SparkMemoryGB":{"type":"integer","description":"Memory amount in gigabytes. The unit is in **GB**, fractional values are not supported\n"},"JobMonitoringSettingsPatch":{"type":"object","description":"Monitoring configuration for the job, excluding custom rules. Currently, only adaptive rules are supported. This structure is designed for future extensibility to include additional monitor types.","properties":{"adaptiveMonitors":{"$ref":"#/components/schemas/AdaptiveMonitorsPatch"}}},"AdaptiveMonitorsPatch":{"type":"object","description":"Feature toggles for adaptive monitors computed during profiling. All data quality jobs always run profiling with data type detection and schema-change checks enabled.\n","properties":{"descriptiveStatistics":{"type":"boolean","nullable":true,"description":"Show descriptive statistics in profiling results (e.g., count, min, mean, max). Note: may expose sensitive values such as minimum/maximum. If disabled, all column values are masked in the profiling results.\n"},"emptyFields":{"type":"boolean","nullable":true,"description":"Detect changes in the number of empty values in numeric columns.\n"},"executionTime":{"type":"boolean","nullable":true,"description":"Track changes in total execution time of the data job.\n"},"max":{"type":"boolean","nullable":true,"description":"Detect changes in the highest value across numeric columns.\n"},"mean":{"type":"boolean","nullable":true,"description":"Detect changes in the average (mean) value across numeric columns.\n"},"min":{"type":"boolean","nullable":true,"description":"Detect changes in the lowest value across numeric columns.\n"},"nullValues":{"type":"boolean","nullable":true,"description":"Detect changes in the number of NULL values across all columns.\n"},"rowCount":{"type":"boolean","nullable":true,"description":"Track changes in the total number of rows.\n"},"uniqueness":{"type":"boolean","nullable":true,"description":"Track changes in the number of distinct values across all columns.\n"},"settings":{"$ref":"#/components/schemas/AdaptiveMonitorSettingsPatch"}}},"AdaptiveMonitorSettingsPatch":{"type":"object","description":"Optional learning/tuning parameters applied to the above monitors.\n","properties":{"dataLookBack":{"type":"integer","nullable":true,"minimum":0,"description":"Number of historical runs to consider when detecting changes (0 = no look back).\n"},"learningPhase":{"type":"integer","minimum":0,"nullable":true,"description":"Number of initial runs used to learn a baseline before signaling changes (0 = no learning phase).          \n"}}},"JobNotifications":{"type":"object","description":"Controls which events trigger a notification, which channels deliver them, and what message is sent. This schema is **channel-extensible**: it starts with EMAIL and will be updated in future versions to support additional channels (e.g., Slack) without breaking existing clients.\n","properties":{"notificationOptions":{"type":"array","description":"Per-event settings. Add one item per event to monitor.","items":{"$ref":"#/components/schemas/NotificationOption"}},"globalMessage":{"type":"string","description":"Default message template when `useIndividualMessages` is false."},"useIndividualMessages":{"type":"boolean","description":"If true, use each option's `message`; otherwise use `globalMessage`."},"channels":{"type":"array","minItems":1,"description":"Delivery channels and their destinations","items":{"$ref":"#/components/schemas/NotificationChannel"}}},"required":["notificationOptions","channels"]},"NotificationOption":{"type":"object","description":"Configuration for a single notification event.\n","required":["notificationType","enabled"],"properties":{"notificationType":{"$ref":"#/components/schemas/NotificationType"},"enabled":{"type":"boolean","description":"Whether this notification is active."},"message":{"type":"string","description":"Custom message for this notification. Used when `useIndividualMessages` is `true`. If omitted or blank, the service falls back to `globalMessage`, if that is also blank, a system default template is used.\n"},"quantity":{"type":"integer","minimum":0,"nullable":true,"description":"Threshold used **only** for specific types:  \n  - `ROWS_LESS_THAN_LIMIT` – minimum expected row count.  \n  - `RUNS_WITHOUT_DATA` – number of consecutive empty runs (N).  \n  - `DAYS_WITHOUT_DATA` – number of days with no data (N).  \n  - `SCORE_LESS_THAN_LIMIT` – minimum acceptable score.  \n  - `RUN_TIME_MORE_THEN_LIMIT` – maximum allowed runtime in minutes.  \nIgnored for other types."}}},"NotificationType":{"type":"string","description":"The event that triggers this notification.\n\nCurrent possible values include:\n  * `JOB_FAILED`            – sent when a job run fails.\n  * `JOB_COMPLETED`         – sent when a job run finishes successfully.\n  * `ROWS_LESS_THAN_LIMIT`  – sent when produced row count is below a limit.\n  * `RUNS_WITHOUT_DATA`     – sent after N consecutive runs produced no data.\n  * `DAYS_WITHOUT_DATA`     – sent when no data was produced for N days.\n  * `SCORE_LESS_THAN_LIMIT` – sent when quality score is below a limit.\n  * `RUN_TIME_MORE_THEN_LIMIT` – sent when runtime exceeds a limit (in minutes).\n\nAdditional notification types may be introduced in the future."},"NotificationChannel":{"type":"object","description":"Notification delivery channel and its destination/parameters.\n\nCurrent supported channel type:\n  * `EMAIL` – send notifications via email to the given recipients.\n\nAdditional channel types (e.g., `SLACK`) may be introduced in the future.","properties":{"channel":{"type":"string","description":"Delivery channel type.\n\nCurrent value:\n  * `EMAIL`\n\nAdditional values MAY be added in future versions."},"recipients":{"type":"array","minItems":1,"description":"Platform usernames to receive email notifications when `channel = EMAIL`\n(e.g., `jsmith`, `adoe`).","items":{"type":"string"}}},"additionalProperties":true},"SchedulingSettings":{"nullable":true,"description":"Controls when a scheduled job runs and how `runDate` is adjusted. Exactly **one** schedule mode is allowed. **Optional** If omitted or null, the job will not be scheduled.\n","oneOf":[{"$ref":"#/components/schemas/SchedulingHourly"},{"$ref":"#/components/schemas/SchedulingDaily"},{"$ref":"#/components/schemas/SchedulingMonthly"}],"discriminator":{"propertyName":"schedulerMode","mapping":{"HOURLY":"#/components/schemas/SchedulingHourly","DAILY":"#/components/schemas/SchedulingDaily","MONTHLY":"#/components/schemas/SchedulingMonthly"}}},"SchedulingHourly":{"allOf":[{"$ref":"#/components/schemas/SchedulingBase"},{"type":"object","required":["hourly","schedulerMode"],"description":"Hourly schedule configuration. If scheduleRunTime is set \"14:30:00\", the job runs at 14:30, 15:30, 16:30, etc.","properties":{"schedulerMode":{"type":"string","description":"Schedule type.\n\nFor this schema, the value MUST be `HOURLY`."},"hourly":{"type":"object","description":"Hourly schedule rules.","required":["hourlyOffset"],"properties":{"hourlyOffset":{"type":"string","description":"Run-date offset in hours relative to the scheduled time.\n\nCurrent possible values include:\n  * `SCHEDULED` – use the scheduled date/time.\n  * `ONE_HOUR` – run date is 1 hour before the scheduled time.\n  * `TWO_HOURS` – run date is 2 hours before the scheduled time.\n\nAdditional values MAY be added in future versions."}}}}}]},"SchedulingBase":{"type":"object","required":["isActive","scheduledRunTime","schedulerMode"],"properties":{"isActive":{"type":"boolean","description":"Enable/disable the schedule (disabled schedules do not trigger runs)."},"scheduledRunTime":{"type":"string","description":"Time of day in **UTC**, format `HH:mm:ss`.  (24 hours) Example: `14:10:00` means the job starts at 14:10:00 UTC.\n"},"schedulerMode":{"type":"string","description":"Schedule type.\n\nCurrent possible values:\n  * `HOURLY`\n  * `DAILY`\n  * `MONTHLY`\n\nAdditional modes MAY be added in future versions."}}},"SchedulingDaily":{"allOf":[{"$ref":"#/components/schemas/SchedulingBase"},{"type":"object","required":["daily","schedulerMode"],"properties":{"schedulerMode":{"type":"string","description":"Schedule type.\n\nFor this schema, the value MUST be `DAILY`."},"daily":{"type":"object","description":"Daily schedule rules.","required":["dailyOffset","daysOfWeek"],"properties":{"dailyOffset":{"type":"string","description":"Run-date offset in days relative to the scheduled day.\n\nCurrent possible values include:\n  * `SCHEDULED`\n  * `ONE_DAY`\n  * `TWO_DAYS`\n  * `THREE_DAYS`\n  * `FOUR_DAYS`\n  * `FIVE_DAYS`\n  * `SIX_DAYS`\n  * `SEVEN_DAYS`\n\nAdditional values MAY be added in future versions."},"daysOfWeek":{"type":"array","minItems":1,"items":{"type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"description":"Days of week to run."}}}}}]},"SchedulingMonthly":{"allOf":[{"$ref":"#/components/schemas/SchedulingBase"},{"type":"object","required":["monthly","schedulerMode"],"properties":{"schedulerMode":{"type":"string","description":"Schedule type.\n\nFor this schema, the value MUST be `MONTHLY`."},"monthly":{"type":"object","description":"Monthly schedule rules.","required":["monthlyRepeat","monthlyOffset"],"properties":{"monthlyRepeat":{"type":"string","description":"Which day of the month to run the job on.\n\nCurrent possible values:\n  * `FIRST` – first day of the month\n  * `LAST`  – last day of the month\n  * `DAY`   – specific calendar day (requires `dayNumber` in 1–31 range)\n\nAdditional values MAY be added in future versions."},"monthlyOffset":{"type":"string","description":"Run-date offset applied to the scheduled monthly day.\n\nCurrent possible values include:\n  * `SCHEDULED`              - use the scheduled date\n  * `FIRST_OF_CURRENT_MONTH` - first day of the current month\n  * `LAST_OF_CURRENT_MONTH`  - last day of the current month\n  * `FIRST_OF_PRIOR_MONTH`   - first day of the prior month\n  * `LAST_OF_PRIOR_MONTH`    - last day of the prior month\n\nAdditional values may be added in future versions."},"dayNumber":{"type":"integer","minimum":1,"maximum":31,"nullable":true,"description":"Required when `monthlyRepeat = DAY`."}}}}}]}}}}
```

## The JobDefinitionCreateRequest object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"JobDefinitionCreateRequest":{"type":"object","required":["jobType","dataLocation"],"properties":{"queueRun":{"type":"boolean","default":true,"description":"Indicates whether the created job should be queued to run immediately after creation.\n\nCurrently **queueRun** will always treated as true, whether the client provides a value or omits the field. Create-only behavior is not supported yet.\nIn future versions, this field will become fully optional and will default to false."},"jobName":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/JobName"}],"description":"Unique name of the job to create/run.\n\n**Optional**. If omitted or null, the system generates a default unique name\nusing the pattern `<schema>.<table>`. If that name already exists, an\nunderscore plus a counter is appended, e.g. `<schema>.<table>_1`, `<schema>.<table>_2`, etc."},"jobType":{"$ref":"#/components/schemas/JobType"},"sourceQuery":{"$ref":"#/components/schemas/SourceQuery"},"runDate":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/RunDateValue"},{"description":"Start of the time slice used only when the `sourceQuery` contains the `${rd}` placeholder.\nThe engine substitutes `${rd}` using `jobSettings.dateFormat`:\n  - DATE → `yyyy-MM-dd`\n   - TIMESTAMP → RFC 3339 `yyyy-MM-dd'T'HH:mm:ss'Z'` \n\nIf `sourceQuery` omits `${rd}`, this value does **not** restrict the data scan and\nonly affects the **run’s date** (e.g., run metadata/labeling, scheduling context).\n\n**Optional**. May be omitted or set to null.\nIf not provided, the system will use the current date/time as the run date."}]},"runDateEnd":{"$ref":"#/components/schemas/RunDateEndValue"},"dataLocation":{"$ref":"#/components/schemas/DataLocation"},"backrun":{"$ref":"#/components/schemas/Backrun"},"jobSettings":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/JobSettings"},{"description":"Job-level execution settings.\n\n**Optional**. May be omitted or set to null.\nIf not provided, default settings will be applied based on `jobType`.\nProvide only the fields you want to override, any unspecified fields fall back to defaults."}]},"monitoringSettings":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/JobMonitoringSettings"},{"description":"Monitoring configuration for the job, excluding custom rules. Currently, only adaptive rules are supported. \nThis structure is designed for future extensibility to include additional monitor types.  \n\n**Optional**. May be omitted or set to null.\nIf not provided, default monitoring settings will be applied. Provide only the fields\nyou want to override, any unspecified fields fall back to defaults."}]},"notifications":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/JobNotifications"},{"description":"Notification configuration for a job. Controls which events trigger a notification, who receives it, \nand which message is sent.\n\n**Optional**. May be omitted or set to null.\nIf not provided, no notifications will be configured."}]},"schedulingSettings":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/SchedulingSettings"},{"description":"Controls when a scheduled job runs and how the runDate is adjusted by schedule-specific offsets. \nThe scheduler runs at the given UTC time and applies the selected mode (HOURLY/DAILY/MONTHLY).\n\n**Optional**. May be omitted or set to null.\nIf not provided, no scheduling settings will be applied."}]}}},"JobName":{"type":"string","description":"Job name. Allowed characters by default: letters, digits, `_`, `.`, `-`. **Configurable** via the server env variable `VALIDATION_PATTERN_JOB_NAME`. Default pattern: `^[a-zA-Z0-9_.-]+$`.\n","minLength":1,"maxLength":255,"pattern":"^[a-zA-Z0-9_.-]+$"},"JobType":{"type":"string","description":"Execution mode for Data Quality job. Pullup jobs are available only when the Pullup preview feature is enabled. Allowed values: \"PUSHDOWN\", \"PULLUP\".\n"},"SourceQuery":{"nullable":true,"type":"string","description":"Source SQL for the job. \n\n- If you want to limit the data slice by date/time, **do not hard-code literal\n  dates** in the SQL. Always use the placeholders `${rd}` (start) and `${rdEnd}`\n  (exclusive end), and pass the actual values via the `runDate` / `runDateEnd`\n  fields of the request.  \n  Example pattern: `WHERE \"trade_date\" >= '${rd}' AND \"trade_date\" < '${rdEnd}'` \n- The engine will substitute `${rd}` / `${rdEnd}` based on your chosen\n  `dateFormat` (DATE or TIMESTAMP). \n- Keep the placeholders inside single quotes in SQL (e.g. `'${rd}'`). \n- If you do not include a date predicate, the job will scan the full table (or\n  whatever the query returns). \n- If omitted, the platform will generate a default(vendor compatible) `SELECT * FROM \"<schema>\".\"<table>\"`"},"RunDateValue":{"description":"Start of the time slice used only when the `sourceQuery` contains the `${rd}` placeholder.\nThe engine substitutes `${rd}` using `jobSettings.dateFormat`:\n  - DATE → `yyyy-MM-dd`\n  - TIMESTAMP → RFC 3339 `yyyy-MM-dd'T'HH:mm:ss'Z'` \n\nIf `sourceQuery` omits `${rd}`, this value does **not** restrict the data scan and\nonly affects the **run’s date** (e.g., run metadata/labeling, scheduling context).","oneOf":[{"$ref":"#/components/schemas/DateOnly"},{"$ref":"#/components/schemas/Rfc3339DateTime"}],"discriminator":{"propertyName":"kind","mapping":{"DATE":"#/components/schemas/DateOnly","TIMESTAMP":"#/components/schemas/Rfc3339DateTime"}}},"DateOnly":{"type":"object","required":["kind","value"],"description":"Calendar date, format yyyy-MM-dd.","properties":{"kind":{"type":"string","pattern":"^DATE$"},"value":{"type":"string","format":"date"}}},"Rfc3339DateTime":{"type":"object","required":["kind","value"],"format":"date-time","description":"RFC 3339 timestamp with timezone offset. The server normalizes all inputs to UTC and responses are returned in UTC (trailing 'Z'), seconds precision.","properties":{"kind":{"type":"string","pattern":"^TIMESTAMP$"},"value":{"type":"string","format":"date-time"}}},"RunDateEndValue":{"nullable":true,"oneOf":[{"$ref":"#/components/schemas/DateOnly"},{"$ref":"#/components/schemas/Rfc3339DateTime"}],"discriminator":{"propertyName":"kind","mapping":{"DATE":"#/components/schemas/DateOnly","TIMESTAMP":"#/components/schemas/Rfc3339DateTime"}},"description":"**Exclusive end** of the time slice, used only when the `sourceQuery` contains the `${rdEnd}` placeholder.\nMust be **greater than** `runDate` when both are provided. Formatted per `jobSettings.dateFormat`:\n  - DATE → `yyyy-MM-dd`\n  - TIMESTAMP → RFC 3339 `yyyy-MM-dd'T'HH:mm:ss'Z'` \n\nIf `sourceQuery` omits `${rdEnd}`, this value does **not** restrict the data scan and is ignored for run timing."},"DataLocation":{"description":"Identifies where the job reads data from. Combines the platform connection and the specific catalog/schema/table location inside that connection.\n","required":["edgeSiteName","edgeConnectionName","dataSourceName","schemaName","tableName"],"type":"object","properties":{"edgeSiteName":{"description":"Edge site name","type":"string"},"edgeConnectionName":{"type":"string","description":"Edge connection name"},"dataSourceName":{"type":"string","description":"Data source (database/catalog) name"},"databaseProductName":{"$ref":"#/components/schemas/DatabaseProduct"},"schemaName":{"description":"Schema name","type":"string"},"tableName":{"description":"Table name","type":"string"}}},"DatabaseProduct":{"type":"string","readOnly":true,"description":"The database vendor associated with the connection.\n\nCurrent possible values include:\n    * `ATHENA`\n    * `BIGQUERY`\n    * `DATABRICKS`\n    * `DB2`\n    * `MYSQL`\n    * `POSTGRES`\n    * `REDSHIFT`\n    * `SAP`\n    * `SNOWFLAKE`\n    * `SQLSERVER`\n    * `TRINO`\n\n  Additional values will be introduced in the future."},"Backrun":{"type":"object","nullable":true,"description":"Enables historical backfill runs relative to the scheduled runDate. If included, additional runs will be triggered for the previous `binValue` time bins using the selected `timeBin`. Example: DAY + 10 -> run the previous 10 days.\n","properties":{"timeBin":{"$ref":"#/components/schemas/BackrunTimeBin"},"binValue":{"type":"integer","minimum":1,"description":"Number of past bins to backfill"}},"required":["timeBin","binValue"]},"BackrunTimeBin":{"type":"string","description":"Time bin used when defining backruns.\n\nCurrent possible values include:\n  * `DAY`   – backrun by day.\n  * `MONTH` – backrun by month.\n  * `YEAR`  – backrun by year.\n\nAdditional values may be introduced in the future"},"JobSettings":{"type":"object","description":"Job-level execution settings, including date format and pushdown/pullup tuning. Pullup jobs are available only when the Pullup preview feature is enabled.\n","properties":{"dateFormat":{"$ref":"#/components/schemas/DateFormat"},"pushdownSettings":{"$ref":"#/components/schemas/PushdownSettings"},"pullupSettings":{"$ref":"#/components/schemas/PullupSettings"}}},"DateFormat":{"type":"string","default":"DATE","description":"Date format used for `runDate` / `runDateEnd`.\nSupported values:\n  - DATE -> yyyy-MM-dd \n  - TIMESTAMP -> RFC 3339 timestamp, example - 2025-10-23T13:50:02Z","enum":["DATE","TIMESTAMP"]},"PushdownSettings":{"type":"object","nullable":true,"description":"Settings for pushdown execution. Controls concurrency used by the source system connection.\nProvide this object only when the job's jobType is PUSHDOWN. Omit or set to null for non-pushdown jobs.","properties":{"connections":{"type":"integer","minimum":1,"default":10,"description":"Number of concurrent source connections\n"},"threads":{"type":"integer","minimum":1,"default":5,"description":"Worker threads per connection for pushdown queries\n"}}},"PullupSettings":{"type":"object","nullable":true,"description":"Settings for pullup execution. Controls partitioning and Spark sizing.\nProvide this object only when the job's jobType is PULLUP. Omit or set to null for non-pullup jobs.\n\nPullup functionality is available only when the Pullup preview feature is enabled.","properties":{"loadOptions":{"$ref":"#/components/schemas/LoadOptions"},"sparkJobSizing":{"$ref":"#/components/schemas/SparkJobSizing"},"sparkSqlProperties":{"type":"object","nullable":true,"description":"Arbitrary Spark SQL session properties as key/value pairs\n","additionalProperties":{"type":"string"}}}},"LoadOptions":{"type":"object","nullable":true,"description":"Data loading options applied when reading from the source\n","properties":{"numPartitions":{"type":"integer","minimum":0,"default":0,"description":"Number of Spark input partitions\n"},"parallelJdbcOptions":{"$ref":"#/components/schemas/ParallelJdbcOptions"}}},"ParallelJdbcOptions":{"nullable":true,"description":"Options for parallel JDBC partitioning. Choose a `mode`, which determines which\nfields are required: \n - `AUTO` – system selects column & partitions \n - `AUTO_COLUMN` – system selects column; you provide `partitionNumber`\n - `MANUAL` – you provide `partitionColumn` and `partitionNumber`","oneOf":[{"$ref":"#/components/schemas/ParallelJdbcOptionsAuto"},{"$ref":"#/components/schemas/ParallelJdbcOptionsAutoColumn"},{"$ref":"#/components/schemas/ParallelJdbcOptionsManual"}],"discriminator":{"propertyName":"mode","mapping":{"AUTO":"#/components/schemas/ParallelJdbcOptionsAuto","AUTO_COLUMN":"#/components/schemas/ParallelJdbcOptionsAutoColumn","MANUAL":"#/components/schemas/ParallelJdbcOptionsManual"}},"default":null},"ParallelJdbcOptionsAuto":{"type":"object","description":"Automatic column & partition selection.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO`."}},"required":["mode"],"additionalProperties":false},"ParallelJdbcOptionsAutoColumn":{"type":"object","description":"Automatic column selection; you specify the number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO_COLUMN`."},"partitionNumber":{"type":"integer","minimum":0,"description":"Number of partitions to use."}},"required":["mode","partitionNumber"],"additionalProperties":false},"ParallelJdbcOptionsManual":{"type":"object","description":"You specify both the partition column and number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `MANUAL`."},"partitionColumn":{"type":"string","description":"Numeric/integer column to partition on."},"partitionNumber":{"type":"integer","minimum":1,"description":"Number of partitions to use."}},"required":["mode","partitionColumn","partitionNumber"],"additionalProperties":false},"SparkJobSizing":{"type":"object","nullable":true,"description":"Optional manual sizing for Spark resources.\n\nIf this object is **omitted or null**, the platform automatically selects\nSpark resources based on the source query.","properties":{"numExecutors":{"type":"integer","minimum":1,"description":"Number of executors to use (upper bound).","default":1},"driverCores":{"type":"integer","minimum":1,"description":"Number of driver CPU cores.","default":1},"numExecutorCores":{"type":"integer","minimum":1,"description":"Number of CPU cores per executor.","default":1},"executorMemoryGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Maximum memory per executor in GB.","default":1}]},"driverMemoryGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Driver memory in GB.","default":1}]},"memoryOverheadGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Additional off-heap memory per executor in GB.","nullable":true,"default":null}]}},"additionalProperties":false},"SparkMemoryGB":{"type":"integer","description":"Memory amount in gigabytes. The unit is in **GB**, fractional values are not supported\n"},"JobMonitoringSettings":{"type":"object","description":"Monitoring configuration for the job, excluding custom rules. Currently, only adaptive rules are supported. This structure is designed for future extensibility to include additional monitor types.","properties":{"adaptiveMonitors":{"$ref":"#/components/schemas/AdaptiveMonitors"}}},"AdaptiveMonitors":{"type":"object","description":"Feature toggles for adaptive monitors computed during profiling. All data quality jobs always run profiling with data type detection and schema-change checks enabled.\n","properties":{"descriptiveStatistics":{"type":"boolean","default":false,"description":"Show descriptive statistics in profiling results (e.g., count, min, mean, max). Note: may expose sensitive values such as minimum/maximum. If disabled, all column values are masked in the profiling results.\n"},"emptyFields":{"type":"boolean","default":true,"description":"Detect changes in the number of empty values in numeric columns.\n"},"executionTime":{"type":"boolean","default":false,"description":"Track changes in total execution time of the data job.\n"},"max":{"type":"boolean","default":false,"description":"Detect changes in the highest value across numeric columns.\n"},"mean":{"type":"boolean","default":false,"description":"Detect changes in the average (mean) value across numeric columns.\n"},"min":{"type":"boolean","default":false,"description":"Detect changes in the lowest value across numeric columns.\n"},"nullValues":{"type":"boolean","default":true,"description":"Detect changes in the number of NULL values across all columns.\n"},"rowCount":{"type":"boolean","default":true,"description":"Track changes in the total number of rows.\n"},"uniqueness":{"type":"boolean","default":true,"description":"Track changes in the number of distinct values across all columns.\n"},"settings":{"$ref":"#/components/schemas/AdaptiveMonitorSettings"}}},"AdaptiveMonitorSettings":{"type":"object","description":"Optional learning/tuning parameters applied to the above monitors.\n","properties":{"dataLookBack":{"type":"integer","minimum":0,"default":10,"description":"Number of historical runs to consider when detecting changes (0 = no look back).\n"},"learningPhase":{"type":"integer","minimum":0,"default":4,"description":"Number of initial runs used to learn a baseline before signaling changes (0 = no learning phase).    \n"}}},"JobNotifications":{"type":"object","description":"Controls which events trigger a notification, which channels deliver them, and what message is sent. This schema is **channel-extensible**: it starts with EMAIL and will be updated in future versions to support additional channels (e.g., Slack) without breaking existing clients.\n","properties":{"notificationOptions":{"type":"array","description":"Per-event settings. Add one item per event to monitor.","items":{"$ref":"#/components/schemas/NotificationOption"}},"globalMessage":{"type":"string","description":"Default message template when `useIndividualMessages` is false."},"useIndividualMessages":{"type":"boolean","description":"If true, use each option's `message`; otherwise use `globalMessage`."},"channels":{"type":"array","minItems":1,"description":"Delivery channels and their destinations","items":{"$ref":"#/components/schemas/NotificationChannel"}}},"required":["notificationOptions","channels"]},"NotificationOption":{"type":"object","description":"Configuration for a single notification event.\n","required":["notificationType","enabled"],"properties":{"notificationType":{"$ref":"#/components/schemas/NotificationType"},"enabled":{"type":"boolean","description":"Whether this notification is active."},"message":{"type":"string","description":"Custom message for this notification. Used when `useIndividualMessages` is `true`. If omitted or blank, the service falls back to `globalMessage`, if that is also blank, a system default template is used.\n"},"quantity":{"type":"integer","minimum":0,"nullable":true,"description":"Threshold used **only** for specific types:  \n  - `ROWS_LESS_THAN_LIMIT` – minimum expected row count.  \n  - `RUNS_WITHOUT_DATA` – number of consecutive empty runs (N).  \n  - `DAYS_WITHOUT_DATA` – number of days with no data (N).  \n  - `SCORE_LESS_THAN_LIMIT` – minimum acceptable score.  \n  - `RUN_TIME_MORE_THEN_LIMIT` – maximum allowed runtime in minutes.  \nIgnored for other types."}}},"NotificationType":{"type":"string","description":"The event that triggers this notification.\n\nCurrent possible values include:\n  * `JOB_FAILED`            – sent when a job run fails.\n  * `JOB_COMPLETED`         – sent when a job run finishes successfully.\n  * `ROWS_LESS_THAN_LIMIT`  – sent when produced row count is below a limit.\n  * `RUNS_WITHOUT_DATA`     – sent after N consecutive runs produced no data.\n  * `DAYS_WITHOUT_DATA`     – sent when no data was produced for N days.\n  * `SCORE_LESS_THAN_LIMIT` – sent when quality score is below a limit.\n  * `RUN_TIME_MORE_THEN_LIMIT` – sent when runtime exceeds a limit (in minutes).\n\nAdditional notification types may be introduced in the future."},"NotificationChannel":{"type":"object","description":"Notification delivery channel and its destination/parameters.\n\nCurrent supported channel type:\n  * `EMAIL` – send notifications via email to the given recipients.\n\nAdditional channel types (e.g., `SLACK`) may be introduced in the future.","properties":{"channel":{"type":"string","description":"Delivery channel type.\n\nCurrent value:\n  * `EMAIL`\n\nAdditional values MAY be added in future versions."},"recipients":{"type":"array","minItems":1,"description":"Platform usernames to receive email notifications when `channel = EMAIL`\n(e.g., `jsmith`, `adoe`).","items":{"type":"string"}}},"additionalProperties":true},"SchedulingSettings":{"nullable":true,"description":"Controls when a scheduled job runs and how `runDate` is adjusted. Exactly **one** schedule mode is allowed. **Optional** If omitted or null, the job will not be scheduled.\n","oneOf":[{"$ref":"#/components/schemas/SchedulingHourly"},{"$ref":"#/components/schemas/SchedulingDaily"},{"$ref":"#/components/schemas/SchedulingMonthly"}],"discriminator":{"propertyName":"schedulerMode","mapping":{"HOURLY":"#/components/schemas/SchedulingHourly","DAILY":"#/components/schemas/SchedulingDaily","MONTHLY":"#/components/schemas/SchedulingMonthly"}}},"SchedulingHourly":{"allOf":[{"$ref":"#/components/schemas/SchedulingBase"},{"type":"object","required":["hourly","schedulerMode"],"description":"Hourly schedule configuration. If scheduleRunTime is set \"14:30:00\", the job runs at 14:30, 15:30, 16:30, etc.","properties":{"schedulerMode":{"type":"string","description":"Schedule type.\n\nFor this schema, the value MUST be `HOURLY`."},"hourly":{"type":"object","description":"Hourly schedule rules.","required":["hourlyOffset"],"properties":{"hourlyOffset":{"type":"string","description":"Run-date offset in hours relative to the scheduled time.\n\nCurrent possible values include:\n  * `SCHEDULED` – use the scheduled date/time.\n  * `ONE_HOUR` – run date is 1 hour before the scheduled time.\n  * `TWO_HOURS` – run date is 2 hours before the scheduled time.\n\nAdditional values MAY be added in future versions."}}}}}]},"SchedulingBase":{"type":"object","required":["isActive","scheduledRunTime","schedulerMode"],"properties":{"isActive":{"type":"boolean","description":"Enable/disable the schedule (disabled schedules do not trigger runs)."},"scheduledRunTime":{"type":"string","description":"Time of day in **UTC**, format `HH:mm:ss`.  (24 hours) Example: `14:10:00` means the job starts at 14:10:00 UTC.\n"},"schedulerMode":{"type":"string","description":"Schedule type.\n\nCurrent possible values:\n  * `HOURLY`\n  * `DAILY`\n  * `MONTHLY`\n\nAdditional modes MAY be added in future versions."}}},"SchedulingDaily":{"allOf":[{"$ref":"#/components/schemas/SchedulingBase"},{"type":"object","required":["daily","schedulerMode"],"properties":{"schedulerMode":{"type":"string","description":"Schedule type.\n\nFor this schema, the value MUST be `DAILY`."},"daily":{"type":"object","description":"Daily schedule rules.","required":["dailyOffset","daysOfWeek"],"properties":{"dailyOffset":{"type":"string","description":"Run-date offset in days relative to the scheduled day.\n\nCurrent possible values include:\n  * `SCHEDULED`\n  * `ONE_DAY`\n  * `TWO_DAYS`\n  * `THREE_DAYS`\n  * `FOUR_DAYS`\n  * `FIVE_DAYS`\n  * `SIX_DAYS`\n  * `SEVEN_DAYS`\n\nAdditional values MAY be added in future versions."},"daysOfWeek":{"type":"array","minItems":1,"items":{"type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"description":"Days of week to run."}}}}}]},"SchedulingMonthly":{"allOf":[{"$ref":"#/components/schemas/SchedulingBase"},{"type":"object","required":["monthly","schedulerMode"],"properties":{"schedulerMode":{"type":"string","description":"Schedule type.\n\nFor this schema, the value MUST be `MONTHLY`."},"monthly":{"type":"object","description":"Monthly schedule rules.","required":["monthlyRepeat","monthlyOffset"],"properties":{"monthlyRepeat":{"type":"string","description":"Which day of the month to run the job on.\n\nCurrent possible values:\n  * `FIRST` – first day of the month\n  * `LAST`  – last day of the month\n  * `DAY`   – specific calendar day (requires `dayNumber` in 1–31 range)\n\nAdditional values MAY be added in future versions."},"monthlyOffset":{"type":"string","description":"Run-date offset applied to the scheduled monthly day.\n\nCurrent possible values include:\n  * `SCHEDULED`              - use the scheduled date\n  * `FIRST_OF_CURRENT_MONTH` - first day of the current month\n  * `LAST_OF_CURRENT_MONTH`  - last day of the current month\n  * `FIRST_OF_PRIOR_MONTH`   - first day of the prior month\n  * `LAST_OF_PRIOR_MONTH`    - last day of the prior month\n\nAdditional values may be added in future versions."},"dayNumber":{"type":"integer","minimum":1,"maximum":31,"nullable":true,"description":"Required when `monthlyRepeat = DAY`."}}}}}]}}}}
```

## The JobDefinitionCreateResponse object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"JobDefinitionCreateResponse":{"allOf":[{"$ref":"#/components/schemas/JobDefinition"},{"type":"object","description":"Response for job creation. Contains all fields of `JobDefinition`\nplus an optional identifier of the queued run when `queueRun = true`.","properties":{"jobRunId":{"type":"string","format":"uuid","nullable":true,"description":"Identifier of the queued job run, if the job was scheduled\nto run immediately after creation.\n\n- Present when `queueRun = true` and the run was successfully queued.\n- `false` when the job was created without an immediate run (future state)."}}}]},"JobDefinition":{"type":"object","properties":{"jobName":{"$ref":"#/components/schemas/JobName"},"jobType":{"$ref":"#/components/schemas/JobType"},"sourceQuery":{"$ref":"#/components/schemas/SourceQuery"},"runDate":{"$ref":"#/components/schemas/RunDateValue"},"runDateEnd":{"$ref":"#/components/schemas/RunDateEndValue"},"dataLocation":{"$ref":"#/components/schemas/DataLocation"},"jobSettings":{"$ref":"#/components/schemas/JobSettings"},"monitoringSettings":{"$ref":"#/components/schemas/JobMonitoringSettings"},"notifications":{"$ref":"#/components/schemas/JobNotifications"},"schedulingSettings":{"$ref":"#/components/schemas/SchedulingSettings"}}},"JobName":{"type":"string","description":"Job name. Allowed characters by default: letters, digits, `_`, `.`, `-`. **Configurable** via the server env variable `VALIDATION_PATTERN_JOB_NAME`. Default pattern: `^[a-zA-Z0-9_.-]+$`.\n","minLength":1,"maxLength":255,"pattern":"^[a-zA-Z0-9_.-]+$"},"JobType":{"type":"string","description":"Execution mode for Data Quality job. Pullup jobs are available only when the Pullup preview feature is enabled. Allowed values: \"PUSHDOWN\", \"PULLUP\".\n"},"SourceQuery":{"nullable":true,"type":"string","description":"Source SQL for the job. \n\n- If you want to limit the data slice by date/time, **do not hard-code literal\n  dates** in the SQL. Always use the placeholders `${rd}` (start) and `${rdEnd}`\n  (exclusive end), and pass the actual values via the `runDate` / `runDateEnd`\n  fields of the request.  \n  Example pattern: `WHERE \"trade_date\" >= '${rd}' AND \"trade_date\" < '${rdEnd}'` \n- The engine will substitute `${rd}` / `${rdEnd}` based on your chosen\n  `dateFormat` (DATE or TIMESTAMP). \n- Keep the placeholders inside single quotes in SQL (e.g. `'${rd}'`). \n- If you do not include a date predicate, the job will scan the full table (or\n  whatever the query returns). \n- If omitted, the platform will generate a default(vendor compatible) `SELECT * FROM \"<schema>\".\"<table>\"`"},"RunDateValue":{"description":"Start of the time slice used only when the `sourceQuery` contains the `${rd}` placeholder.\nThe engine substitutes `${rd}` using `jobSettings.dateFormat`:\n  - DATE → `yyyy-MM-dd`\n  - TIMESTAMP → RFC 3339 `yyyy-MM-dd'T'HH:mm:ss'Z'` \n\nIf `sourceQuery` omits `${rd}`, this value does **not** restrict the data scan and\nonly affects the **run’s date** (e.g., run metadata/labeling, scheduling context).","oneOf":[{"$ref":"#/components/schemas/DateOnly"},{"$ref":"#/components/schemas/Rfc3339DateTime"}],"discriminator":{"propertyName":"kind","mapping":{"DATE":"#/components/schemas/DateOnly","TIMESTAMP":"#/components/schemas/Rfc3339DateTime"}}},"DateOnly":{"type":"object","required":["kind","value"],"description":"Calendar date, format yyyy-MM-dd.","properties":{"kind":{"type":"string","pattern":"^DATE$"},"value":{"type":"string","format":"date"}}},"Rfc3339DateTime":{"type":"object","required":["kind","value"],"format":"date-time","description":"RFC 3339 timestamp with timezone offset. The server normalizes all inputs to UTC and responses are returned in UTC (trailing 'Z'), seconds precision.","properties":{"kind":{"type":"string","pattern":"^TIMESTAMP$"},"value":{"type":"string","format":"date-time"}}},"RunDateEndValue":{"nullable":true,"oneOf":[{"$ref":"#/components/schemas/DateOnly"},{"$ref":"#/components/schemas/Rfc3339DateTime"}],"discriminator":{"propertyName":"kind","mapping":{"DATE":"#/components/schemas/DateOnly","TIMESTAMP":"#/components/schemas/Rfc3339DateTime"}},"description":"**Exclusive end** of the time slice, used only when the `sourceQuery` contains the `${rdEnd}` placeholder.\nMust be **greater than** `runDate` when both are provided. Formatted per `jobSettings.dateFormat`:\n  - DATE → `yyyy-MM-dd`\n  - TIMESTAMP → RFC 3339 `yyyy-MM-dd'T'HH:mm:ss'Z'` \n\nIf `sourceQuery` omits `${rdEnd}`, this value does **not** restrict the data scan and is ignored for run timing."},"DataLocation":{"description":"Identifies where the job reads data from. Combines the platform connection and the specific catalog/schema/table location inside that connection.\n","required":["edgeSiteName","edgeConnectionName","dataSourceName","schemaName","tableName"],"type":"object","properties":{"edgeSiteName":{"description":"Edge site name","type":"string"},"edgeConnectionName":{"type":"string","description":"Edge connection name"},"dataSourceName":{"type":"string","description":"Data source (database/catalog) name"},"databaseProductName":{"$ref":"#/components/schemas/DatabaseProduct"},"schemaName":{"description":"Schema name","type":"string"},"tableName":{"description":"Table name","type":"string"}}},"DatabaseProduct":{"type":"string","readOnly":true,"description":"The database vendor associated with the connection.\n\nCurrent possible values include:\n    * `ATHENA`\n    * `BIGQUERY`\n    * `DATABRICKS`\n    * `DB2`\n    * `MYSQL`\n    * `POSTGRES`\n    * `REDSHIFT`\n    * `SAP`\n    * `SNOWFLAKE`\n    * `SQLSERVER`\n    * `TRINO`\n\n  Additional values will be introduced in the future."},"JobSettings":{"type":"object","description":"Job-level execution settings, including date format and pushdown/pullup tuning. Pullup jobs are available only when the Pullup preview feature is enabled.\n","properties":{"dateFormat":{"$ref":"#/components/schemas/DateFormat"},"pushdownSettings":{"$ref":"#/components/schemas/PushdownSettings"},"pullupSettings":{"$ref":"#/components/schemas/PullupSettings"}}},"DateFormat":{"type":"string","default":"DATE","description":"Date format used for `runDate` / `runDateEnd`.\nSupported values:\n  - DATE -> yyyy-MM-dd \n  - TIMESTAMP -> RFC 3339 timestamp, example - 2025-10-23T13:50:02Z","enum":["DATE","TIMESTAMP"]},"PushdownSettings":{"type":"object","nullable":true,"description":"Settings for pushdown execution. Controls concurrency used by the source system connection.\nProvide this object only when the job's jobType is PUSHDOWN. Omit or set to null for non-pushdown jobs.","properties":{"connections":{"type":"integer","minimum":1,"default":10,"description":"Number of concurrent source connections\n"},"threads":{"type":"integer","minimum":1,"default":5,"description":"Worker threads per connection for pushdown queries\n"}}},"PullupSettings":{"type":"object","nullable":true,"description":"Settings for pullup execution. Controls partitioning and Spark sizing.\nProvide this object only when the job's jobType is PULLUP. Omit or set to null for non-pullup jobs.\n\nPullup functionality is available only when the Pullup preview feature is enabled.","properties":{"loadOptions":{"$ref":"#/components/schemas/LoadOptions"},"sparkJobSizing":{"$ref":"#/components/schemas/SparkJobSizing"},"sparkSqlProperties":{"type":"object","nullable":true,"description":"Arbitrary Spark SQL session properties as key/value pairs\n","additionalProperties":{"type":"string"}}}},"LoadOptions":{"type":"object","nullable":true,"description":"Data loading options applied when reading from the source\n","properties":{"numPartitions":{"type":"integer","minimum":0,"default":0,"description":"Number of Spark input partitions\n"},"parallelJdbcOptions":{"$ref":"#/components/schemas/ParallelJdbcOptions"}}},"ParallelJdbcOptions":{"nullable":true,"description":"Options for parallel JDBC partitioning. Choose a `mode`, which determines which\nfields are required: \n - `AUTO` – system selects column & partitions \n - `AUTO_COLUMN` – system selects column; you provide `partitionNumber`\n - `MANUAL` – you provide `partitionColumn` and `partitionNumber`","oneOf":[{"$ref":"#/components/schemas/ParallelJdbcOptionsAuto"},{"$ref":"#/components/schemas/ParallelJdbcOptionsAutoColumn"},{"$ref":"#/components/schemas/ParallelJdbcOptionsManual"}],"discriminator":{"propertyName":"mode","mapping":{"AUTO":"#/components/schemas/ParallelJdbcOptionsAuto","AUTO_COLUMN":"#/components/schemas/ParallelJdbcOptionsAutoColumn","MANUAL":"#/components/schemas/ParallelJdbcOptionsManual"}},"default":null},"ParallelJdbcOptionsAuto":{"type":"object","description":"Automatic column & partition selection.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO`."}},"required":["mode"],"additionalProperties":false},"ParallelJdbcOptionsAutoColumn":{"type":"object","description":"Automatic column selection; you specify the number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO_COLUMN`."},"partitionNumber":{"type":"integer","minimum":0,"description":"Number of partitions to use."}},"required":["mode","partitionNumber"],"additionalProperties":false},"ParallelJdbcOptionsManual":{"type":"object","description":"You specify both the partition column and number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `MANUAL`."},"partitionColumn":{"type":"string","description":"Numeric/integer column to partition on."},"partitionNumber":{"type":"integer","minimum":1,"description":"Number of partitions to use."}},"required":["mode","partitionColumn","partitionNumber"],"additionalProperties":false},"SparkJobSizing":{"type":"object","nullable":true,"description":"Optional manual sizing for Spark resources.\n\nIf this object is **omitted or null**, the platform automatically selects\nSpark resources based on the source query.","properties":{"numExecutors":{"type":"integer","minimum":1,"description":"Number of executors to use (upper bound).","default":1},"driverCores":{"type":"integer","minimum":1,"description":"Number of driver CPU cores.","default":1},"numExecutorCores":{"type":"integer","minimum":1,"description":"Number of CPU cores per executor.","default":1},"executorMemoryGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Maximum memory per executor in GB.","default":1}]},"driverMemoryGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Driver memory in GB.","default":1}]},"memoryOverheadGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Additional off-heap memory per executor in GB.","nullable":true,"default":null}]}},"additionalProperties":false},"SparkMemoryGB":{"type":"integer","description":"Memory amount in gigabytes. The unit is in **GB**, fractional values are not supported\n"},"JobMonitoringSettings":{"type":"object","description":"Monitoring configuration for the job, excluding custom rules. Currently, only adaptive rules are supported. This structure is designed for future extensibility to include additional monitor types.","properties":{"adaptiveMonitors":{"$ref":"#/components/schemas/AdaptiveMonitors"}}},"AdaptiveMonitors":{"type":"object","description":"Feature toggles for adaptive monitors computed during profiling. All data quality jobs always run profiling with data type detection and schema-change checks enabled.\n","properties":{"descriptiveStatistics":{"type":"boolean","default":false,"description":"Show descriptive statistics in profiling results (e.g., count, min, mean, max). Note: may expose sensitive values such as minimum/maximum. If disabled, all column values are masked in the profiling results.\n"},"emptyFields":{"type":"boolean","default":true,"description":"Detect changes in the number of empty values in numeric columns.\n"},"executionTime":{"type":"boolean","default":false,"description":"Track changes in total execution time of the data job.\n"},"max":{"type":"boolean","default":false,"description":"Detect changes in the highest value across numeric columns.\n"},"mean":{"type":"boolean","default":false,"description":"Detect changes in the average (mean) value across numeric columns.\n"},"min":{"type":"boolean","default":false,"description":"Detect changes in the lowest value across numeric columns.\n"},"nullValues":{"type":"boolean","default":true,"description":"Detect changes in the number of NULL values across all columns.\n"},"rowCount":{"type":"boolean","default":true,"description":"Track changes in the total number of rows.\n"},"uniqueness":{"type":"boolean","default":true,"description":"Track changes in the number of distinct values across all columns.\n"},"settings":{"$ref":"#/components/schemas/AdaptiveMonitorSettings"}}},"AdaptiveMonitorSettings":{"type":"object","description":"Optional learning/tuning parameters applied to the above monitors.\n","properties":{"dataLookBack":{"type":"integer","minimum":0,"default":10,"description":"Number of historical runs to consider when detecting changes (0 = no look back).\n"},"learningPhase":{"type":"integer","minimum":0,"default":4,"description":"Number of initial runs used to learn a baseline before signaling changes (0 = no learning phase).    \n"}}},"JobNotifications":{"type":"object","description":"Controls which events trigger a notification, which channels deliver them, and what message is sent. This schema is **channel-extensible**: it starts with EMAIL and will be updated in future versions to support additional channels (e.g., Slack) without breaking existing clients.\n","properties":{"notificationOptions":{"type":"array","description":"Per-event settings. Add one item per event to monitor.","items":{"$ref":"#/components/schemas/NotificationOption"}},"globalMessage":{"type":"string","description":"Default message template when `useIndividualMessages` is false."},"useIndividualMessages":{"type":"boolean","description":"If true, use each option's `message`; otherwise use `globalMessage`."},"channels":{"type":"array","minItems":1,"description":"Delivery channels and their destinations","items":{"$ref":"#/components/schemas/NotificationChannel"}}},"required":["notificationOptions","channels"]},"NotificationOption":{"type":"object","description":"Configuration for a single notification event.\n","required":["notificationType","enabled"],"properties":{"notificationType":{"$ref":"#/components/schemas/NotificationType"},"enabled":{"type":"boolean","description":"Whether this notification is active."},"message":{"type":"string","description":"Custom message for this notification. Used when `useIndividualMessages` is `true`. If omitted or blank, the service falls back to `globalMessage`, if that is also blank, a system default template is used.\n"},"quantity":{"type":"integer","minimum":0,"nullable":true,"description":"Threshold used **only** for specific types:  \n  - `ROWS_LESS_THAN_LIMIT` – minimum expected row count.  \n  - `RUNS_WITHOUT_DATA` – number of consecutive empty runs (N).  \n  - `DAYS_WITHOUT_DATA` – number of days with no data (N).  \n  - `SCORE_LESS_THAN_LIMIT` – minimum acceptable score.  \n  - `RUN_TIME_MORE_THEN_LIMIT` – maximum allowed runtime in minutes.  \nIgnored for other types."}}},"NotificationType":{"type":"string","description":"The event that triggers this notification.\n\nCurrent possible values include:\n  * `JOB_FAILED`            – sent when a job run fails.\n  * `JOB_COMPLETED`         – sent when a job run finishes successfully.\n  * `ROWS_LESS_THAN_LIMIT`  – sent when produced row count is below a limit.\n  * `RUNS_WITHOUT_DATA`     – sent after N consecutive runs produced no data.\n  * `DAYS_WITHOUT_DATA`     – sent when no data was produced for N days.\n  * `SCORE_LESS_THAN_LIMIT` – sent when quality score is below a limit.\n  * `RUN_TIME_MORE_THEN_LIMIT` – sent when runtime exceeds a limit (in minutes).\n\nAdditional notification types may be introduced in the future."},"NotificationChannel":{"type":"object","description":"Notification delivery channel and its destination/parameters.\n\nCurrent supported channel type:\n  * `EMAIL` – send notifications via email to the given recipients.\n\nAdditional channel types (e.g., `SLACK`) may be introduced in the future.","properties":{"channel":{"type":"string","description":"Delivery channel type.\n\nCurrent value:\n  * `EMAIL`\n\nAdditional values MAY be added in future versions."},"recipients":{"type":"array","minItems":1,"description":"Platform usernames to receive email notifications when `channel = EMAIL`\n(e.g., `jsmith`, `adoe`).","items":{"type":"string"}}},"additionalProperties":true},"SchedulingSettings":{"nullable":true,"description":"Controls when a scheduled job runs and how `runDate` is adjusted. Exactly **one** schedule mode is allowed. **Optional** If omitted or null, the job will not be scheduled.\n","oneOf":[{"$ref":"#/components/schemas/SchedulingHourly"},{"$ref":"#/components/schemas/SchedulingDaily"},{"$ref":"#/components/schemas/SchedulingMonthly"}],"discriminator":{"propertyName":"schedulerMode","mapping":{"HOURLY":"#/components/schemas/SchedulingHourly","DAILY":"#/components/schemas/SchedulingDaily","MONTHLY":"#/components/schemas/SchedulingMonthly"}}},"SchedulingHourly":{"allOf":[{"$ref":"#/components/schemas/SchedulingBase"},{"type":"object","required":["hourly","schedulerMode"],"description":"Hourly schedule configuration. If scheduleRunTime is set \"14:30:00\", the job runs at 14:30, 15:30, 16:30, etc.","properties":{"schedulerMode":{"type":"string","description":"Schedule type.\n\nFor this schema, the value MUST be `HOURLY`."},"hourly":{"type":"object","description":"Hourly schedule rules.","required":["hourlyOffset"],"properties":{"hourlyOffset":{"type":"string","description":"Run-date offset in hours relative to the scheduled time.\n\nCurrent possible values include:\n  * `SCHEDULED` – use the scheduled date/time.\n  * `ONE_HOUR` – run date is 1 hour before the scheduled time.\n  * `TWO_HOURS` – run date is 2 hours before the scheduled time.\n\nAdditional values MAY be added in future versions."}}}}}]},"SchedulingBase":{"type":"object","required":["isActive","scheduledRunTime","schedulerMode"],"properties":{"isActive":{"type":"boolean","description":"Enable/disable the schedule (disabled schedules do not trigger runs)."},"scheduledRunTime":{"type":"string","description":"Time of day in **UTC**, format `HH:mm:ss`.  (24 hours) Example: `14:10:00` means the job starts at 14:10:00 UTC.\n"},"schedulerMode":{"type":"string","description":"Schedule type.\n\nCurrent possible values:\n  * `HOURLY`\n  * `DAILY`\n  * `MONTHLY`\n\nAdditional modes MAY be added in future versions."}}},"SchedulingDaily":{"allOf":[{"$ref":"#/components/schemas/SchedulingBase"},{"type":"object","required":["daily","schedulerMode"],"properties":{"schedulerMode":{"type":"string","description":"Schedule type.\n\nFor this schema, the value MUST be `DAILY`."},"daily":{"type":"object","description":"Daily schedule rules.","required":["dailyOffset","daysOfWeek"],"properties":{"dailyOffset":{"type":"string","description":"Run-date offset in days relative to the scheduled day.\n\nCurrent possible values include:\n  * `SCHEDULED`\n  * `ONE_DAY`\n  * `TWO_DAYS`\n  * `THREE_DAYS`\n  * `FOUR_DAYS`\n  * `FIVE_DAYS`\n  * `SIX_DAYS`\n  * `SEVEN_DAYS`\n\nAdditional values MAY be added in future versions."},"daysOfWeek":{"type":"array","minItems":1,"items":{"type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"description":"Days of week to run."}}}}}]},"SchedulingMonthly":{"allOf":[{"$ref":"#/components/schemas/SchedulingBase"},{"type":"object","required":["monthly","schedulerMode"],"properties":{"schedulerMode":{"type":"string","description":"Schedule type.\n\nFor this schema, the value MUST be `MONTHLY`."},"monthly":{"type":"object","description":"Monthly schedule rules.","required":["monthlyRepeat","monthlyOffset"],"properties":{"monthlyRepeat":{"type":"string","description":"Which day of the month to run the job on.\n\nCurrent possible values:\n  * `FIRST` – first day of the month\n  * `LAST`  – last day of the month\n  * `DAY`   – specific calendar day (requires `dayNumber` in 1–31 range)\n\nAdditional values MAY be added in future versions."},"monthlyOffset":{"type":"string","description":"Run-date offset applied to the scheduled monthly day.\n\nCurrent possible values include:\n  * `SCHEDULED`              - use the scheduled date\n  * `FIRST_OF_CURRENT_MONTH` - first day of the current month\n  * `LAST_OF_CURRENT_MONTH`  - last day of the current month\n  * `FIRST_OF_PRIOR_MONTH`   - first day of the prior month\n  * `LAST_OF_PRIOR_MONTH`    - last day of the prior month\n\nAdditional values may be added in future versions."},"dayNumber":{"type":"integer","minimum":1,"maximum":31,"nullable":true,"description":"Required when `monthlyRepeat = DAY`."}}}}}]}}}}
```

## The JobName object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"JobName":{"type":"string","description":"Job name. Allowed characters by default: letters, digits, `_`, `.`, `-`. **Configurable** via the server env variable `VALIDATION_PATTERN_JOB_NAME`. Default pattern: `^[a-zA-Z0-9_.-]+$`.\n","minLength":1,"maxLength":255,"pattern":"^[a-zA-Z0-9_.-]+$"}}}}
```

## The JobRunStatus object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"JobRunStatus":{"type":"string","maxLength":255,"description":"Status of an individual job run.\n\nCurrent possible values include:\n  * `WAITING`\n  * `DISPATCHED`\n  * `SETUP`\n  * `RUNNING`\n  * `SENDING`\n  * `FINISHED`\n  * `CANCELLED`\n  * `FAILED`\n  * `UNKNOWN`\n\nAdditional statuses may be introduced in the future."}}}}
```

## The JobActivity object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"JobActivity":{"type":"string","description":"Current activity within the job run.\n\nCurrent possible values include:\n  * `INIT`\n  * `SCHEMA`\n  * `LOAD`\n  * `DISCOVERY`\n  * `PROFILE`\n  * `RULES`\n  * `HISTOGRAMS`\n  * `CORRELATION`\n  * `LAYERS`\n  * `RESULTS`\n  * `ALERTS`\n  * `\"\"` – no activity / idle (legacy representation).\n\nAdditional activities may be introduced in the future. Clients SHOULD treat\nunknown values as “implementation detail” and not fail on them."}}}}
```

## The JobRunRequest object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"JobRunRequest":{"type":"object","description":"Parameters for a single job run. If omitted, defaults apply (now as a runDate, no backrun).\n","properties":{"runDate":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/RunDateValue"},{"description":"Start of the time slice used only when the `sourceQuery` contains the `${rd}` placeholder.\nThe engine substitutes `${rd}` using `jobSettings.dateFormat`:\n  - DATE → `yyyy-MM-dd`\n  - TIMESTAMP → RFC 3339 `yyyy-MM-dd'T'HH:mm:ss'Z'`\n\nIf `sourceQuery` omits `${rd}`, this value does **not** restrict the data scan and\nonly affects the **run’s date** (e.g., run metadata/labeling, scheduling context).\n\n**Optional**. If omitted, the service uses the current date/time"}]},"runDateEnd":{"$ref":"#/components/schemas/RunDateEndValue"},"backrun":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Backrun"},{"description":"Optional historical backfill: trigger additional runs for prior periods based on `timeBin` and `binValue`.\n"}]}},"additionalProperties":false},"RunDateValue":{"description":"Start of the time slice used only when the `sourceQuery` contains the `${rd}` placeholder.\nThe engine substitutes `${rd}` using `jobSettings.dateFormat`:\n  - DATE → `yyyy-MM-dd`\n  - TIMESTAMP → RFC 3339 `yyyy-MM-dd'T'HH:mm:ss'Z'` \n\nIf `sourceQuery` omits `${rd}`, this value does **not** restrict the data scan and\nonly affects the **run’s date** (e.g., run metadata/labeling, scheduling context).","oneOf":[{"$ref":"#/components/schemas/DateOnly"},{"$ref":"#/components/schemas/Rfc3339DateTime"}],"discriminator":{"propertyName":"kind","mapping":{"DATE":"#/components/schemas/DateOnly","TIMESTAMP":"#/components/schemas/Rfc3339DateTime"}}},"DateOnly":{"type":"object","required":["kind","value"],"description":"Calendar date, format yyyy-MM-dd.","properties":{"kind":{"type":"string","pattern":"^DATE$"},"value":{"type":"string","format":"date"}}},"Rfc3339DateTime":{"type":"object","required":["kind","value"],"format":"date-time","description":"RFC 3339 timestamp with timezone offset. The server normalizes all inputs to UTC and responses are returned in UTC (trailing 'Z'), seconds precision.","properties":{"kind":{"type":"string","pattern":"^TIMESTAMP$"},"value":{"type":"string","format":"date-time"}}},"RunDateEndValue":{"nullable":true,"oneOf":[{"$ref":"#/components/schemas/DateOnly"},{"$ref":"#/components/schemas/Rfc3339DateTime"}],"discriminator":{"propertyName":"kind","mapping":{"DATE":"#/components/schemas/DateOnly","TIMESTAMP":"#/components/schemas/Rfc3339DateTime"}},"description":"**Exclusive end** of the time slice, used only when the `sourceQuery` contains the `${rdEnd}` placeholder.\nMust be **greater than** `runDate` when both are provided. Formatted per `jobSettings.dateFormat`:\n  - DATE → `yyyy-MM-dd`\n  - TIMESTAMP → RFC 3339 `yyyy-MM-dd'T'HH:mm:ss'Z'` \n\nIf `sourceQuery` omits `${rdEnd}`, this value does **not** restrict the data scan and is ignored for run timing."},"Backrun":{"type":"object","nullable":true,"description":"Enables historical backfill runs relative to the scheduled runDate. If included, additional runs will be triggered for the previous `binValue` time bins using the selected `timeBin`. Example: DAY + 10 -> run the previous 10 days.\n","properties":{"timeBin":{"$ref":"#/components/schemas/BackrunTimeBin"},"binValue":{"type":"integer","minimum":1,"description":"Number of past bins to backfill"}},"required":["timeBin","binValue"]},"BackrunTimeBin":{"type":"string","description":"Time bin used when defining backruns.\n\nCurrent possible values include:\n  * `DAY`   – backrun by day.\n  * `MONTH` – backrun by month.\n  * `YEAR`  – backrun by year.\n\nAdditional values may be introduced in the future"}}}}
```

## The JobRun object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"JobRun":{"type":"object","description":"Individual job run","properties":{"jobRunId":{"type":"string","format":"uuid","description":"Id of the individual job run"},"jobName":{"$ref":"#/components/schemas/JobName"},"runDate":{"$ref":"#/components/schemas/RunDateValue"},"status":{"$ref":"#/components/schemas/JobRunStatus"},"activity":{"$ref":"#/components/schemas/JobActivity"},"exception":{"type":"string","nullable":true,"description":"Job exception message if the run failed"},"startedBy":{"type":"string","format":"uuid","description":"User id who run the job"},"updatedAt":{"type":"string","format":"date-time","description":"Last updated timestamp (UTC)"},"startTime":{"type":"string","format":"date-time","description":"Job start timestamp (UTC)"}}},"JobName":{"type":"string","description":"Job name. Allowed characters by default: letters, digits, `_`, `.`, `-`. **Configurable** via the server env variable `VALIDATION_PATTERN_JOB_NAME`. Default pattern: `^[a-zA-Z0-9_.-]+$`.\n","minLength":1,"maxLength":255,"pattern":"^[a-zA-Z0-9_.-]+$"},"RunDateValue":{"description":"Start of the time slice used only when the `sourceQuery` contains the `${rd}` placeholder.\nThe engine substitutes `${rd}` using `jobSettings.dateFormat`:\n  - DATE → `yyyy-MM-dd`\n  - TIMESTAMP → RFC 3339 `yyyy-MM-dd'T'HH:mm:ss'Z'` \n\nIf `sourceQuery` omits `${rd}`, this value does **not** restrict the data scan and\nonly affects the **run’s date** (e.g., run metadata/labeling, scheduling context).","oneOf":[{"$ref":"#/components/schemas/DateOnly"},{"$ref":"#/components/schemas/Rfc3339DateTime"}],"discriminator":{"propertyName":"kind","mapping":{"DATE":"#/components/schemas/DateOnly","TIMESTAMP":"#/components/schemas/Rfc3339DateTime"}}},"DateOnly":{"type":"object","required":["kind","value"],"description":"Calendar date, format yyyy-MM-dd.","properties":{"kind":{"type":"string","pattern":"^DATE$"},"value":{"type":"string","format":"date"}}},"Rfc3339DateTime":{"type":"object","required":["kind","value"],"format":"date-time","description":"RFC 3339 timestamp with timezone offset. The server normalizes all inputs to UTC and responses are returned in UTC (trailing 'Z'), seconds precision.","properties":{"kind":{"type":"string","pattern":"^TIMESTAMP$"},"value":{"type":"string","format":"date-time"}}},"JobRunStatus":{"type":"string","maxLength":255,"description":"Status of an individual job run.\n\nCurrent possible values include:\n  * `WAITING`\n  * `DISPATCHED`\n  * `SETUP`\n  * `RUNNING`\n  * `SENDING`\n  * `FINISHED`\n  * `CANCELLED`\n  * `FAILED`\n  * `UNKNOWN`\n\nAdditional statuses may be introduced in the future."},"JobActivity":{"type":"string","description":"Current activity within the job run.\n\nCurrent possible values include:\n  * `INIT`\n  * `SCHEMA`\n  * `LOAD`\n  * `DISCOVERY`\n  * `PROFILE`\n  * `RULES`\n  * `HISTOGRAMS`\n  * `CORRELATION`\n  * `LAYERS`\n  * `RESULTS`\n  * `ALERTS`\n  * `\"\"` – no activity / idle (legacy representation).\n\nAdditional activities may be introduced in the future. Clients SHOULD treat\nunknown values as “implementation detail” and not fail on them."}}}}
```

## The JobRunPaginated object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"JobRunPaginated":{"type":"object","description":"Paged list of job runs","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/JobRun"}},"total":{"type":"integer","format":"int64","minimum":0,"description":"Total number of matching items"},"offset":{"type":"integer","format":"int64","minimum":0,"description":"Current offset"},"limit":{"type":"integer","format":"int64","minimum":0,"description":"Page size"}},"required":["results","total","offset","limit"]},"JobRun":{"type":"object","description":"Individual job run","properties":{"jobRunId":{"type":"string","format":"uuid","description":"Id of the individual job run"},"jobName":{"$ref":"#/components/schemas/JobName"},"runDate":{"$ref":"#/components/schemas/RunDateValue"},"status":{"$ref":"#/components/schemas/JobRunStatus"},"activity":{"$ref":"#/components/schemas/JobActivity"},"exception":{"type":"string","nullable":true,"description":"Job exception message if the run failed"},"startedBy":{"type":"string","format":"uuid","description":"User id who run the job"},"updatedAt":{"type":"string","format":"date-time","description":"Last updated timestamp (UTC)"},"startTime":{"type":"string","format":"date-time","description":"Job start timestamp (UTC)"}}},"JobName":{"type":"string","description":"Job name. Allowed characters by default: letters, digits, `_`, `.`, `-`. **Configurable** via the server env variable `VALIDATION_PATTERN_JOB_NAME`. Default pattern: `^[a-zA-Z0-9_.-]+$`.\n","minLength":1,"maxLength":255,"pattern":"^[a-zA-Z0-9_.-]+$"},"RunDateValue":{"description":"Start of the time slice used only when the `sourceQuery` contains the `${rd}` placeholder.\nThe engine substitutes `${rd}` using `jobSettings.dateFormat`:\n  - DATE → `yyyy-MM-dd`\n  - TIMESTAMP → RFC 3339 `yyyy-MM-dd'T'HH:mm:ss'Z'` \n\nIf `sourceQuery` omits `${rd}`, this value does **not** restrict the data scan and\nonly affects the **run’s date** (e.g., run metadata/labeling, scheduling context).","oneOf":[{"$ref":"#/components/schemas/DateOnly"},{"$ref":"#/components/schemas/Rfc3339DateTime"}],"discriminator":{"propertyName":"kind","mapping":{"DATE":"#/components/schemas/DateOnly","TIMESTAMP":"#/components/schemas/Rfc3339DateTime"}}},"DateOnly":{"type":"object","required":["kind","value"],"description":"Calendar date, format yyyy-MM-dd.","properties":{"kind":{"type":"string","pattern":"^DATE$"},"value":{"type":"string","format":"date"}}},"Rfc3339DateTime":{"type":"object","required":["kind","value"],"format":"date-time","description":"RFC 3339 timestamp with timezone offset. The server normalizes all inputs to UTC and responses are returned in UTC (trailing 'Z'), seconds precision.","properties":{"kind":{"type":"string","pattern":"^TIMESTAMP$"},"value":{"type":"string","format":"date-time"}}},"JobRunStatus":{"type":"string","maxLength":255,"description":"Status of an individual job run.\n\nCurrent possible values include:\n  * `WAITING`\n  * `DISPATCHED`\n  * `SETUP`\n  * `RUNNING`\n  * `SENDING`\n  * `FINISHED`\n  * `CANCELLED`\n  * `FAILED`\n  * `UNKNOWN`\n\nAdditional statuses may be introduced in the future."},"JobActivity":{"type":"string","description":"Current activity within the job run.\n\nCurrent possible values include:\n  * `INIT`\n  * `SCHEMA`\n  * `LOAD`\n  * `DISCOVERY`\n  * `PROFILE`\n  * `RULES`\n  * `HISTOGRAMS`\n  * `CORRELATION`\n  * `LAYERS`\n  * `RESULTS`\n  * `ALERTS`\n  * `\"\"` – no activity / idle (legacy representation).\n\nAdditional activities may be introduced in the future. Clients SHOULD treat\nunknown values as “implementation detail” and not fail on them."}}}}
```

## The SourceQuery object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"SourceQuery":{"nullable":true,"type":"string","description":"Source SQL for the job. \n\n- If you want to limit the data slice by date/time, **do not hard-code literal\n  dates** in the SQL. Always use the placeholders `${rd}` (start) and `${rdEnd}`\n  (exclusive end), and pass the actual values via the `runDate` / `runDateEnd`\n  fields of the request.  \n  Example pattern: `WHERE \"trade_date\" >= '${rd}' AND \"trade_date\" < '${rdEnd}'` \n- The engine will substitute `${rd}` / `${rdEnd}` based on your chosen\n  `dateFormat` (DATE or TIMESTAMP). \n- Keep the placeholders inside single quotes in SQL (e.g. `'${rd}'`). \n- If you do not include a date predicate, the job will scan the full table (or\n  whatever the query returns). \n- If omitted, the platform will generate a default(vendor compatible) `SELECT * FROM \"<schema>\".\"<table>\"`"}}}}
```

## The DatabaseProduct object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"DatabaseProduct":{"type":"string","readOnly":true,"description":"The database vendor associated with the connection.\n\nCurrent possible values include:\n    * `ATHENA`\n    * `BIGQUERY`\n    * `DATABRICKS`\n    * `DB2`\n    * `MYSQL`\n    * `POSTGRES`\n    * `REDSHIFT`\n    * `SAP`\n    * `SNOWFLAKE`\n    * `SQLSERVER`\n    * `TRINO`\n\n  Additional values will be introduced in the future."}}}}
```

## The JobType object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"JobType":{"type":"string","description":"Execution mode for Data Quality job. Pullup jobs are available only when the Pullup preview feature is enabled. Allowed values: \"PUSHDOWN\", \"PULLUP\".\n"}}}}
```

## The JobDefinitionPaginated object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"JobDefinitionPaginated":{"type":"object","description":"Paged list of jobs","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/JobDefinition"}},"total":{"type":"integer","format":"int64","minimum":0,"description":"Total number of matching items."},"offset":{"type":"integer","format":"int64","minimum":0,"description":"Current offset."},"limit":{"type":"integer","format":"int64","minimum":0,"description":"Page size."}}},"JobDefinition":{"type":"object","properties":{"jobName":{"$ref":"#/components/schemas/JobName"},"jobType":{"$ref":"#/components/schemas/JobType"},"sourceQuery":{"$ref":"#/components/schemas/SourceQuery"},"runDate":{"$ref":"#/components/schemas/RunDateValue"},"runDateEnd":{"$ref":"#/components/schemas/RunDateEndValue"},"dataLocation":{"$ref":"#/components/schemas/DataLocation"},"jobSettings":{"$ref":"#/components/schemas/JobSettings"},"monitoringSettings":{"$ref":"#/components/schemas/JobMonitoringSettings"},"notifications":{"$ref":"#/components/schemas/JobNotifications"},"schedulingSettings":{"$ref":"#/components/schemas/SchedulingSettings"}}},"JobName":{"type":"string","description":"Job name. Allowed characters by default: letters, digits, `_`, `.`, `-`. **Configurable** via the server env variable `VALIDATION_PATTERN_JOB_NAME`. Default pattern: `^[a-zA-Z0-9_.-]+$`.\n","minLength":1,"maxLength":255,"pattern":"^[a-zA-Z0-9_.-]+$"},"JobType":{"type":"string","description":"Execution mode for Data Quality job. Pullup jobs are available only when the Pullup preview feature is enabled. Allowed values: \"PUSHDOWN\", \"PULLUP\".\n"},"SourceQuery":{"nullable":true,"type":"string","description":"Source SQL for the job. \n\n- If you want to limit the data slice by date/time, **do not hard-code literal\n  dates** in the SQL. Always use the placeholders `${rd}` (start) and `${rdEnd}`\n  (exclusive end), and pass the actual values via the `runDate` / `runDateEnd`\n  fields of the request.  \n  Example pattern: `WHERE \"trade_date\" >= '${rd}' AND \"trade_date\" < '${rdEnd}'` \n- The engine will substitute `${rd}` / `${rdEnd}` based on your chosen\n  `dateFormat` (DATE or TIMESTAMP). \n- Keep the placeholders inside single quotes in SQL (e.g. `'${rd}'`). \n- If you do not include a date predicate, the job will scan the full table (or\n  whatever the query returns). \n- If omitted, the platform will generate a default(vendor compatible) `SELECT * FROM \"<schema>\".\"<table>\"`"},"RunDateValue":{"description":"Start of the time slice used only when the `sourceQuery` contains the `${rd}` placeholder.\nThe engine substitutes `${rd}` using `jobSettings.dateFormat`:\n  - DATE → `yyyy-MM-dd`\n  - TIMESTAMP → RFC 3339 `yyyy-MM-dd'T'HH:mm:ss'Z'` \n\nIf `sourceQuery` omits `${rd}`, this value does **not** restrict the data scan and\nonly affects the **run’s date** (e.g., run metadata/labeling, scheduling context).","oneOf":[{"$ref":"#/components/schemas/DateOnly"},{"$ref":"#/components/schemas/Rfc3339DateTime"}],"discriminator":{"propertyName":"kind","mapping":{"DATE":"#/components/schemas/DateOnly","TIMESTAMP":"#/components/schemas/Rfc3339DateTime"}}},"DateOnly":{"type":"object","required":["kind","value"],"description":"Calendar date, format yyyy-MM-dd.","properties":{"kind":{"type":"string","pattern":"^DATE$"},"value":{"type":"string","format":"date"}}},"Rfc3339DateTime":{"type":"object","required":["kind","value"],"format":"date-time","description":"RFC 3339 timestamp with timezone offset. The server normalizes all inputs to UTC and responses are returned in UTC (trailing 'Z'), seconds precision.","properties":{"kind":{"type":"string","pattern":"^TIMESTAMP$"},"value":{"type":"string","format":"date-time"}}},"RunDateEndValue":{"nullable":true,"oneOf":[{"$ref":"#/components/schemas/DateOnly"},{"$ref":"#/components/schemas/Rfc3339DateTime"}],"discriminator":{"propertyName":"kind","mapping":{"DATE":"#/components/schemas/DateOnly","TIMESTAMP":"#/components/schemas/Rfc3339DateTime"}},"description":"**Exclusive end** of the time slice, used only when the `sourceQuery` contains the `${rdEnd}` placeholder.\nMust be **greater than** `runDate` when both are provided. Formatted per `jobSettings.dateFormat`:\n  - DATE → `yyyy-MM-dd`\n  - TIMESTAMP → RFC 3339 `yyyy-MM-dd'T'HH:mm:ss'Z'` \n\nIf `sourceQuery` omits `${rdEnd}`, this value does **not** restrict the data scan and is ignored for run timing."},"DataLocation":{"description":"Identifies where the job reads data from. Combines the platform connection and the specific catalog/schema/table location inside that connection.\n","required":["edgeSiteName","edgeConnectionName","dataSourceName","schemaName","tableName"],"type":"object","properties":{"edgeSiteName":{"description":"Edge site name","type":"string"},"edgeConnectionName":{"type":"string","description":"Edge connection name"},"dataSourceName":{"type":"string","description":"Data source (database/catalog) name"},"databaseProductName":{"$ref":"#/components/schemas/DatabaseProduct"},"schemaName":{"description":"Schema name","type":"string"},"tableName":{"description":"Table name","type":"string"}}},"DatabaseProduct":{"type":"string","readOnly":true,"description":"The database vendor associated with the connection.\n\nCurrent possible values include:\n    * `ATHENA`\n    * `BIGQUERY`\n    * `DATABRICKS`\n    * `DB2`\n    * `MYSQL`\n    * `POSTGRES`\n    * `REDSHIFT`\n    * `SAP`\n    * `SNOWFLAKE`\n    * `SQLSERVER`\n    * `TRINO`\n\n  Additional values will be introduced in the future."},"JobSettings":{"type":"object","description":"Job-level execution settings, including date format and pushdown/pullup tuning. Pullup jobs are available only when the Pullup preview feature is enabled.\n","properties":{"dateFormat":{"$ref":"#/components/schemas/DateFormat"},"pushdownSettings":{"$ref":"#/components/schemas/PushdownSettings"},"pullupSettings":{"$ref":"#/components/schemas/PullupSettings"}}},"DateFormat":{"type":"string","default":"DATE","description":"Date format used for `runDate` / `runDateEnd`.\nSupported values:\n  - DATE -> yyyy-MM-dd \n  - TIMESTAMP -> RFC 3339 timestamp, example - 2025-10-23T13:50:02Z","enum":["DATE","TIMESTAMP"]},"PushdownSettings":{"type":"object","nullable":true,"description":"Settings for pushdown execution. Controls concurrency used by the source system connection.\nProvide this object only when the job's jobType is PUSHDOWN. Omit or set to null for non-pushdown jobs.","properties":{"connections":{"type":"integer","minimum":1,"default":10,"description":"Number of concurrent source connections\n"},"threads":{"type":"integer","minimum":1,"default":5,"description":"Worker threads per connection for pushdown queries\n"}}},"PullupSettings":{"type":"object","nullable":true,"description":"Settings for pullup execution. Controls partitioning and Spark sizing.\nProvide this object only when the job's jobType is PULLUP. Omit or set to null for non-pullup jobs.\n\nPullup functionality is available only when the Pullup preview feature is enabled.","properties":{"loadOptions":{"$ref":"#/components/schemas/LoadOptions"},"sparkJobSizing":{"$ref":"#/components/schemas/SparkJobSizing"},"sparkSqlProperties":{"type":"object","nullable":true,"description":"Arbitrary Spark SQL session properties as key/value pairs\n","additionalProperties":{"type":"string"}}}},"LoadOptions":{"type":"object","nullable":true,"description":"Data loading options applied when reading from the source\n","properties":{"numPartitions":{"type":"integer","minimum":0,"default":0,"description":"Number of Spark input partitions\n"},"parallelJdbcOptions":{"$ref":"#/components/schemas/ParallelJdbcOptions"}}},"ParallelJdbcOptions":{"nullable":true,"description":"Options for parallel JDBC partitioning. Choose a `mode`, which determines which\nfields are required: \n - `AUTO` – system selects column & partitions \n - `AUTO_COLUMN` – system selects column; you provide `partitionNumber`\n - `MANUAL` – you provide `partitionColumn` and `partitionNumber`","oneOf":[{"$ref":"#/components/schemas/ParallelJdbcOptionsAuto"},{"$ref":"#/components/schemas/ParallelJdbcOptionsAutoColumn"},{"$ref":"#/components/schemas/ParallelJdbcOptionsManual"}],"discriminator":{"propertyName":"mode","mapping":{"AUTO":"#/components/schemas/ParallelJdbcOptionsAuto","AUTO_COLUMN":"#/components/schemas/ParallelJdbcOptionsAutoColumn","MANUAL":"#/components/schemas/ParallelJdbcOptionsManual"}},"default":null},"ParallelJdbcOptionsAuto":{"type":"object","description":"Automatic column & partition selection.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO`."}},"required":["mode"],"additionalProperties":false},"ParallelJdbcOptionsAutoColumn":{"type":"object","description":"Automatic column selection; you specify the number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO_COLUMN`."},"partitionNumber":{"type":"integer","minimum":0,"description":"Number of partitions to use."}},"required":["mode","partitionNumber"],"additionalProperties":false},"ParallelJdbcOptionsManual":{"type":"object","description":"You specify both the partition column and number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `MANUAL`."},"partitionColumn":{"type":"string","description":"Numeric/integer column to partition on."},"partitionNumber":{"type":"integer","minimum":1,"description":"Number of partitions to use."}},"required":["mode","partitionColumn","partitionNumber"],"additionalProperties":false},"SparkJobSizing":{"type":"object","nullable":true,"description":"Optional manual sizing for Spark resources.\n\nIf this object is **omitted or null**, the platform automatically selects\nSpark resources based on the source query.","properties":{"numExecutors":{"type":"integer","minimum":1,"description":"Number of executors to use (upper bound).","default":1},"driverCores":{"type":"integer","minimum":1,"description":"Number of driver CPU cores.","default":1},"numExecutorCores":{"type":"integer","minimum":1,"description":"Number of CPU cores per executor.","default":1},"executorMemoryGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Maximum memory per executor in GB.","default":1}]},"driverMemoryGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Driver memory in GB.","default":1}]},"memoryOverheadGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Additional off-heap memory per executor in GB.","nullable":true,"default":null}]}},"additionalProperties":false},"SparkMemoryGB":{"type":"integer","description":"Memory amount in gigabytes. The unit is in **GB**, fractional values are not supported\n"},"JobMonitoringSettings":{"type":"object","description":"Monitoring configuration for the job, excluding custom rules. Currently, only adaptive rules are supported. This structure is designed for future extensibility to include additional monitor types.","properties":{"adaptiveMonitors":{"$ref":"#/components/schemas/AdaptiveMonitors"}}},"AdaptiveMonitors":{"type":"object","description":"Feature toggles for adaptive monitors computed during profiling. All data quality jobs always run profiling with data type detection and schema-change checks enabled.\n","properties":{"descriptiveStatistics":{"type":"boolean","default":false,"description":"Show descriptive statistics in profiling results (e.g., count, min, mean, max). Note: may expose sensitive values such as minimum/maximum. If disabled, all column values are masked in the profiling results.\n"},"emptyFields":{"type":"boolean","default":true,"description":"Detect changes in the number of empty values in numeric columns.\n"},"executionTime":{"type":"boolean","default":false,"description":"Track changes in total execution time of the data job.\n"},"max":{"type":"boolean","default":false,"description":"Detect changes in the highest value across numeric columns.\n"},"mean":{"type":"boolean","default":false,"description":"Detect changes in the average (mean) value across numeric columns.\n"},"min":{"type":"boolean","default":false,"description":"Detect changes in the lowest value across numeric columns.\n"},"nullValues":{"type":"boolean","default":true,"description":"Detect changes in the number of NULL values across all columns.\n"},"rowCount":{"type":"boolean","default":true,"description":"Track changes in the total number of rows.\n"},"uniqueness":{"type":"boolean","default":true,"description":"Track changes in the number of distinct values across all columns.\n"},"settings":{"$ref":"#/components/schemas/AdaptiveMonitorSettings"}}},"AdaptiveMonitorSettings":{"type":"object","description":"Optional learning/tuning parameters applied to the above monitors.\n","properties":{"dataLookBack":{"type":"integer","minimum":0,"default":10,"description":"Number of historical runs to consider when detecting changes (0 = no look back).\n"},"learningPhase":{"type":"integer","minimum":0,"default":4,"description":"Number of initial runs used to learn a baseline before signaling changes (0 = no learning phase).    \n"}}},"JobNotifications":{"type":"object","description":"Controls which events trigger a notification, which channels deliver them, and what message is sent. This schema is **channel-extensible**: it starts with EMAIL and will be updated in future versions to support additional channels (e.g., Slack) without breaking existing clients.\n","properties":{"notificationOptions":{"type":"array","description":"Per-event settings. Add one item per event to monitor.","items":{"$ref":"#/components/schemas/NotificationOption"}},"globalMessage":{"type":"string","description":"Default message template when `useIndividualMessages` is false."},"useIndividualMessages":{"type":"boolean","description":"If true, use each option's `message`; otherwise use `globalMessage`."},"channels":{"type":"array","minItems":1,"description":"Delivery channels and their destinations","items":{"$ref":"#/components/schemas/NotificationChannel"}}},"required":["notificationOptions","channels"]},"NotificationOption":{"type":"object","description":"Configuration for a single notification event.\n","required":["notificationType","enabled"],"properties":{"notificationType":{"$ref":"#/components/schemas/NotificationType"},"enabled":{"type":"boolean","description":"Whether this notification is active."},"message":{"type":"string","description":"Custom message for this notification. Used when `useIndividualMessages` is `true`. If omitted or blank, the service falls back to `globalMessage`, if that is also blank, a system default template is used.\n"},"quantity":{"type":"integer","minimum":0,"nullable":true,"description":"Threshold used **only** for specific types:  \n  - `ROWS_LESS_THAN_LIMIT` – minimum expected row count.  \n  - `RUNS_WITHOUT_DATA` – number of consecutive empty runs (N).  \n  - `DAYS_WITHOUT_DATA` – number of days with no data (N).  \n  - `SCORE_LESS_THAN_LIMIT` – minimum acceptable score.  \n  - `RUN_TIME_MORE_THEN_LIMIT` – maximum allowed runtime in minutes.  \nIgnored for other types."}}},"NotificationType":{"type":"string","description":"The event that triggers this notification.\n\nCurrent possible values include:\n  * `JOB_FAILED`            – sent when a job run fails.\n  * `JOB_COMPLETED`         – sent when a job run finishes successfully.\n  * `ROWS_LESS_THAN_LIMIT`  – sent when produced row count is below a limit.\n  * `RUNS_WITHOUT_DATA`     – sent after N consecutive runs produced no data.\n  * `DAYS_WITHOUT_DATA`     – sent when no data was produced for N days.\n  * `SCORE_LESS_THAN_LIMIT` – sent when quality score is below a limit.\n  * `RUN_TIME_MORE_THEN_LIMIT` – sent when runtime exceeds a limit (in minutes).\n\nAdditional notification types may be introduced in the future."},"NotificationChannel":{"type":"object","description":"Notification delivery channel and its destination/parameters.\n\nCurrent supported channel type:\n  * `EMAIL` – send notifications via email to the given recipients.\n\nAdditional channel types (e.g., `SLACK`) may be introduced in the future.","properties":{"channel":{"type":"string","description":"Delivery channel type.\n\nCurrent value:\n  * `EMAIL`\n\nAdditional values MAY be added in future versions."},"recipients":{"type":"array","minItems":1,"description":"Platform usernames to receive email notifications when `channel = EMAIL`\n(e.g., `jsmith`, `adoe`).","items":{"type":"string"}}},"additionalProperties":true},"SchedulingSettings":{"nullable":true,"description":"Controls when a scheduled job runs and how `runDate` is adjusted. Exactly **one** schedule mode is allowed. **Optional** If omitted or null, the job will not be scheduled.\n","oneOf":[{"$ref":"#/components/schemas/SchedulingHourly"},{"$ref":"#/components/schemas/SchedulingDaily"},{"$ref":"#/components/schemas/SchedulingMonthly"}],"discriminator":{"propertyName":"schedulerMode","mapping":{"HOURLY":"#/components/schemas/SchedulingHourly","DAILY":"#/components/schemas/SchedulingDaily","MONTHLY":"#/components/schemas/SchedulingMonthly"}}},"SchedulingHourly":{"allOf":[{"$ref":"#/components/schemas/SchedulingBase"},{"type":"object","required":["hourly","schedulerMode"],"description":"Hourly schedule configuration. If scheduleRunTime is set \"14:30:00\", the job runs at 14:30, 15:30, 16:30, etc.","properties":{"schedulerMode":{"type":"string","description":"Schedule type.\n\nFor this schema, the value MUST be `HOURLY`."},"hourly":{"type":"object","description":"Hourly schedule rules.","required":["hourlyOffset"],"properties":{"hourlyOffset":{"type":"string","description":"Run-date offset in hours relative to the scheduled time.\n\nCurrent possible values include:\n  * `SCHEDULED` – use the scheduled date/time.\n  * `ONE_HOUR` – run date is 1 hour before the scheduled time.\n  * `TWO_HOURS` – run date is 2 hours before the scheduled time.\n\nAdditional values MAY be added in future versions."}}}}}]},"SchedulingBase":{"type":"object","required":["isActive","scheduledRunTime","schedulerMode"],"properties":{"isActive":{"type":"boolean","description":"Enable/disable the schedule (disabled schedules do not trigger runs)."},"scheduledRunTime":{"type":"string","description":"Time of day in **UTC**, format `HH:mm:ss`.  (24 hours) Example: `14:10:00` means the job starts at 14:10:00 UTC.\n"},"schedulerMode":{"type":"string","description":"Schedule type.\n\nCurrent possible values:\n  * `HOURLY`\n  * `DAILY`\n  * `MONTHLY`\n\nAdditional modes MAY be added in future versions."}}},"SchedulingDaily":{"allOf":[{"$ref":"#/components/schemas/SchedulingBase"},{"type":"object","required":["daily","schedulerMode"],"properties":{"schedulerMode":{"type":"string","description":"Schedule type.\n\nFor this schema, the value MUST be `DAILY`."},"daily":{"type":"object","description":"Daily schedule rules.","required":["dailyOffset","daysOfWeek"],"properties":{"dailyOffset":{"type":"string","description":"Run-date offset in days relative to the scheduled day.\n\nCurrent possible values include:\n  * `SCHEDULED`\n  * `ONE_DAY`\n  * `TWO_DAYS`\n  * `THREE_DAYS`\n  * `FOUR_DAYS`\n  * `FIVE_DAYS`\n  * `SIX_DAYS`\n  * `SEVEN_DAYS`\n\nAdditional values MAY be added in future versions."},"daysOfWeek":{"type":"array","minItems":1,"items":{"type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"description":"Days of week to run."}}}}}]},"SchedulingMonthly":{"allOf":[{"$ref":"#/components/schemas/SchedulingBase"},{"type":"object","required":["monthly","schedulerMode"],"properties":{"schedulerMode":{"type":"string","description":"Schedule type.\n\nFor this schema, the value MUST be `MONTHLY`."},"monthly":{"type":"object","description":"Monthly schedule rules.","required":["monthlyRepeat","monthlyOffset"],"properties":{"monthlyRepeat":{"type":"string","description":"Which day of the month to run the job on.\n\nCurrent possible values:\n  * `FIRST` – first day of the month\n  * `LAST`  – last day of the month\n  * `DAY`   – specific calendar day (requires `dayNumber` in 1–31 range)\n\nAdditional values MAY be added in future versions."},"monthlyOffset":{"type":"string","description":"Run-date offset applied to the scheduled monthly day.\n\nCurrent possible values include:\n  * `SCHEDULED`              - use the scheduled date\n  * `FIRST_OF_CURRENT_MONTH` - first day of the current month\n  * `LAST_OF_CURRENT_MONTH`  - last day of the current month\n  * `FIRST_OF_PRIOR_MONTH`   - first day of the prior month\n  * `LAST_OF_PRIOR_MONTH`    - last day of the prior month\n\nAdditional values may be added in future versions."},"dayNumber":{"type":"integer","minimum":1,"maximum":31,"nullable":true,"description":"Required when `monthlyRepeat = DAY`."}}}}}]}}}}
```

## The JobSubmission object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"JobSubmission":{"type":"object","properties":{"jobRunId":{"type":"string","format":"uuid"}}}}}}
```

## The DataLocation object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"DataLocation":{"description":"Identifies where the job reads data from. Combines the platform connection and the specific catalog/schema/table location inside that connection.\n","required":["edgeSiteName","edgeConnectionName","dataSourceName","schemaName","tableName"],"type":"object","properties":{"edgeSiteName":{"description":"Edge site name","type":"string"},"edgeConnectionName":{"type":"string","description":"Edge connection name"},"dataSourceName":{"type":"string","description":"Data source (database/catalog) name"},"databaseProductName":{"$ref":"#/components/schemas/DatabaseProduct"},"schemaName":{"description":"Schema name","type":"string"},"tableName":{"description":"Table name","type":"string"}}},"DatabaseProduct":{"type":"string","readOnly":true,"description":"The database vendor associated with the connection.\n\nCurrent possible values include:\n    * `ATHENA`\n    * `BIGQUERY`\n    * `DATABRICKS`\n    * `DB2`\n    * `MYSQL`\n    * `POSTGRES`\n    * `REDSHIFT`\n    * `SAP`\n    * `SNOWFLAKE`\n    * `SQLSERVER`\n    * `TRINO`\n\n  Additional values will be introduced in the future."}}}}
```

## The BackrunTimeBin object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"BackrunTimeBin":{"type":"string","description":"Time bin used when defining backruns.\n\nCurrent possible values include:\n  * `DAY`   – backrun by day.\n  * `MONTH` – backrun by month.\n  * `YEAR`  – backrun by year.\n\nAdditional values may be introduced in the future"}}}}
```

## The Backrun object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"Backrun":{"type":"object","nullable":true,"description":"Enables historical backfill runs relative to the scheduled runDate. If included, additional runs will be triggered for the previous `binValue` time bins using the selected `timeBin`. Example: DAY + 10 -> run the previous 10 days.\n","properties":{"timeBin":{"$ref":"#/components/schemas/BackrunTimeBin"},"binValue":{"type":"integer","minimum":1,"description":"Number of past bins to backfill"}},"required":["timeBin","binValue"]},"BackrunTimeBin":{"type":"string","description":"Time bin used when defining backruns.\n\nCurrent possible values include:\n  * `DAY`   – backrun by day.\n  * `MONTH` – backrun by month.\n  * `YEAR`  – backrun by year.\n\nAdditional values may be introduced in the future"}}}}
```

## The JobSettings object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"JobSettings":{"type":"object","description":"Job-level execution settings, including date format and pushdown/pullup tuning. Pullup jobs are available only when the Pullup preview feature is enabled.\n","properties":{"dateFormat":{"$ref":"#/components/schemas/DateFormat"},"pushdownSettings":{"$ref":"#/components/schemas/PushdownSettings"},"pullupSettings":{"$ref":"#/components/schemas/PullupSettings"}}},"DateFormat":{"type":"string","default":"DATE","description":"Date format used for `runDate` / `runDateEnd`.\nSupported values:\n  - DATE -> yyyy-MM-dd \n  - TIMESTAMP -> RFC 3339 timestamp, example - 2025-10-23T13:50:02Z","enum":["DATE","TIMESTAMP"]},"PushdownSettings":{"type":"object","nullable":true,"description":"Settings for pushdown execution. Controls concurrency used by the source system connection.\nProvide this object only when the job's jobType is PUSHDOWN. Omit or set to null for non-pushdown jobs.","properties":{"connections":{"type":"integer","minimum":1,"default":10,"description":"Number of concurrent source connections\n"},"threads":{"type":"integer","minimum":1,"default":5,"description":"Worker threads per connection for pushdown queries\n"}}},"PullupSettings":{"type":"object","nullable":true,"description":"Settings for pullup execution. Controls partitioning and Spark sizing.\nProvide this object only when the job's jobType is PULLUP. Omit or set to null for non-pullup jobs.\n\nPullup functionality is available only when the Pullup preview feature is enabled.","properties":{"loadOptions":{"$ref":"#/components/schemas/LoadOptions"},"sparkJobSizing":{"$ref":"#/components/schemas/SparkJobSizing"},"sparkSqlProperties":{"type":"object","nullable":true,"description":"Arbitrary Spark SQL session properties as key/value pairs\n","additionalProperties":{"type":"string"}}}},"LoadOptions":{"type":"object","nullable":true,"description":"Data loading options applied when reading from the source\n","properties":{"numPartitions":{"type":"integer","minimum":0,"default":0,"description":"Number of Spark input partitions\n"},"parallelJdbcOptions":{"$ref":"#/components/schemas/ParallelJdbcOptions"}}},"ParallelJdbcOptions":{"nullable":true,"description":"Options for parallel JDBC partitioning. Choose a `mode`, which determines which\nfields are required: \n - `AUTO` – system selects column & partitions \n - `AUTO_COLUMN` – system selects column; you provide `partitionNumber`\n - `MANUAL` – you provide `partitionColumn` and `partitionNumber`","oneOf":[{"$ref":"#/components/schemas/ParallelJdbcOptionsAuto"},{"$ref":"#/components/schemas/ParallelJdbcOptionsAutoColumn"},{"$ref":"#/components/schemas/ParallelJdbcOptionsManual"}],"discriminator":{"propertyName":"mode","mapping":{"AUTO":"#/components/schemas/ParallelJdbcOptionsAuto","AUTO_COLUMN":"#/components/schemas/ParallelJdbcOptionsAutoColumn","MANUAL":"#/components/schemas/ParallelJdbcOptionsManual"}},"default":null},"ParallelJdbcOptionsAuto":{"type":"object","description":"Automatic column & partition selection.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO`."}},"required":["mode"],"additionalProperties":false},"ParallelJdbcOptionsAutoColumn":{"type":"object","description":"Automatic column selection; you specify the number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO_COLUMN`."},"partitionNumber":{"type":"integer","minimum":0,"description":"Number of partitions to use."}},"required":["mode","partitionNumber"],"additionalProperties":false},"ParallelJdbcOptionsManual":{"type":"object","description":"You specify both the partition column and number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `MANUAL`."},"partitionColumn":{"type":"string","description":"Numeric/integer column to partition on."},"partitionNumber":{"type":"integer","minimum":1,"description":"Number of partitions to use."}},"required":["mode","partitionColumn","partitionNumber"],"additionalProperties":false},"SparkJobSizing":{"type":"object","nullable":true,"description":"Optional manual sizing for Spark resources.\n\nIf this object is **omitted or null**, the platform automatically selects\nSpark resources based on the source query.","properties":{"numExecutors":{"type":"integer","minimum":1,"description":"Number of executors to use (upper bound).","default":1},"driverCores":{"type":"integer","minimum":1,"description":"Number of driver CPU cores.","default":1},"numExecutorCores":{"type":"integer","minimum":1,"description":"Number of CPU cores per executor.","default":1},"executorMemoryGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Maximum memory per executor in GB.","default":1}]},"driverMemoryGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Driver memory in GB.","default":1}]},"memoryOverheadGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Additional off-heap memory per executor in GB.","nullable":true,"default":null}]}},"additionalProperties":false},"SparkMemoryGB":{"type":"integer","description":"Memory amount in gigabytes. The unit is in **GB**, fractional values are not supported\n"}}}}
```

## The JobSettingsPatch object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"JobSettingsPatch":{"type":"object","nullable":true,"properties":{"dateFormat":{"$ref":"#/components/schemas/DateFormatPatch"},"pushdownSettings":{"$ref":"#/components/schemas/PushdownSettingsPatch"},"pullupSettings":{"$ref":"#/components/schemas/PullupSettingsPatch"}}},"DateFormatPatch":{"type":"string","nullable":true,"description":"Date format used for `runDate` / `runDateEnd`.\nSupported values:\n  - DATE -> yyyy-MM-dd \n  - TIMESTAMP -> RFC 3339 timestamp, example - 2025-10-23T13:50:02Z","enum":["DATE","TIMESTAMP"]},"PushdownSettingsPatch":{"type":"object","nullable":true,"description":"Settings for pushdown execution. Controls concurrency used by the source system connection.\nProvide this object only when the job's jobType is PUSHDOWN. Omit or set to null for non-pushdown jobs.","properties":{"connections":{"type":"integer","description":"Number of concurrent source connections\n","minimum":1,"nullable":true},"threads":{"type":"integer","description":"Worker threads per connection for pushdown queries\n","minimum":1,"nullable":true}}},"PullupSettingsPatch":{"type":"object","nullable":true,"description":"Settings for pullup execution. Controls partitioning and Spark sizing.\nProvide this object only when the job's jobType is PULLUP. Omit or set to null for non-pullup jobs.\n\nPullup functionality is available only when the Pullup preview feature is enabled.","properties":{"loadOptions":{"$ref":"#/components/schemas/LoadOptionsPatch"},"sparkJobSizing":{"$ref":"#/components/schemas/SparkJobSizingPatch"},"sparkSqlProperties":{"type":"object","nullable":true,"description":"Arbitrary Spark SQL session properties as key/value pairs\n","additionalProperties":{"type":"string"}}}},"LoadOptionsPatch":{"type":"object","nullable":true,"description":"Data loading options applied when reading from the source\n","properties":{"numPartitions":{"type":"integer","nullable":true,"minimum":0,"description":"Number of Spark input partitions\n"},"parallelJdbcOptions":{"$ref":"#/components/schemas/ParallelJdbcOptions"}}},"ParallelJdbcOptions":{"nullable":true,"description":"Options for parallel JDBC partitioning. Choose a `mode`, which determines which\nfields are required: \n - `AUTO` – system selects column & partitions \n - `AUTO_COLUMN` – system selects column; you provide `partitionNumber`\n - `MANUAL` – you provide `partitionColumn` and `partitionNumber`","oneOf":[{"$ref":"#/components/schemas/ParallelJdbcOptionsAuto"},{"$ref":"#/components/schemas/ParallelJdbcOptionsAutoColumn"},{"$ref":"#/components/schemas/ParallelJdbcOptionsManual"}],"discriminator":{"propertyName":"mode","mapping":{"AUTO":"#/components/schemas/ParallelJdbcOptionsAuto","AUTO_COLUMN":"#/components/schemas/ParallelJdbcOptionsAutoColumn","MANUAL":"#/components/schemas/ParallelJdbcOptionsManual"}},"default":null},"ParallelJdbcOptionsAuto":{"type":"object","description":"Automatic column & partition selection.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO`."}},"required":["mode"],"additionalProperties":false},"ParallelJdbcOptionsAutoColumn":{"type":"object","description":"Automatic column selection; you specify the number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO_COLUMN`."},"partitionNumber":{"type":"integer","minimum":0,"description":"Number of partitions to use."}},"required":["mode","partitionNumber"],"additionalProperties":false},"ParallelJdbcOptionsManual":{"type":"object","description":"You specify both the partition column and number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `MANUAL`."},"partitionColumn":{"type":"string","description":"Numeric/integer column to partition on."},"partitionNumber":{"type":"integer","minimum":1,"description":"Number of partitions to use."}},"required":["mode","partitionColumn","partitionNumber"],"additionalProperties":false},"SparkJobSizingPatch":{"type":"object","nullable":true,"description":"Optional manual sizing for Spark resources.\n\nIf this object is **omitted or null**, the platform automatically selects\nSpark resources based on the source query.","properties":{"numExecutors":{"type":"integer","minimum":1,"description":"Number of executors to use (upper bound)."},"driverCores":{"type":"integer","minimum":1,"description":"Number of driver CPU cores."},"numExecutorCores":{"type":"integer","minimum":1,"description":"Number of CPU cores per executor."},"executorMemoryGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Maximum memory per executor in GB."}]},"driverMemoryGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Driver memory in GB."}]},"memoryOverheadGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Additional off-heap memory per executor in GB.","nullable":true}]}},"additionalProperties":false},"SparkMemoryGB":{"type":"integer","description":"Memory amount in gigabytes. The unit is in **GB**, fractional values are not supported\n"}}}}
```

## The PushdownSettings object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"PushdownSettings":{"type":"object","nullable":true,"description":"Settings for pushdown execution. Controls concurrency used by the source system connection.\nProvide this object only when the job's jobType is PUSHDOWN. Omit or set to null for non-pushdown jobs.","properties":{"connections":{"type":"integer","minimum":1,"default":10,"description":"Number of concurrent source connections\n"},"threads":{"type":"integer","minimum":1,"default":5,"description":"Worker threads per connection for pushdown queries\n"}}}}}}
```

## The PushdownSettingsPatch object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"PushdownSettingsPatch":{"type":"object","nullable":true,"description":"Settings for pushdown execution. Controls concurrency used by the source system connection.\nProvide this object only when the job's jobType is PUSHDOWN. Omit or set to null for non-pushdown jobs.","properties":{"connections":{"type":"integer","description":"Number of concurrent source connections\n","minimum":1,"nullable":true},"threads":{"type":"integer","description":"Worker threads per connection for pushdown queries\n","minimum":1,"nullable":true}}}}}}
```

## The PullupSettings object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"PullupSettings":{"type":"object","nullable":true,"description":"Settings for pullup execution. Controls partitioning and Spark sizing.\nProvide this object only when the job's jobType is PULLUP. Omit or set to null for non-pullup jobs.\n\nPullup functionality is available only when the Pullup preview feature is enabled.","properties":{"loadOptions":{"$ref":"#/components/schemas/LoadOptions"},"sparkJobSizing":{"$ref":"#/components/schemas/SparkJobSizing"},"sparkSqlProperties":{"type":"object","nullable":true,"description":"Arbitrary Spark SQL session properties as key/value pairs\n","additionalProperties":{"type":"string"}}}},"LoadOptions":{"type":"object","nullable":true,"description":"Data loading options applied when reading from the source\n","properties":{"numPartitions":{"type":"integer","minimum":0,"default":0,"description":"Number of Spark input partitions\n"},"parallelJdbcOptions":{"$ref":"#/components/schemas/ParallelJdbcOptions"}}},"ParallelJdbcOptions":{"nullable":true,"description":"Options for parallel JDBC partitioning. Choose a `mode`, which determines which\nfields are required: \n - `AUTO` – system selects column & partitions \n - `AUTO_COLUMN` – system selects column; you provide `partitionNumber`\n - `MANUAL` – you provide `partitionColumn` and `partitionNumber`","oneOf":[{"$ref":"#/components/schemas/ParallelJdbcOptionsAuto"},{"$ref":"#/components/schemas/ParallelJdbcOptionsAutoColumn"},{"$ref":"#/components/schemas/ParallelJdbcOptionsManual"}],"discriminator":{"propertyName":"mode","mapping":{"AUTO":"#/components/schemas/ParallelJdbcOptionsAuto","AUTO_COLUMN":"#/components/schemas/ParallelJdbcOptionsAutoColumn","MANUAL":"#/components/schemas/ParallelJdbcOptionsManual"}},"default":null},"ParallelJdbcOptionsAuto":{"type":"object","description":"Automatic column & partition selection.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO`."}},"required":["mode"],"additionalProperties":false},"ParallelJdbcOptionsAutoColumn":{"type":"object","description":"Automatic column selection; you specify the number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO_COLUMN`."},"partitionNumber":{"type":"integer","minimum":0,"description":"Number of partitions to use."}},"required":["mode","partitionNumber"],"additionalProperties":false},"ParallelJdbcOptionsManual":{"type":"object","description":"You specify both the partition column and number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `MANUAL`."},"partitionColumn":{"type":"string","description":"Numeric/integer column to partition on."},"partitionNumber":{"type":"integer","minimum":1,"description":"Number of partitions to use."}},"required":["mode","partitionColumn","partitionNumber"],"additionalProperties":false},"SparkJobSizing":{"type":"object","nullable":true,"description":"Optional manual sizing for Spark resources.\n\nIf this object is **omitted or null**, the platform automatically selects\nSpark resources based on the source query.","properties":{"numExecutors":{"type":"integer","minimum":1,"description":"Number of executors to use (upper bound).","default":1},"driverCores":{"type":"integer","minimum":1,"description":"Number of driver CPU cores.","default":1},"numExecutorCores":{"type":"integer","minimum":1,"description":"Number of CPU cores per executor.","default":1},"executorMemoryGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Maximum memory per executor in GB.","default":1}]},"driverMemoryGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Driver memory in GB.","default":1}]},"memoryOverheadGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Additional off-heap memory per executor in GB.","nullable":true,"default":null}]}},"additionalProperties":false},"SparkMemoryGB":{"type":"integer","description":"Memory amount in gigabytes. The unit is in **GB**, fractional values are not supported\n"}}}}
```

## The PullupSettingsPatch object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"PullupSettingsPatch":{"type":"object","nullable":true,"description":"Settings for pullup execution. Controls partitioning and Spark sizing.\nProvide this object only when the job's jobType is PULLUP. Omit or set to null for non-pullup jobs.\n\nPullup functionality is available only when the Pullup preview feature is enabled.","properties":{"loadOptions":{"$ref":"#/components/schemas/LoadOptionsPatch"},"sparkJobSizing":{"$ref":"#/components/schemas/SparkJobSizingPatch"},"sparkSqlProperties":{"type":"object","nullable":true,"description":"Arbitrary Spark SQL session properties as key/value pairs\n","additionalProperties":{"type":"string"}}}},"LoadOptionsPatch":{"type":"object","nullable":true,"description":"Data loading options applied when reading from the source\n","properties":{"numPartitions":{"type":"integer","nullable":true,"minimum":0,"description":"Number of Spark input partitions\n"},"parallelJdbcOptions":{"$ref":"#/components/schemas/ParallelJdbcOptions"}}},"ParallelJdbcOptions":{"nullable":true,"description":"Options for parallel JDBC partitioning. Choose a `mode`, which determines which\nfields are required: \n - `AUTO` – system selects column & partitions \n - `AUTO_COLUMN` – system selects column; you provide `partitionNumber`\n - `MANUAL` – you provide `partitionColumn` and `partitionNumber`","oneOf":[{"$ref":"#/components/schemas/ParallelJdbcOptionsAuto"},{"$ref":"#/components/schemas/ParallelJdbcOptionsAutoColumn"},{"$ref":"#/components/schemas/ParallelJdbcOptionsManual"}],"discriminator":{"propertyName":"mode","mapping":{"AUTO":"#/components/schemas/ParallelJdbcOptionsAuto","AUTO_COLUMN":"#/components/schemas/ParallelJdbcOptionsAutoColumn","MANUAL":"#/components/schemas/ParallelJdbcOptionsManual"}},"default":null},"ParallelJdbcOptionsAuto":{"type":"object","description":"Automatic column & partition selection.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO`."}},"required":["mode"],"additionalProperties":false},"ParallelJdbcOptionsAutoColumn":{"type":"object","description":"Automatic column selection; you specify the number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO_COLUMN`."},"partitionNumber":{"type":"integer","minimum":0,"description":"Number of partitions to use."}},"required":["mode","partitionNumber"],"additionalProperties":false},"ParallelJdbcOptionsManual":{"type":"object","description":"You specify both the partition column and number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `MANUAL`."},"partitionColumn":{"type":"string","description":"Numeric/integer column to partition on."},"partitionNumber":{"type":"integer","minimum":1,"description":"Number of partitions to use."}},"required":["mode","partitionColumn","partitionNumber"],"additionalProperties":false},"SparkJobSizingPatch":{"type":"object","nullable":true,"description":"Optional manual sizing for Spark resources.\n\nIf this object is **omitted or null**, the platform automatically selects\nSpark resources based on the source query.","properties":{"numExecutors":{"type":"integer","minimum":1,"description":"Number of executors to use (upper bound)."},"driverCores":{"type":"integer","minimum":1,"description":"Number of driver CPU cores."},"numExecutorCores":{"type":"integer","minimum":1,"description":"Number of CPU cores per executor."},"executorMemoryGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Maximum memory per executor in GB."}]},"driverMemoryGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Driver memory in GB."}]},"memoryOverheadGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Additional off-heap memory per executor in GB.","nullable":true}]}},"additionalProperties":false},"SparkMemoryGB":{"type":"integer","description":"Memory amount in gigabytes. The unit is in **GB**, fractional values are not supported\n"}}}}
```

## The LoadOptions object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"LoadOptions":{"type":"object","nullable":true,"description":"Data loading options applied when reading from the source\n","properties":{"numPartitions":{"type":"integer","minimum":0,"default":0,"description":"Number of Spark input partitions\n"},"parallelJdbcOptions":{"$ref":"#/components/schemas/ParallelJdbcOptions"}}},"ParallelJdbcOptions":{"nullable":true,"description":"Options for parallel JDBC partitioning. Choose a `mode`, which determines which\nfields are required: \n - `AUTO` – system selects column & partitions \n - `AUTO_COLUMN` – system selects column; you provide `partitionNumber`\n - `MANUAL` – you provide `partitionColumn` and `partitionNumber`","oneOf":[{"$ref":"#/components/schemas/ParallelJdbcOptionsAuto"},{"$ref":"#/components/schemas/ParallelJdbcOptionsAutoColumn"},{"$ref":"#/components/schemas/ParallelJdbcOptionsManual"}],"discriminator":{"propertyName":"mode","mapping":{"AUTO":"#/components/schemas/ParallelJdbcOptionsAuto","AUTO_COLUMN":"#/components/schemas/ParallelJdbcOptionsAutoColumn","MANUAL":"#/components/schemas/ParallelJdbcOptionsManual"}},"default":null},"ParallelJdbcOptionsAuto":{"type":"object","description":"Automatic column & partition selection.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO`."}},"required":["mode"],"additionalProperties":false},"ParallelJdbcOptionsAutoColumn":{"type":"object","description":"Automatic column selection; you specify the number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO_COLUMN`."},"partitionNumber":{"type":"integer","minimum":0,"description":"Number of partitions to use."}},"required":["mode","partitionNumber"],"additionalProperties":false},"ParallelJdbcOptionsManual":{"type":"object","description":"You specify both the partition column and number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `MANUAL`."},"partitionColumn":{"type":"string","description":"Numeric/integer column to partition on."},"partitionNumber":{"type":"integer","minimum":1,"description":"Number of partitions to use."}},"required":["mode","partitionColumn","partitionNumber"],"additionalProperties":false}}}}
```

## The LoadOptionsPatch object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"LoadOptionsPatch":{"type":"object","nullable":true,"description":"Data loading options applied when reading from the source\n","properties":{"numPartitions":{"type":"integer","nullable":true,"minimum":0,"description":"Number of Spark input partitions\n"},"parallelJdbcOptions":{"$ref":"#/components/schemas/ParallelJdbcOptions"}}},"ParallelJdbcOptions":{"nullable":true,"description":"Options for parallel JDBC partitioning. Choose a `mode`, which determines which\nfields are required: \n - `AUTO` – system selects column & partitions \n - `AUTO_COLUMN` – system selects column; you provide `partitionNumber`\n - `MANUAL` – you provide `partitionColumn` and `partitionNumber`","oneOf":[{"$ref":"#/components/schemas/ParallelJdbcOptionsAuto"},{"$ref":"#/components/schemas/ParallelJdbcOptionsAutoColumn"},{"$ref":"#/components/schemas/ParallelJdbcOptionsManual"}],"discriminator":{"propertyName":"mode","mapping":{"AUTO":"#/components/schemas/ParallelJdbcOptionsAuto","AUTO_COLUMN":"#/components/schemas/ParallelJdbcOptionsAutoColumn","MANUAL":"#/components/schemas/ParallelJdbcOptionsManual"}},"default":null},"ParallelJdbcOptionsAuto":{"type":"object","description":"Automatic column & partition selection.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO`."}},"required":["mode"],"additionalProperties":false},"ParallelJdbcOptionsAutoColumn":{"type":"object","description":"Automatic column selection; you specify the number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO_COLUMN`."},"partitionNumber":{"type":"integer","minimum":0,"description":"Number of partitions to use."}},"required":["mode","partitionNumber"],"additionalProperties":false},"ParallelJdbcOptionsManual":{"type":"object","description":"You specify both the partition column and number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `MANUAL`."},"partitionColumn":{"type":"string","description":"Numeric/integer column to partition on."},"partitionNumber":{"type":"integer","minimum":1,"description":"Number of partitions to use."}},"required":["mode","partitionColumn","partitionNumber"],"additionalProperties":false}}}}
```

## The ParallelJdbcOptions object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"ParallelJdbcOptions":{"nullable":true,"description":"Options for parallel JDBC partitioning. Choose a `mode`, which determines which\nfields are required: \n - `AUTO` – system selects column & partitions \n - `AUTO_COLUMN` – system selects column; you provide `partitionNumber`\n - `MANUAL` – you provide `partitionColumn` and `partitionNumber`","oneOf":[{"$ref":"#/components/schemas/ParallelJdbcOptionsAuto"},{"$ref":"#/components/schemas/ParallelJdbcOptionsAutoColumn"},{"$ref":"#/components/schemas/ParallelJdbcOptionsManual"}],"discriminator":{"propertyName":"mode","mapping":{"AUTO":"#/components/schemas/ParallelJdbcOptionsAuto","AUTO_COLUMN":"#/components/schemas/ParallelJdbcOptionsAutoColumn","MANUAL":"#/components/schemas/ParallelJdbcOptionsManual"}},"default":null},"ParallelJdbcOptionsAuto":{"type":"object","description":"Automatic column & partition selection.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO`."}},"required":["mode"],"additionalProperties":false},"ParallelJdbcOptionsAutoColumn":{"type":"object","description":"Automatic column selection; you specify the number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO_COLUMN`."},"partitionNumber":{"type":"integer","minimum":0,"description":"Number of partitions to use."}},"required":["mode","partitionNumber"],"additionalProperties":false},"ParallelJdbcOptionsManual":{"type":"object","description":"You specify both the partition column and number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `MANUAL`."},"partitionColumn":{"type":"string","description":"Numeric/integer column to partition on."},"partitionNumber":{"type":"integer","minimum":1,"description":"Number of partitions to use."}},"required":["mode","partitionColumn","partitionNumber"],"additionalProperties":false}}}}
```

## The SparkJobSizing object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"SparkJobSizing":{"type":"object","nullable":true,"description":"Optional manual sizing for Spark resources.\n\nIf this object is **omitted or null**, the platform automatically selects\nSpark resources based on the source query.","properties":{"numExecutors":{"type":"integer","minimum":1,"description":"Number of executors to use (upper bound).","default":1},"driverCores":{"type":"integer","minimum":1,"description":"Number of driver CPU cores.","default":1},"numExecutorCores":{"type":"integer","minimum":1,"description":"Number of CPU cores per executor.","default":1},"executorMemoryGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Maximum memory per executor in GB.","default":1}]},"driverMemoryGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Driver memory in GB.","default":1}]},"memoryOverheadGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Additional off-heap memory per executor in GB.","nullable":true,"default":null}]}},"additionalProperties":false},"SparkMemoryGB":{"type":"integer","description":"Memory amount in gigabytes. The unit is in **GB**, fractional values are not supported\n"}}}}
```

## The SparkJobSizingPatch object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"SparkJobSizingPatch":{"type":"object","nullable":true,"description":"Optional manual sizing for Spark resources.\n\nIf this object is **omitted or null**, the platform automatically selects\nSpark resources based on the source query.","properties":{"numExecutors":{"type":"integer","minimum":1,"description":"Number of executors to use (upper bound)."},"driverCores":{"type":"integer","minimum":1,"description":"Number of driver CPU cores."},"numExecutorCores":{"type":"integer","minimum":1,"description":"Number of CPU cores per executor."},"executorMemoryGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Maximum memory per executor in GB."}]},"driverMemoryGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Driver memory in GB."}]},"memoryOverheadGb":{"allOf":[{"$ref":"#/components/schemas/SparkMemoryGB"},{"description":"Additional off-heap memory per executor in GB.","nullable":true}]}},"additionalProperties":false},"SparkMemoryGB":{"type":"integer","description":"Memory amount in gigabytes. The unit is in **GB**, fractional values are not supported\n"}}}}
```

## The SparkMemoryGB object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"SparkMemoryGB":{"type":"integer","description":"Memory amount in gigabytes. The unit is in **GB**, fractional values are not supported\n"}}}}
```

## The ParallelJdbcOptionsAuto object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"ParallelJdbcOptionsAuto":{"type":"object","description":"Automatic column & partition selection.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO`."}},"required":["mode"],"additionalProperties":false}}}}
```

## The ParallelJdbcOptionsAutoColumn object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"ParallelJdbcOptionsAutoColumn":{"type":"object","description":"Automatic column selection; you specify the number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `AUTO_COLUMN`."},"partitionNumber":{"type":"integer","minimum":0,"description":"Number of partitions to use."}},"required":["mode","partitionNumber"],"additionalProperties":false}}}}
```

## The ParallelJdbcOptionsManual object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"ParallelJdbcOptionsManual":{"type":"object","description":"You specify both the partition column and number of partitions.","properties":{"mode":{"type":"string","description":"Partitioning mode.\n\nFor this schema, the value MUST be `MANUAL`."},"partitionColumn":{"type":"string","description":"Numeric/integer column to partition on."},"partitionNumber":{"type":"integer","minimum":1,"description":"Number of partitions to use."}},"required":["mode","partitionColumn","partitionNumber"],"additionalProperties":false}}}}
```

## The JobMonitoringSettings object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"JobMonitoringSettings":{"type":"object","description":"Monitoring configuration for the job, excluding custom rules. Currently, only adaptive rules are supported. This structure is designed for future extensibility to include additional monitor types.","properties":{"adaptiveMonitors":{"$ref":"#/components/schemas/AdaptiveMonitors"}}},"AdaptiveMonitors":{"type":"object","description":"Feature toggles for adaptive monitors computed during profiling. All data quality jobs always run profiling with data type detection and schema-change checks enabled.\n","properties":{"descriptiveStatistics":{"type":"boolean","default":false,"description":"Show descriptive statistics in profiling results (e.g., count, min, mean, max). Note: may expose sensitive values such as minimum/maximum. If disabled, all column values are masked in the profiling results.\n"},"emptyFields":{"type":"boolean","default":true,"description":"Detect changes in the number of empty values in numeric columns.\n"},"executionTime":{"type":"boolean","default":false,"description":"Track changes in total execution time of the data job.\n"},"max":{"type":"boolean","default":false,"description":"Detect changes in the highest value across numeric columns.\n"},"mean":{"type":"boolean","default":false,"description":"Detect changes in the average (mean) value across numeric columns.\n"},"min":{"type":"boolean","default":false,"description":"Detect changes in the lowest value across numeric columns.\n"},"nullValues":{"type":"boolean","default":true,"description":"Detect changes in the number of NULL values across all columns.\n"},"rowCount":{"type":"boolean","default":true,"description":"Track changes in the total number of rows.\n"},"uniqueness":{"type":"boolean","default":true,"description":"Track changes in the number of distinct values across all columns.\n"},"settings":{"$ref":"#/components/schemas/AdaptiveMonitorSettings"}}},"AdaptiveMonitorSettings":{"type":"object","description":"Optional learning/tuning parameters applied to the above monitors.\n","properties":{"dataLookBack":{"type":"integer","minimum":0,"default":10,"description":"Number of historical runs to consider when detecting changes (0 = no look back).\n"},"learningPhase":{"type":"integer","minimum":0,"default":4,"description":"Number of initial runs used to learn a baseline before signaling changes (0 = no learning phase).    \n"}}}}}}
```

## The JobMonitoringSettingsPatch object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"JobMonitoringSettingsPatch":{"type":"object","description":"Monitoring configuration for the job, excluding custom rules. Currently, only adaptive rules are supported. This structure is designed for future extensibility to include additional monitor types.","properties":{"adaptiveMonitors":{"$ref":"#/components/schemas/AdaptiveMonitorsPatch"}}},"AdaptiveMonitorsPatch":{"type":"object","description":"Feature toggles for adaptive monitors computed during profiling. All data quality jobs always run profiling with data type detection and schema-change checks enabled.\n","properties":{"descriptiveStatistics":{"type":"boolean","nullable":true,"description":"Show descriptive statistics in profiling results (e.g., count, min, mean, max). Note: may expose sensitive values such as minimum/maximum. If disabled, all column values are masked in the profiling results.\n"},"emptyFields":{"type":"boolean","nullable":true,"description":"Detect changes in the number of empty values in numeric columns.\n"},"executionTime":{"type":"boolean","nullable":true,"description":"Track changes in total execution time of the data job.\n"},"max":{"type":"boolean","nullable":true,"description":"Detect changes in the highest value across numeric columns.\n"},"mean":{"type":"boolean","nullable":true,"description":"Detect changes in the average (mean) value across numeric columns.\n"},"min":{"type":"boolean","nullable":true,"description":"Detect changes in the lowest value across numeric columns.\n"},"nullValues":{"type":"boolean","nullable":true,"description":"Detect changes in the number of NULL values across all columns.\n"},"rowCount":{"type":"boolean","nullable":true,"description":"Track changes in the total number of rows.\n"},"uniqueness":{"type":"boolean","nullable":true,"description":"Track changes in the number of distinct values across all columns.\n"},"settings":{"$ref":"#/components/schemas/AdaptiveMonitorSettingsPatch"}}},"AdaptiveMonitorSettingsPatch":{"type":"object","description":"Optional learning/tuning parameters applied to the above monitors.\n","properties":{"dataLookBack":{"type":"integer","nullable":true,"minimum":0,"description":"Number of historical runs to consider when detecting changes (0 = no look back).\n"},"learningPhase":{"type":"integer","minimum":0,"nullable":true,"description":"Number of initial runs used to learn a baseline before signaling changes (0 = no learning phase).          \n"}}}}}}
```

## The AdaptiveMonitors object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"AdaptiveMonitors":{"type":"object","description":"Feature toggles for adaptive monitors computed during profiling. All data quality jobs always run profiling with data type detection and schema-change checks enabled.\n","properties":{"descriptiveStatistics":{"type":"boolean","default":false,"description":"Show descriptive statistics in profiling results (e.g., count, min, mean, max). Note: may expose sensitive values such as minimum/maximum. If disabled, all column values are masked in the profiling results.\n"},"emptyFields":{"type":"boolean","default":true,"description":"Detect changes in the number of empty values in numeric columns.\n"},"executionTime":{"type":"boolean","default":false,"description":"Track changes in total execution time of the data job.\n"},"max":{"type":"boolean","default":false,"description":"Detect changes in the highest value across numeric columns.\n"},"mean":{"type":"boolean","default":false,"description":"Detect changes in the average (mean) value across numeric columns.\n"},"min":{"type":"boolean","default":false,"description":"Detect changes in the lowest value across numeric columns.\n"},"nullValues":{"type":"boolean","default":true,"description":"Detect changes in the number of NULL values across all columns.\n"},"rowCount":{"type":"boolean","default":true,"description":"Track changes in the total number of rows.\n"},"uniqueness":{"type":"boolean","default":true,"description":"Track changes in the number of distinct values across all columns.\n"},"settings":{"$ref":"#/components/schemas/AdaptiveMonitorSettings"}}},"AdaptiveMonitorSettings":{"type":"object","description":"Optional learning/tuning parameters applied to the above monitors.\n","properties":{"dataLookBack":{"type":"integer","minimum":0,"default":10,"description":"Number of historical runs to consider when detecting changes (0 = no look back).\n"},"learningPhase":{"type":"integer","minimum":0,"default":4,"description":"Number of initial runs used to learn a baseline before signaling changes (0 = no learning phase).    \n"}}}}}}
```

## The AdaptiveMonitorsPatch object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"AdaptiveMonitorsPatch":{"type":"object","description":"Feature toggles for adaptive monitors computed during profiling. All data quality jobs always run profiling with data type detection and schema-change checks enabled.\n","properties":{"descriptiveStatistics":{"type":"boolean","nullable":true,"description":"Show descriptive statistics in profiling results (e.g., count, min, mean, max). Note: may expose sensitive values such as minimum/maximum. If disabled, all column values are masked in the profiling results.\n"},"emptyFields":{"type":"boolean","nullable":true,"description":"Detect changes in the number of empty values in numeric columns.\n"},"executionTime":{"type":"boolean","nullable":true,"description":"Track changes in total execution time of the data job.\n"},"max":{"type":"boolean","nullable":true,"description":"Detect changes in the highest value across numeric columns.\n"},"mean":{"type":"boolean","nullable":true,"description":"Detect changes in the average (mean) value across numeric columns.\n"},"min":{"type":"boolean","nullable":true,"description":"Detect changes in the lowest value across numeric columns.\n"},"nullValues":{"type":"boolean","nullable":true,"description":"Detect changes in the number of NULL values across all columns.\n"},"rowCount":{"type":"boolean","nullable":true,"description":"Track changes in the total number of rows.\n"},"uniqueness":{"type":"boolean","nullable":true,"description":"Track changes in the number of distinct values across all columns.\n"},"settings":{"$ref":"#/components/schemas/AdaptiveMonitorSettingsPatch"}}},"AdaptiveMonitorSettingsPatch":{"type":"object","description":"Optional learning/tuning parameters applied to the above monitors.\n","properties":{"dataLookBack":{"type":"integer","nullable":true,"minimum":0,"description":"Number of historical runs to consider when detecting changes (0 = no look back).\n"},"learningPhase":{"type":"integer","minimum":0,"nullable":true,"description":"Number of initial runs used to learn a baseline before signaling changes (0 = no learning phase).          \n"}}}}}}
```

## The AdaptiveMonitorSettings object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"AdaptiveMonitorSettings":{"type":"object","description":"Optional learning/tuning parameters applied to the above monitors.\n","properties":{"dataLookBack":{"type":"integer","minimum":0,"default":10,"description":"Number of historical runs to consider when detecting changes (0 = no look back).\n"},"learningPhase":{"type":"integer","minimum":0,"default":4,"description":"Number of initial runs used to learn a baseline before signaling changes (0 = no learning phase).    \n"}}}}}}
```

## The AdaptiveMonitorSettingsPatch object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"AdaptiveMonitorSettingsPatch":{"type":"object","description":"Optional learning/tuning parameters applied to the above monitors.\n","properties":{"dataLookBack":{"type":"integer","nullable":true,"minimum":0,"description":"Number of historical runs to consider when detecting changes (0 = no look back).\n"},"learningPhase":{"type":"integer","minimum":0,"nullable":true,"description":"Number of initial runs used to learn a baseline before signaling changes (0 = no learning phase).          \n"}}}}}}
```

## The JobNotifications object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"JobNotifications":{"type":"object","description":"Controls which events trigger a notification, which channels deliver them, and what message is sent. This schema is **channel-extensible**: it starts with EMAIL and will be updated in future versions to support additional channels (e.g., Slack) without breaking existing clients.\n","properties":{"notificationOptions":{"type":"array","description":"Per-event settings. Add one item per event to monitor.","items":{"$ref":"#/components/schemas/NotificationOption"}},"globalMessage":{"type":"string","description":"Default message template when `useIndividualMessages` is false."},"useIndividualMessages":{"type":"boolean","description":"If true, use each option's `message`; otherwise use `globalMessage`."},"channels":{"type":"array","minItems":1,"description":"Delivery channels and their destinations","items":{"$ref":"#/components/schemas/NotificationChannel"}}},"required":["notificationOptions","channels"]},"NotificationOption":{"type":"object","description":"Configuration for a single notification event.\n","required":["notificationType","enabled"],"properties":{"notificationType":{"$ref":"#/components/schemas/NotificationType"},"enabled":{"type":"boolean","description":"Whether this notification is active."},"message":{"type":"string","description":"Custom message for this notification. Used when `useIndividualMessages` is `true`. If omitted or blank, the service falls back to `globalMessage`, if that is also blank, a system default template is used.\n"},"quantity":{"type":"integer","minimum":0,"nullable":true,"description":"Threshold used **only** for specific types:  \n  - `ROWS_LESS_THAN_LIMIT` – minimum expected row count.  \n  - `RUNS_WITHOUT_DATA` – number of consecutive empty runs (N).  \n  - `DAYS_WITHOUT_DATA` – number of days with no data (N).  \n  - `SCORE_LESS_THAN_LIMIT` – minimum acceptable score.  \n  - `RUN_TIME_MORE_THEN_LIMIT` – maximum allowed runtime in minutes.  \nIgnored for other types."}}},"NotificationType":{"type":"string","description":"The event that triggers this notification.\n\nCurrent possible values include:\n  * `JOB_FAILED`            – sent when a job run fails.\n  * `JOB_COMPLETED`         – sent when a job run finishes successfully.\n  * `ROWS_LESS_THAN_LIMIT`  – sent when produced row count is below a limit.\n  * `RUNS_WITHOUT_DATA`     – sent after N consecutive runs produced no data.\n  * `DAYS_WITHOUT_DATA`     – sent when no data was produced for N days.\n  * `SCORE_LESS_THAN_LIMIT` – sent when quality score is below a limit.\n  * `RUN_TIME_MORE_THEN_LIMIT` – sent when runtime exceeds a limit (in minutes).\n\nAdditional notification types may be introduced in the future."},"NotificationChannel":{"type":"object","description":"Notification delivery channel and its destination/parameters.\n\nCurrent supported channel type:\n  * `EMAIL` – send notifications via email to the given recipients.\n\nAdditional channel types (e.g., `SLACK`) may be introduced in the future.","properties":{"channel":{"type":"string","description":"Delivery channel type.\n\nCurrent value:\n  * `EMAIL`\n\nAdditional values MAY be added in future versions."},"recipients":{"type":"array","minItems":1,"description":"Platform usernames to receive email notifications when `channel = EMAIL`\n(e.g., `jsmith`, `adoe`).","items":{"type":"string"}}},"additionalProperties":true}}}}
```

## The NotificationChannel object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"NotificationChannel":{"type":"object","description":"Notification delivery channel and its destination/parameters.\n\nCurrent supported channel type:\n  * `EMAIL` – send notifications via email to the given recipients.\n\nAdditional channel types (e.g., `SLACK`) may be introduced in the future.","properties":{"channel":{"type":"string","description":"Delivery channel type.\n\nCurrent value:\n  * `EMAIL`\n\nAdditional values MAY be added in future versions."},"recipients":{"type":"array","minItems":1,"description":"Platform usernames to receive email notifications when `channel = EMAIL`\n(e.g., `jsmith`, `adoe`).","items":{"type":"string"}}},"additionalProperties":true}}}}
```

## The NotificationOption object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"NotificationOption":{"type":"object","description":"Configuration for a single notification event.\n","required":["notificationType","enabled"],"properties":{"notificationType":{"$ref":"#/components/schemas/NotificationType"},"enabled":{"type":"boolean","description":"Whether this notification is active."},"message":{"type":"string","description":"Custom message for this notification. Used when `useIndividualMessages` is `true`. If omitted or blank, the service falls back to `globalMessage`, if that is also blank, a system default template is used.\n"},"quantity":{"type":"integer","minimum":0,"nullable":true,"description":"Threshold used **only** for specific types:  \n  - `ROWS_LESS_THAN_LIMIT` – minimum expected row count.  \n  - `RUNS_WITHOUT_DATA` – number of consecutive empty runs (N).  \n  - `DAYS_WITHOUT_DATA` – number of days with no data (N).  \n  - `SCORE_LESS_THAN_LIMIT` – minimum acceptable score.  \n  - `RUN_TIME_MORE_THEN_LIMIT` – maximum allowed runtime in minutes.  \nIgnored for other types."}}},"NotificationType":{"type":"string","description":"The event that triggers this notification.\n\nCurrent possible values include:\n  * `JOB_FAILED`            – sent when a job run fails.\n  * `JOB_COMPLETED`         – sent when a job run finishes successfully.\n  * `ROWS_LESS_THAN_LIMIT`  – sent when produced row count is below a limit.\n  * `RUNS_WITHOUT_DATA`     – sent after N consecutive runs produced no data.\n  * `DAYS_WITHOUT_DATA`     – sent when no data was produced for N days.\n  * `SCORE_LESS_THAN_LIMIT` – sent when quality score is below a limit.\n  * `RUN_TIME_MORE_THEN_LIMIT` – sent when runtime exceeds a limit (in minutes).\n\nAdditional notification types may be introduced in the future."}}}}
```

## The NotificationType object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"NotificationType":{"type":"string","description":"The event that triggers this notification.\n\nCurrent possible values include:\n  * `JOB_FAILED`            – sent when a job run fails.\n  * `JOB_COMPLETED`         – sent when a job run finishes successfully.\n  * `ROWS_LESS_THAN_LIMIT`  – sent when produced row count is below a limit.\n  * `RUNS_WITHOUT_DATA`     – sent after N consecutive runs produced no data.\n  * `DAYS_WITHOUT_DATA`     – sent when no data was produced for N days.\n  * `SCORE_LESS_THAN_LIMIT` – sent when quality score is below a limit.\n  * `RUN_TIME_MORE_THEN_LIMIT` – sent when runtime exceeds a limit (in minutes).\n\nAdditional notification types may be introduced in the future."}}}}
```

## The SchedulingSettings object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"SchedulingSettings":{"nullable":true,"description":"Controls when a scheduled job runs and how `runDate` is adjusted. Exactly **one** schedule mode is allowed. **Optional** If omitted or null, the job will not be scheduled.\n","oneOf":[{"$ref":"#/components/schemas/SchedulingHourly"},{"$ref":"#/components/schemas/SchedulingDaily"},{"$ref":"#/components/schemas/SchedulingMonthly"}],"discriminator":{"propertyName":"schedulerMode","mapping":{"HOURLY":"#/components/schemas/SchedulingHourly","DAILY":"#/components/schemas/SchedulingDaily","MONTHLY":"#/components/schemas/SchedulingMonthly"}}},"SchedulingHourly":{"allOf":[{"$ref":"#/components/schemas/SchedulingBase"},{"type":"object","required":["hourly","schedulerMode"],"description":"Hourly schedule configuration. If scheduleRunTime is set \"14:30:00\", the job runs at 14:30, 15:30, 16:30, etc.","properties":{"schedulerMode":{"type":"string","description":"Schedule type.\n\nFor this schema, the value MUST be `HOURLY`."},"hourly":{"type":"object","description":"Hourly schedule rules.","required":["hourlyOffset"],"properties":{"hourlyOffset":{"type":"string","description":"Run-date offset in hours relative to the scheduled time.\n\nCurrent possible values include:\n  * `SCHEDULED` – use the scheduled date/time.\n  * `ONE_HOUR` – run date is 1 hour before the scheduled time.\n  * `TWO_HOURS` – run date is 2 hours before the scheduled time.\n\nAdditional values MAY be added in future versions."}}}}}]},"SchedulingBase":{"type":"object","required":["isActive","scheduledRunTime","schedulerMode"],"properties":{"isActive":{"type":"boolean","description":"Enable/disable the schedule (disabled schedules do not trigger runs)."},"scheduledRunTime":{"type":"string","description":"Time of day in **UTC**, format `HH:mm:ss`.  (24 hours) Example: `14:10:00` means the job starts at 14:10:00 UTC.\n"},"schedulerMode":{"type":"string","description":"Schedule type.\n\nCurrent possible values:\n  * `HOURLY`\n  * `DAILY`\n  * `MONTHLY`\n\nAdditional modes MAY be added in future versions."}}},"SchedulingDaily":{"allOf":[{"$ref":"#/components/schemas/SchedulingBase"},{"type":"object","required":["daily","schedulerMode"],"properties":{"schedulerMode":{"type":"string","description":"Schedule type.\n\nFor this schema, the value MUST be `DAILY`."},"daily":{"type":"object","description":"Daily schedule rules.","required":["dailyOffset","daysOfWeek"],"properties":{"dailyOffset":{"type":"string","description":"Run-date offset in days relative to the scheduled day.\n\nCurrent possible values include:\n  * `SCHEDULED`\n  * `ONE_DAY`\n  * `TWO_DAYS`\n  * `THREE_DAYS`\n  * `FOUR_DAYS`\n  * `FIVE_DAYS`\n  * `SIX_DAYS`\n  * `SEVEN_DAYS`\n\nAdditional values MAY be added in future versions."},"daysOfWeek":{"type":"array","minItems":1,"items":{"type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"description":"Days of week to run."}}}}}]},"SchedulingMonthly":{"allOf":[{"$ref":"#/components/schemas/SchedulingBase"},{"type":"object","required":["monthly","schedulerMode"],"properties":{"schedulerMode":{"type":"string","description":"Schedule type.\n\nFor this schema, the value MUST be `MONTHLY`."},"monthly":{"type":"object","description":"Monthly schedule rules.","required":["monthlyRepeat","monthlyOffset"],"properties":{"monthlyRepeat":{"type":"string","description":"Which day of the month to run the job on.\n\nCurrent possible values:\n  * `FIRST` – first day of the month\n  * `LAST`  – last day of the month\n  * `DAY`   – specific calendar day (requires `dayNumber` in 1–31 range)\n\nAdditional values MAY be added in future versions."},"monthlyOffset":{"type":"string","description":"Run-date offset applied to the scheduled monthly day.\n\nCurrent possible values include:\n  * `SCHEDULED`              - use the scheduled date\n  * `FIRST_OF_CURRENT_MONTH` - first day of the current month\n  * `LAST_OF_CURRENT_MONTH`  - last day of the current month\n  * `FIRST_OF_PRIOR_MONTH`   - first day of the prior month\n  * `LAST_OF_PRIOR_MONTH`    - last day of the prior month\n\nAdditional values may be added in future versions."},"dayNumber":{"type":"integer","minimum":1,"maximum":31,"nullable":true,"description":"Required when `monthlyRepeat = DAY`."}}}}}]}}}}
```

## The SchedulingBase object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"SchedulingBase":{"type":"object","required":["isActive","scheduledRunTime","schedulerMode"],"properties":{"isActive":{"type":"boolean","description":"Enable/disable the schedule (disabled schedules do not trigger runs)."},"scheduledRunTime":{"type":"string","description":"Time of day in **UTC**, format `HH:mm:ss`.  (24 hours) Example: `14:10:00` means the job starts at 14:10:00 UTC.\n"},"schedulerMode":{"type":"string","description":"Schedule type.\n\nCurrent possible values:\n  * `HOURLY`\n  * `DAILY`\n  * `MONTHLY`\n\nAdditional modes MAY be added in future versions."}}}}}}
```

## The SchedulingHourly object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"SchedulingHourly":{"allOf":[{"$ref":"#/components/schemas/SchedulingBase"},{"type":"object","required":["hourly","schedulerMode"],"description":"Hourly schedule configuration. If scheduleRunTime is set \"14:30:00\", the job runs at 14:30, 15:30, 16:30, etc.","properties":{"schedulerMode":{"type":"string","description":"Schedule type.\n\nFor this schema, the value MUST be `HOURLY`."},"hourly":{"type":"object","description":"Hourly schedule rules.","required":["hourlyOffset"],"properties":{"hourlyOffset":{"type":"string","description":"Run-date offset in hours relative to the scheduled time.\n\nCurrent possible values include:\n  * `SCHEDULED` – use the scheduled date/time.\n  * `ONE_HOUR` – run date is 1 hour before the scheduled time.\n  * `TWO_HOURS` – run date is 2 hours before the scheduled time.\n\nAdditional values MAY be added in future versions."}}}}}]},"SchedulingBase":{"type":"object","required":["isActive","scheduledRunTime","schedulerMode"],"properties":{"isActive":{"type":"boolean","description":"Enable/disable the schedule (disabled schedules do not trigger runs)."},"scheduledRunTime":{"type":"string","description":"Time of day in **UTC**, format `HH:mm:ss`.  (24 hours) Example: `14:10:00` means the job starts at 14:10:00 UTC.\n"},"schedulerMode":{"type":"string","description":"Schedule type.\n\nCurrent possible values:\n  * `HOURLY`\n  * `DAILY`\n  * `MONTHLY`\n\nAdditional modes MAY be added in future versions."}}}}}}
```

## The SchedulingDaily object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"SchedulingDaily":{"allOf":[{"$ref":"#/components/schemas/SchedulingBase"},{"type":"object","required":["daily","schedulerMode"],"properties":{"schedulerMode":{"type":"string","description":"Schedule type.\n\nFor this schema, the value MUST be `DAILY`."},"daily":{"type":"object","description":"Daily schedule rules.","required":["dailyOffset","daysOfWeek"],"properties":{"dailyOffset":{"type":"string","description":"Run-date offset in days relative to the scheduled day.\n\nCurrent possible values include:\n  * `SCHEDULED`\n  * `ONE_DAY`\n  * `TWO_DAYS`\n  * `THREE_DAYS`\n  * `FOUR_DAYS`\n  * `FIVE_DAYS`\n  * `SIX_DAYS`\n  * `SEVEN_DAYS`\n\nAdditional values MAY be added in future versions."},"daysOfWeek":{"type":"array","minItems":1,"items":{"type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"description":"Days of week to run."}}}}}]},"SchedulingBase":{"type":"object","required":["isActive","scheduledRunTime","schedulerMode"],"properties":{"isActive":{"type":"boolean","description":"Enable/disable the schedule (disabled schedules do not trigger runs)."},"scheduledRunTime":{"type":"string","description":"Time of day in **UTC**, format `HH:mm:ss`.  (24 hours) Example: `14:10:00` means the job starts at 14:10:00 UTC.\n"},"schedulerMode":{"type":"string","description":"Schedule type.\n\nCurrent possible values:\n  * `HOURLY`\n  * `DAILY`\n  * `MONTHLY`\n\nAdditional modes MAY be added in future versions."}}}}}}
```

## The SchedulingMonthly object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"SchedulingMonthly":{"allOf":[{"$ref":"#/components/schemas/SchedulingBase"},{"type":"object","required":["monthly","schedulerMode"],"properties":{"schedulerMode":{"type":"string","description":"Schedule type.\n\nFor this schema, the value MUST be `MONTHLY`."},"monthly":{"type":"object","description":"Monthly schedule rules.","required":["monthlyRepeat","monthlyOffset"],"properties":{"monthlyRepeat":{"type":"string","description":"Which day of the month to run the job on.\n\nCurrent possible values:\n  * `FIRST` – first day of the month\n  * `LAST`  – last day of the month\n  * `DAY`   – specific calendar day (requires `dayNumber` in 1–31 range)\n\nAdditional values MAY be added in future versions."},"monthlyOffset":{"type":"string","description":"Run-date offset applied to the scheduled monthly day.\n\nCurrent possible values include:\n  * `SCHEDULED`              - use the scheduled date\n  * `FIRST_OF_CURRENT_MONTH` - first day of the current month\n  * `LAST_OF_CURRENT_MONTH`  - last day of the current month\n  * `FIRST_OF_PRIOR_MONTH`   - first day of the prior month\n  * `LAST_OF_PRIOR_MONTH`    - last day of the prior month\n\nAdditional values may be added in future versions."},"dayNumber":{"type":"integer","minimum":1,"maximum":31,"nullable":true,"description":"Required when `monthlyRepeat = DAY`."}}}}}]},"SchedulingBase":{"type":"object","required":["isActive","scheduledRunTime","schedulerMode"],"properties":{"isActive":{"type":"boolean","description":"Enable/disable the schedule (disabled schedules do not trigger runs)."},"scheduledRunTime":{"type":"string","description":"Time of day in **UTC**, format `HH:mm:ss`.  (24 hours) Example: `14:10:00` means the job starts at 14:10:00 UTC.\n"},"schedulerMode":{"type":"string","description":"Schedule type.\n\nCurrent possible values:\n  * `HOURLY`\n  * `DAILY`\n  * `MONTHLY`\n\nAdditional modes MAY be added in future versions."}}}}}}
```

## The DateOnly object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"DateOnly":{"type":"object","required":["kind","value"],"description":"Calendar date, format yyyy-MM-dd.","properties":{"kind":{"type":"string","pattern":"^DATE$"},"value":{"type":"string","format":"date"}}}}}}
```

## The DateFormat object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"DateFormat":{"type":"string","default":"DATE","description":"Date format used for `runDate` / `runDateEnd`.\nSupported values:\n  - DATE -> yyyy-MM-dd \n  - TIMESTAMP -> RFC 3339 timestamp, example - 2025-10-23T13:50:02Z","enum":["DATE","TIMESTAMP"]}}}}
```

## The DateFormatPatch object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"DateFormatPatch":{"type":"string","nullable":true,"description":"Date format used for `runDate` / `runDateEnd`.\nSupported values:\n  - DATE -> yyyy-MM-dd \n  - TIMESTAMP -> RFC 3339 timestamp, example - 2025-10-23T13:50:02Z","enum":["DATE","TIMESTAMP"]}}}}
```

## The Rfc3339DateTime object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"Rfc3339DateTime":{"type":"object","required":["kind","value"],"format":"date-time","description":"RFC 3339 timestamp with timezone offset. The server normalizes all inputs to UTC and responses are returned in UTC (trailing 'Z'), seconds precision.","properties":{"kind":{"type":"string","pattern":"^TIMESTAMP$"},"value":{"type":"string","format":"date-time"}}}}}}
```

## The RunDateValue object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"RunDateValue":{"description":"Start of the time slice used only when the `sourceQuery` contains the `${rd}` placeholder.\nThe engine substitutes `${rd}` using `jobSettings.dateFormat`:\n  - DATE → `yyyy-MM-dd`\n  - TIMESTAMP → RFC 3339 `yyyy-MM-dd'T'HH:mm:ss'Z'` \n\nIf `sourceQuery` omits `${rd}`, this value does **not** restrict the data scan and\nonly affects the **run’s date** (e.g., run metadata/labeling, scheduling context).","oneOf":[{"$ref":"#/components/schemas/DateOnly"},{"$ref":"#/components/schemas/Rfc3339DateTime"}],"discriminator":{"propertyName":"kind","mapping":{"DATE":"#/components/schemas/DateOnly","TIMESTAMP":"#/components/schemas/Rfc3339DateTime"}}},"DateOnly":{"type":"object","required":["kind","value"],"description":"Calendar date, format yyyy-MM-dd.","properties":{"kind":{"type":"string","pattern":"^DATE$"},"value":{"type":"string","format":"date"}}},"Rfc3339DateTime":{"type":"object","required":["kind","value"],"format":"date-time","description":"RFC 3339 timestamp with timezone offset. The server normalizes all inputs to UTC and responses are returned in UTC (trailing 'Z'), seconds precision.","properties":{"kind":{"type":"string","pattern":"^TIMESTAMP$"},"value":{"type":"string","format":"date-time"}}}}}}
```

## The RunDateEndValue object

```json
{"openapi":"3.0.3","info":{"title":"Data Quality Collibra API","version":"1.0.0"},"components":{"schemas":{"RunDateEndValue":{"nullable":true,"oneOf":[{"$ref":"#/components/schemas/DateOnly"},{"$ref":"#/components/schemas/Rfc3339DateTime"}],"discriminator":{"propertyName":"kind","mapping":{"DATE":"#/components/schemas/DateOnly","TIMESTAMP":"#/components/schemas/Rfc3339DateTime"}},"description":"**Exclusive end** of the time slice, used only when the `sourceQuery` contains the `${rdEnd}` placeholder.\nMust be **greater than** `runDate` when both are provided. Formatted per `jobSettings.dateFormat`:\n  - DATE → `yyyy-MM-dd`\n  - TIMESTAMP → RFC 3339 `yyyy-MM-dd'T'HH:mm:ss'Z'` \n\nIf `sourceQuery` omits `${rdEnd}`, this value does **not** restrict the data scan and is ignored for run timing."},"DateOnly":{"type":"object","required":["kind","value"],"description":"Calendar date, format yyyy-MM-dd.","properties":{"kind":{"type":"string","pattern":"^DATE$"},"value":{"type":"string","format":"date"}}},"Rfc3339DateTime":{"type":"object","required":["kind","value"],"format":"date-time","description":"RFC 3339 timestamp with timezone offset. The server normalizes all inputs to UTC and responses are returned in UTC (trailing 'Z'), seconds precision.","properties":{"kind":{"type":"string","pattern":"^TIMESTAMP$"},"value":{"type":"string","format":"date-time"}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.collibra.com/api/references/data-quality/models.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
