diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/2017-09-01-preview/entityTypes/Trigger.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/2017-09-01-preview/entityTypes/Trigger.json index e428ab333549..8d3e7cea460e 100644 --- a/specification/datafactory/resource-manager/Microsoft.DataFactory/2017-09-01-preview/entityTypes/Trigger.json +++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/2017-09-01-preview/entityTypes/Trigger.json @@ -18,13 +18,6 @@ "description": "Trigger description.", "type": "string" }, - "pipelines": { - "type": "array", - "items": { - "$ref": "../datafactory.json#/definitions/TriggerPipelineReference" - }, - "description": "Pipelines that need to be started." - }, "runtimeState": { "$ref": "#/definitions/TriggerRuntimeState", "description": "Indicates if trigger is running or not. Updated when Start/Stop APIs are called on the Trigger.", @@ -48,12 +41,30 @@ "modelAsString": true } }, + "MultiplePipelineTrigger": { + "x-ms-discriminator-value": "MultiplePipelineTrigger", + "description": "Base class for all triggers that support one to many model for trigger to pipeline.", + "allOf": [ + { + "$ref": "#/definitions/Trigger" + } + ], + "properties": { + "pipelines": { + "type": "array", + "items": { + "$ref": "../datafactory.json#/definitions/TriggerPipelineReference" + }, + "description": "Pipelines that need to be started." + } + } + }, "ScheduleTrigger": { "description": "Trigger that creates pipeline runs periodically, on schedule.", "type": "object", "allOf": [ { - "$ref": "#/definitions/Trigger" + "$ref": "#/definitions/MultiplePipelineTrigger" } ], "properties": { @@ -219,7 +230,7 @@ "type": "object", "allOf": [ { - "$ref": "#/definitions/Trigger" + "$ref": "#/definitions/MultiplePipelineTrigger" } ], "properties": { @@ -250,6 +261,97 @@ "required": [ "typeProperties" ] + }, + "TumblingWindowTrigger": { + "description": "Trigger that schedules pipeline runs for all fixed time interval windows from a start time without gaps and also supports backfill scenarios (when start time is in the past).", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Trigger" + } + ], + "properties": { + "pipeline": { + "$ref": "../datafactory.json#/definitions/TriggerPipelineReference", + "description": "Pipeline for which runs are created when an event is fired for trigger window that is ready." + }, + "typeProperties": { + "description": "Tumbling Window Trigger properties.", + "x-ms-client-flatten": true, + "properties": { + "frequency": { + "$ref": "#/definitions/TumblingWindowFrequency", + "description": "The frequency of the time windows." + }, + "interval": { + "type": "integer", + "format": "int32", + "description": "The interval of the time windows. The minimum interval allowed is 15 Minutes." + }, + "startTime": { + "type": "string", + "format": "date-time", + "description": "The start time for the time period for the trigger during which events are fired for windows that are ready. Only UTC time is currently supported." + }, + "endTime": { + "type": "string", + "format": "date-time", + "description": "The end time for the time period for the trigger during which events are fired for windows that are ready. Only UTC time is currently supported." + }, + "delay": { + "type": "object", + "description": "Specifies how long the trigger waits past due time before triggering new run. It doesn't alter window start and end time. The default is 0. Type: string (or Expression with resultType string), pattern: ((\\d+)\\.)?(\\d\\d):(60|([0-5][0-9])):(60|([0-5][0-9]))." + }, + "maxConcurrency": { + "description": "The max number of parallel time windows (ready for execution) for which a new run is triggered.", + "type": "integer", + "minimum": 1, + "maximum": 50 + }, + "retryPolicy": { + "$ref": "#/definitions/RetryPolicy", + "description": "Retry policy that will be applied for failed pipeline runs." + } + }, + "required": [ + "frequency", + "interval", + "startTime", + "maxConcurrency" + ] + } + }, + "required": [ + "pipeline", + "typeProperties" + ] + }, + "TumblingWindowFrequency": { + "description": "Enumerates possible frequency option for the tumbling window trigger.", + "type": "string", + "enum": [ + "Minute", + "Hour" + ], + "x-ms-enum": { + "name": "TumblingWindowFrequency", + "modelAsString": true + } + }, + "RetryPolicy": { + "description": "Execution policy for an activity.", + "properties": { + "count": { + "type": "object", + "description": "Maximum ordinary retry attempts. Default is 0. Type: integer (or Expression with resultType integer), minimum: 0." + }, + "intervalInSeconds": { + "description": "Interval between retries in seconds. Default is 30.", + "type": "integer", + "minimum": 30, + "maximum": 86400 + } + } } } }