enrichment_jobs
Creates, updates, deletes, gets or lists an enrichment_jobs resource.
Overview
| Name | enrichment_jobs |
| Type | Resource |
| Id | aws.iotsitewise.enrichment_jobs |
Fields
The following fields are returned by SELECT queries:
- describe_enrichment_job
- list_enrichment_jobs
| Name | Datatype | Description |
|---|---|---|
cancelled_at | string (date-time) | Timestamp when the job was cancelled in ISO 8601 format. Only present if status is CANCELLED. |
completed_at | string (date-time) | Timestamp when the job completed successfully in ISO 8601 format. Only present if status is COMPLETED. |
created_at | string (date-time) | Timestamp when the enrichment job was created in ISO 8601 format. |
failure_message | string | Human-readable error message explaining why the job failed. Only present if status is FAILED. Use this information to diagnose configuration issues, permission problems, or data processing errors. |
job_configuration | object | Configuration for the enrichment job defining which analysis type to perform on video time-series data. Currently supports event detection enrichment. Exactly one member must be specified. |
job_id | string | The unique identifier of the enrichment job. (pattern: <code>^(?!00000000-0000-0000-0000-000000000000)[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$</code>) |
job_type | string | <p>The type of enrichment job, derived from the job configuration union member</p> (EVENT_DETECTION) |
status | string | <p>Status of an enrichment job throughout its lifecycle.</p> <p>Status progression: PENDING → RUNNING → {COMPLETED, FAILED, TIMED_OUT, CANCELLED}</p> <ul> <li>PENDING: Job has been accepted and is waiting to start processing</li> <li>RUNNING: Job is actively processing video data to generate embeddings</li> <li>COMPLETED: Job finished successfully; embeddings are available in IoT SiteWise</li> <li>FAILED: Job encountered an error during processing</li> <li>TIMED_OUT: Job exceeded the maximum processing time limit</li> <li>CANCELLED: Job was cancelled via CancelEnrichmentJob</li> </ul> <p>Terminal states (job will not change status): COMPLETED, FAILED, TIMED_OUT, CANCELLED</p> (PENDING, RUNNING, COMPLETED, FAILED, TIMED_OUT, CANCELLED) |
updated_at | string (date-time) | Timestamp when the job status was last updated in ISO 8601 format. Useful for tracking recent activity. |
workspace_name | string | The name of the IoT SiteWise workspace containing the job. (pattern: <code>^[a-zA-Z0-9_-]+$</code>) |
| Name | Datatype | Description |
|---|---|---|
created_at | string (date-time) | Timestamp when the job was created in ISO 8601 format. |
dataset_id | string | The dataset being enriched. Useful for filtering and identifying jobs without fetching the full configuration. This allows you to quickly find all jobs related to a specific dataset. (pattern: <code>^(?!00000000-0000-0000-0000-000000000000)[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$</code>) |
job_id | string | Unique identifier for the enrichment job. (pattern: <code>^(?!00000000-0000-0000-0000-000000000000)[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$</code>) |
job_type | string | <p>The type of enrichment job, derived from the job configuration union member</p> (EVENT_DETECTION) |
property_alias | string | The property alias (human-readable sensor name) of the time series being enriched. Present when the job was created using a propertyAlias. Use this to identify which sensor the job analyzes. (pattern: <code>[^\u0000-\u001F\u007F]+</code>) |
status | string | <p>Status of an enrichment job throughout its lifecycle.</p> <p>Status progression: PENDING → RUNNING → {COMPLETED, FAILED, TIMED_OUT, CANCELLED}</p> <ul> <li>PENDING: Job has been accepted and is waiting to start processing</li> <li>RUNNING: Job is actively processing video data to generate embeddings</li> <li>COMPLETED: Job finished successfully; embeddings are available in IoT SiteWise</li> <li>FAILED: Job encountered an error during processing</li> <li>TIMED_OUT: Job exceeded the maximum processing time limit</li> <li>CANCELLED: Job was cancelled via CancelEnrichmentJob</li> </ul> <p>Terminal states (job will not change status): COMPLETED, FAILED, TIMED_OUT, CANCELLED</p> (PENDING, RUNNING, COMPLETED, FAILED, TIMED_OUT, CANCELLED) |
time_series_id | string | The system identifier of the time series being enriched. Present when the job was created using a timeSeriesId. Use this to identify which time series the job analyzes. |
updated_at | string (date-time) | Timestamp of the last job status change in ISO 8601 format. Use this to track recent activity and identify stale jobs. For active jobs, this shows the last time the job transitioned to a new status. |
workspace_name | string | The name of the IoT SiteWise workspace containing this job. (pattern: <code>^[a-zA-Z0-9_-]+$</code>) |
Methods
The following methods are available for this resource:
| Name | Accessible by | Required Params | Optional Params | Description |
|---|---|---|---|---|
describe_enrichment_job | select | workspace_name, job_id, region | Retrieves detailed information about a specific enrichment job, including its current status, configuration, and timestamps. Use Cases Monitor job progress by checking status updates with DescribeEnrichmentJob Retrieve the complete job configuration submitted during creation Debug failed jobs by examining the failureMessage field Track job lifecycle with creation, update, completion, and cancellation timestamps Status Monitoring Jobs progress through statuses: PENDING → RUNNING → terminal state Terminal states: COMPLETED: Job finished successfully; query IoT SiteWise for semantic search results FAILED: Job encountered an error; check failureMessage for details TIMED_OUT: Job exceeded maximum processing time CANCELLED: Job was cancelled via CancelEnrichmentJob Response Fields The response includes: Current job status and type Full job configuration as originally submitted Lifecycle timestamps (created, updated, completed, cancelled) Failure details if status is FAILED | |
list_enrichment_jobs | select | workspace_name, region | datasetId, propertyAlias, timeSeriesId, status, jobType, startDate, endDate, maxResults, nextToken | Lists enrichment jobs within a workspace with optional filtering and pagination. Results are ordered by createdAt timestamp descending (newest first). Filtering Combine filters to narrow results: datasetId: Filter by dataset propertyAlias OR timeSeriesId: Filter by time series (specify one, not both) status: Filter by job status (e.g., RUNNING to find active jobs) jobType: Filter by enrichment type (currently only EVENT_DETECTION) startDate and endDate: Filter by job creation time range Important Constraints You must specify either propertyAlias OR timeSeriesId, but not both Attempting to specify both results in an InvalidRequestException Date filters use ISO 8601 format startDate is exclusive, endDate is inclusive Pagination The operation returns up to maxResults jobs per page (default 50). If more results exist, the response includes a nextToken. Submit this token in a subsequent request to retrieve the next page. Common Use Cases Find all running jobs: Filter by status=RUNNING List recent jobs for a dataset: Filter by datasetId with optional date range Monitor jobs for a specific sensor: Filter by propertyAlias or timeSeriesId Track all event detection jobs: Filter by jobType=EVENT_DETECTION Performance Performance is optimal when filtering by supported fields (datasetId, propertyAlias, timeSeriesId, status, jobType). |
create_enrichment_job | insert | workspace_name, region, jobConfiguration | Creates an asynchronous enrichment job to analyze time-series sensor data. The operation returns immediately with job details while processing continues in the background. Idempotency Include a clientToken to make the operation idempotent. If you submit the same request with the same token within the idempotency window, you receive the original job details without creating a duplicate. Prerequisites Before creating a job, ensure: The workspace is in ACTIVE state (not being deleted) You have IAM permissions for the workspace, dataset, and time-series resources You have KMS Decrypt permission on the workspace's customer-managed encryption key No duplicate job (same workspace, dataset, property, and job type) is currently running Workflow Submit the job with configuration specifying which video data to analyze and the time range Capture the jobId from the response Use DescribeEnrichmentJob to monitor progress and check job status When status reaches a terminal state (COMPLETED, FAILED, TIMED_OUT, CANCELLED), check results For COMPLETED jobs, query IoT SiteWise for semantic search on video events Error Handling ConflictingOperationException: A duplicate job is already running for the same configuration InvalidRequestException: Invalid parameters (e.g., both timeSeriesId and propertyAlias specified) AccessDeniedException: Insufficient IAM or KMS permissions LimitExceededException: Too many concurrent jobs or requests |
Parameters
Parameters can be passed in the WHERE clause of a query. Check the Methods section to see which parameters are required or optional for each operation.
| Name | Datatype | Description |
|---|---|---|
job_id | string | The unique identifier of the enrichment job to retrieve. This is the jobId returned by CreateEnrichmentJob. |
region | string | AWS region (default: us-east-1) |
workspace_name | string | The name of the IoT SiteWise workspace containing the video data to analyze. |
datasetId | string | Filter jobs by dataset ID. Returns only jobs analyzing data from the specified dataset. |
endDate | string (date-time) | The inclusive end of the date range for filtering jobs by creation time. Jobs created on or before this timestamp are included. Use ISO 8601 format (e.g., 2024-01-31T23:59:59Z). |
jobType | string | Filter by enrichment job type. Currently only EVENT_DETECTION is supported. Use this filter to future-proof queries when additional job types are added. |
maxResults | integer | Maximum number of jobs to return per page. Defaults to 50 if not specified. Use smaller values for faster responses, larger values to reduce API calls. |
nextToken | string | Pagination token from a previous ListEnrichmentJobs response. Include this token to retrieve the next page of results. Omit for the first request. |
propertyAlias | string | Filter by property alias (human-readable sensor name). Specify either propertyAlias or timeSeriesId, but not both. Returns only jobs analyzing the specified property alias. |
startDate | string (date-time) | The exclusive start of the date range for filtering jobs by creation time. Jobs created after this timestamp are included. Use ISO 8601 format (e.g., 2024-01-01T00:00:00Z). |
status | string | Filter by job status. Returns only jobs in the specified status. Use RUNNING to find active jobs, or FAILED to identify jobs requiring attention. |
timeSeriesId | string | Filter by time series ID (system identifier). Specify either timeSeriesId or propertyAlias, but not both. Returns only jobs analyzing the specified time series. |
SELECT examples
- describe_enrichment_job
- list_enrichment_jobs
Retrieves detailed information about a specific enrichment job, including its current status, configuration, and timestamps. Use Cases Monitor job progress by checking status updates with DescribeEnrichmentJob Retrieve the complete job configuration submitted during creation Debug failed jobs by examining the failureMessage field Track job lifecycle with creation, update, completion, and cancellation timestamps Status Monitoring Jobs progress through statuses: PENDING → RUNNING → terminal state Terminal states: COMPLETED: Job finished successfully; query IoT SiteWise for semantic search results FAILED: Job encountered an error; check failureMessage for details TIMED_OUT: Job exceeded maximum processing time CANCELLED: Job was cancelled via CancelEnrichmentJob Response Fields The response includes: Current job status and type Full job configuration as originally submitted Lifecycle timestamps (created, updated, completed, cancelled) Failure details if status is FAILED
SELECT
cancelled_at,
completed_at,
created_at,
failure_message,
job_configuration,
job_id,
job_type,
status,
updated_at,
workspace_name
FROM aws.iotsitewise.enrichment_jobs
WHERE workspace_name = '{{ workspace_name }}' -- required
AND job_id = '{{ job_id }}' -- required
AND region = '{{ region }}' -- required
;
Lists enrichment jobs within a workspace with optional filtering and pagination. Results are ordered by createdAt timestamp descending (newest first). Filtering Combine filters to narrow results: datasetId: Filter by dataset propertyAlias OR timeSeriesId: Filter by time series (specify one, not both) status: Filter by job status (e.g., RUNNING to find active jobs) jobType: Filter by enrichment type (currently only EVENT_DETECTION) startDate and endDate: Filter by job creation time range Important Constraints You must specify either propertyAlias OR timeSeriesId, but not both Attempting to specify both results in an InvalidRequestException Date filters use ISO 8601 format startDate is exclusive, endDate is inclusive Pagination The operation returns up to maxResults jobs per page (default 50). If more results exist, the response includes a nextToken. Submit this token in a subsequent request to retrieve the next page. Common Use Cases Find all running jobs: Filter by status=RUNNING List recent jobs for a dataset: Filter by datasetId with optional date range Monitor jobs for a specific sensor: Filter by propertyAlias or timeSeriesId Track all event detection jobs: Filter by jobType=EVENT_DETECTION Performance Performance is optimal when filtering by supported fields (datasetId, propertyAlias, timeSeriesId, status, jobType).
SELECT
created_at,
dataset_id,
job_id,
job_type,
property_alias,
status,
time_series_id,
updated_at,
workspace_name
FROM aws.iotsitewise.enrichment_jobs
WHERE workspace_name = '{{ workspace_name }}' -- required
AND region = '{{ region }}' -- required
AND datasetId = '{{ datasetId }}'
AND propertyAlias = '{{ propertyAlias }}'
AND timeSeriesId = '{{ timeSeriesId }}'
AND status = '{{ status }}'
AND jobType = '{{ jobType }}'
AND startDate = '{{ startDate }}'
AND endDate = '{{ endDate }}'
AND maxResults = '{{ maxResults }}'
AND nextToken = '{{ nextToken }}'
;
INSERT examples
- create_enrichment_job
- Manifest
Creates an asynchronous enrichment job to analyze time-series sensor data. The operation returns immediately with job details while processing continues in the background. Idempotency Include a clientToken to make the operation idempotent. If you submit the same request with the same token within the idempotency window, you receive the original job details without creating a duplicate. Prerequisites Before creating a job, ensure: The workspace is in ACTIVE state (not being deleted) You have IAM permissions for the workspace, dataset, and time-series resources You have KMS Decrypt permission on the workspace's customer-managed encryption key No duplicate job (same workspace, dataset, property, and job type) is currently running Workflow Submit the job with configuration specifying which video data to analyze and the time range Capture the jobId from the response Use DescribeEnrichmentJob to monitor progress and check job status When status reaches a terminal state (COMPLETED, FAILED, TIMED_OUT, CANCELLED), check results For COMPLETED jobs, query IoT SiteWise for semantic search on video events Error Handling ConflictingOperationException: A duplicate job is already running for the same configuration InvalidRequestException: Invalid parameters (e.g., both timeSeriesId and propertyAlias specified) AccessDeniedException: Insufficient IAM or KMS permissions LimitExceededException: Too many concurrent jobs or requests
INSERT INTO aws.iotsitewise.enrichment_jobs (
jobConfiguration,
clientToken,
workspace_name,
region
)
SELECT
'{{ jobConfiguration }}' /* required */,
'{{ clientToken }}',
'{{ workspace_name }}',
'{{ region }}'
RETURNING
created_at,
job_id,
status
;
# Description fields are for documentation purposes
- name: enrichment_jobs
props:
- name: workspace_name
value: "{{ workspace_name }}"
description: Required parameter for the enrichment_jobs resource.
- name: region
value: "{{ region }}"
description: Required parameter for the enrichment_jobs resource.
- name: jobConfiguration
description: |
Configuration for the enrichment job defining which analysis type to perform on video time-series data. Currently supports event detection enrichment. Exactly one member must be specified.
value:
eventDetection:
datasetId: "{{ datasetId }}"
timeSeriesId: "{{ timeSeriesId }}"
propertyAlias: "{{ propertyAlias }}"
trimSettings:
startTime:
timeInSeconds: {{ timeInSeconds }}
offsetInNanos: {{ offsetInNanos }}
endTime:
timeInSeconds: {{ timeInSeconds }}
offsetInNanos: {{ offsetInNanos }}
- name: clientToken
value: "{{ clientToken }}"