Data Source Scheduling Configuration
Configure priority scheduling and extraction times for data sources
Overview
The Data Source Scheduling Configuration APIs allow administrators to configure advanced scheduling options for individual data sources, including:
Priority scheduling: Assign priorities (1-100) to ensure extraction jobs are processed ahead of standard data sources
Scheduled extraction times: Define specific times of day when extractions should occur (in 30-minute intervals)
Day-of-week scheduling: Restrict extractions to precise days of the week
These APIs are intended primarily for use with Veza Lifecycle Management to ensure critical data sources (such as HR systems) are refreshed at predictable times to support downstream automation workflows.
Supported Data Source Types: Scheduling configuration is designed for EXTRACTOR and DISCOVERER data source types only. Configuring scheduling for other data source types (such as PARSER) will not work as expected.
Examples
Source of Identity Scheduling
Configure HR system data sources to extract at specific times to ensure identity data is current before provisioning workflows execute:
# Configure Workday to extract weekdays at 6 AM Eastern
curl -X POST "$BASE_URL/api/private/providers/datasources/{workday_datasource_id}/scheduling_config" \
-H "authorization: Bearer $VEZA_TOKEN" \
-H "Content-Type: application/json" \
--data-raw '{
"priority": 100,
"timezone": "America/New_York",
"scheduled_extraction_times": ["06:00:00"],
"scheduled_days_of_week": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY"]
}'Prevent Extraction During Business Hours
Schedule non-critical extractions only on weekends to reduce workload during business hours:
curl -X POST "$BASE_URL/api/private/providers/datasources/{datasource_id}/scheduling_config" \
-H "authorization: Bearer $VEZA_TOKEN" \
-H "Content-Type: application/json" \
--data-raw '{
"priority": 100,
"timezone": "America/Los_Angeles",
"scheduled_extraction_times": ["00:00:00", "12:00:00"],
"scheduled_days_of_week": ["SATURDAY", "SUNDAY"]
}'Endpoints
POST
/api/private/providers/datasources/{datasource_id}/scheduling_config
Create or update scheduling configuration
GET
/api/private/providers/datasources/{datasource_id}/scheduling_config
Get configuration for a specific data source
GET
/api/private/providers/datasources/scheduling_configs
List all scheduling configurations
DELETE
/api/private/providers/datasources/{datasource_id}/scheduling_config
Remove scheduling configuration
Create or Update Scheduling Configuration
Endpoint
POST /api/private/providers/datasources/{datasource_id}/scheduling_configDescription
Creates or updates the scheduling configuration for a specific data source. If a configuration already exists for the data source, it will be updated with the new values; otherwise, a new configuration will be created.
Path Parameters
datasource_id
string (UUID)
Required
The unique identifier of the data source
Request Body
The request body contains the configuration fields directly (no wrapper object needed):
priority
integer
Required
Priority level (1-100). Must be 100 when scheduled_extraction_times are configured
timezone
string
Conditional
IANA timezone (e.g., America/New_York). Required if scheduled_extraction_times or scheduled_days_of_week are provided
scheduled_extraction_times
array[string]
Optional
Extraction times in HH:MM:SS format. Minutes must be :00 or :30, seconds must be :00. Times must be at least 1 hour apart
scheduled_days_of_week
array[string]
Optional
Days when extractions should run: SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY. Requires scheduled_extraction_times to be set
Validation Rules
Priority: Must be between 1-100 (where 100 is the highest priority)
When
scheduled_extraction_timesare configured, priority must be 100 to ensure jobs are processed closest to the configured timesPriority 1-99 can be used without schedules for edge cases requiring a higher priority than standard periodic scheduling
Extraction and parsing jobs are picked up in decreasing order of priority, followed by creation timestamp
Timezone: Required when either
scheduled_extraction_timesorscheduled_days_of_weekare provided. Must be a valid IANA timezoneExtraction times:
Must be in
HH:MM:SSformatMinutes must be
:00or:30(30-minute intervals only)Seconds must be
:00Minimum 1-hour gap between adjacent times
Days of the week:
Requires
scheduled_extraction_timesto be non-emptyAutomatically sorted (Sunday first)
Empty array or omitted means all days allowed
System limit: A maximum of 100 data sources can have scheduling configurations (limit will be enforced in a future release)
Request Examples
curl -X POST "$BASE_URL/api/private/providers/datasources/{datasource_id}/scheduling_config" \
-H "authorization: Bearer $VEZA_TOKEN" \
-H "Content-Type: application/json" \
--data-raw '{
"priority": 100,
"timezone": "America/New_York",
"scheduled_extraction_times": ["09:00:00", "13:30:00", "18:30:00"],
"scheduled_days_of_week": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY"]
}'curl -X POST "$BASE_URL/api/private/providers/datasources/{datasource_id}/scheduling_config" \
-H "authorization: Bearer $VEZA_TOKEN" \
-H "Content-Type: application/json" \
--data-raw '{
"priority": 100
}'curl -X POST "$BASE_URL/api/private/providers/datasources/{datasource_id}/scheduling_config" \
-H "authorization: Bearer $VEZA_TOKEN" \
-H "Content-Type: application/json" \
--data-raw '{
"priority": 100,
"timezone": "America/Los_Angeles",
"scheduled_extraction_times": ["09:00:00", "21:00:00"],
"scheduled_days_of_week": ["SATURDAY", "SUNDAY"]
}'Response Examples
Standard Response:
{
"value": {
"datasource_id": "019a0f2b-53cd-7c5d-904f-bf2588b876d5",
"priority": "100",
"datasource_name": "AWS S3 (527398259632)",
"datasource_type": "EXTRACTOR",
"timezone": "America/New_York",
"scheduled_extraction_times": ["09:00:00", "13:30:00", "18:30:00"],
"created_at": "2025-10-28T02:34:27.794138246Z",
"updated_at": "2025-10-31T19:42:43.705828675Z",
"scheduled_days_of_week": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY"]
}
}Error Response (Invalid Time Format):
{
"code": "INVALID_ARGUMENT",
"message": "invalid time format '09:15:00': only 00 and 30 minutes of the hour are supported",
"details": []
}Error Response (Limit Reached):
{
"code": "INVALID_ARGUMENT",
"message": "Cannot create scheduling configuration. Limit of 100 configurations is reached.",
"details": []
}Get Scheduling Configuration
Endpoint
GET /api/private/providers/datasources/{datasource_id}/scheduling_configDescription
Retrieves the scheduling configuration for a specific data source.
Path Parameters
datasource_id
string (UUID)
Required
The unique identifier of the data source
Request Examples
curl -X GET "$BASE_URL/api/private/providers/datasources/{datasource_id}/scheduling_config" \
-H "authorization: Bearer $VEZA_TOKEN"Response Examples
Standard Response:
{
"value": {
"datasource_id": "0199827a-402d-7554-af7b-cb3489b68402",
"priority": "100",
"datasource_name": "AWS IAM Volatile (527398259632)",
"datasource_type": "EXTRACTOR",
"timezone": "America/New_York",
"scheduled_extraction_times": ["09:00:00", "13:30:00", "18:30:00"],
"created_at": "2025-10-10T12:52:11.659562336Z",
"updated_at": "2025-10-10T12:52:11.659562336Z",
"scheduled_days_of_week": ["MONDAY", "WEDNESDAY", "FRIDAY"]
}
}Error Response (Not Found):
{
"code": "NOT_FOUND",
"message": "datasource_scheduling_config not found",
"details": []
}List Scheduling Configurations
Endpoint
GET /api/private/providers/datasources/scheduling_configsDescription
Returns all scheduling configurations across all data sources in your organization.
Query Parameters
datasource_type
string
Optional
Filter by datasource type: EXTRACTOR, DISCOVERER, or PARSER
Request Examples
curl -X GET "$BASE_URL/api/private/providers/datasources/scheduling_configs" \
-H "authorization: Bearer $VEZA_TOKEN"curl -X GET "$BASE_URL/api/private/providers/datasources/scheduling_configs?datasource_type=EXTRACTOR" \
-H "authorization: Bearer $VEZA_TOKEN"Response Examples
Standard Response:
{
"values": [
{
"datasource_id": "0199827a-3d32-7342-9ccd-2f928ccc6855",
"priority": "100",
"datasource_name": "AWS Cognito (527398259632)",
"datasource_type": "EXTRACTOR",
"timezone": "America/New_York",
"scheduled_extraction_times": ["00:00:00", "01:30:00", "03:00:00"],
"created_at": "1970-01-01T00:00:01.758832260Z",
"updated_at": "1970-01-01T00:00:01.758832260Z",
"scheduled_days_of_week": ["MONDAY", "WEDNESDAY", "FRIDAY"]
},
{
"datasource_id": "0199827a-402d-7554-af7b-cb3489b68402",
"priority": "100",
"datasource_name": "AWS IAM Volatile (527398259632)",
"datasource_type": "EXTRACTOR",
"timezone": "America/New_York",
"scheduled_extraction_times": ["09:00:00", "13:30:00", "18:30:00"],
"created_at": "2025-10-10T12:52:11.659562336Z",
"updated_at": "2025-10-10T12:52:11.659562336Z",
"scheduled_days_of_week": []
}
]
}Delete Scheduling Configuration
Endpoint
DELETE /api/private/providers/datasources/{datasource_id}/scheduling_configDescription
Removes the scheduling configuration for a specific data source. The data source will revert to standard scheduling behavior.
Path Parameters
datasource_id
string (UUID)
Required
The unique identifier of the data source
Request Examples
curl -X DELETE "$BASE_URL/api/private/providers/datasources/{datasource_id}/scheduling_config" \
-H "authorization: Bearer $VEZA_TOKEN"Response Examples
Standard Response:
{}Related APIs
List Data Sources - Get data source IDs for configuration
Get Data Source - View data source details and status
Lifecycle Management APIs - Automated identity lifecycle workflows
Last updated
Was this helpful?
