{
    "id": "http://datafactories.schema.management.azure.com/schemas/2015-09-01/Microsoft.DataFactory.Pipeline.json",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "Microsoft.Azure.Management.DataFactories.Models.Pipeline",
    "description": "A pipeline defines activities.",
    "type": "object",
    "required": [
        "name",
        "properties"
    ],
    "properties": {
        "name": {
            "description": "Name of the pipeline.",
            "type": "string",
            "maxLength": 260,
            "pattern": "^[A-Za-z0-9_][^<>*#.%&:\\\\+?/]*$"
        },
        "properties": {
            "description": "Pipeline properties.",
            "$ref": "#/definitions/pipelineProperties"
        },
        "$schema": {
            "type": "string"
        }
    },
    "additionalProperties": true,
    "definitions": {
        "activityPolicy": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.ActivityPolicy",
            "description": "Activity policy.",
            "type": "object",
            "properties": {
                "timeout": {
                    "description": "Specifies the timeout for the activity to run. If there is value specified, it takes the value of TimeSpan.FromMilliseconds(-1) which means indefinite timeout.",
                    "type": "string",
                    "pattern": "((\\d+)\\.)?(\\d\\d):(60|([0-5][0-9])):(60|([0-5][0-9]))"
                },
                "delay": {
                    "description": "Delay activity execution so that upstream activities can have extra time to finish.",
                    "type": "string",
                    "pattern": "((\\d+)\\.)?(\\d\\d):(60|([0-5][0-9])):(60|([0-5][0-9]))"
                },
                "concurrency": {
                    "description": "The maximum number of concurrent activity executions.",
                    "type": "integer"
                },
                "executionPriorityOrder": {
                    "description": "Execution priority order.  Choose from OldestFirst or NewestFirst.",
                    "type": "string",
                    "enum": [
                        "OldestFirst",
                        "NewestFirst"
                    ]
                },
                "retry": {
                    "description": "Total number of short retries for a failed activity.",
                    "type": "integer"
                },
                "longRetry": {
                    "description": "Total number of long retries after failed short retries.",
                    "type": "integer"
                },
                "longRetryInterval": {
                    "description": "Interval between two long retries.",
                    "type": "string",
                    "pattern": "((\\d+)\\.)?(\\d\\d):(60|([0-5][0-9])):(60|([0-5][0-9]))"
                },
                "style": {
                    "description": "The scheduler style.",
                    "type": "string",
                    "enum": [
                        "NotSpecified",
                        "StartOfInterval",
                        "EndOfInterval"
                    ]
                }
            },
            "additionalProperties": false
        },
        "activityInput": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.ActivityInput",
            "description": "An activity input.",
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "startTime": {
                    "description": "Start time.",
                    "type": "string"
                },
                "endTime": {
                    "description": "EndTime.",
                    "type": "string"
                },
                "length": {
                    "description": "Length.",
                    "type": "string",
                    "pattern": "((\\d+)\\.)?(\\d\\d):(60|([0-5][0-9])):(60|([0-5][0-9]))"
                },
                "name": {
                    "description": "Referenced table name.",
                    "type": "string"
                }
            },
            "additionalProperties": false
        },
        "activityOutput": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.ActivityOutput",
            "description": "An activity output.",
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "name": {
                    "description": "Referenced table name.",
                    "type": "string"
                }
            },
            "additionalProperties": false
        },
        "baseActivity": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.BaseActivity",
            "description": "A pipeline activity.",
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "name": {
                    "description": "Activity name.",
                    "type": "string"
                },
                "description": {
                    "description": "Activity description.",
                    "type": "string"
                },
                "linkedServiceName": {
                    "description": "LinkedService name where the Activity Runs.",
                    "type": "string"
                },
                "policy": {
                    "description": "Policy.",
                    "$ref": "#/definitions/activityPolicy"
                },
                "inputs": {
                    "description": "Inputs.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/activityInput"
                    }
                },
                "outputs": {
                    "description": "Outputs.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/activityOutput"
                    }
                },
                "scheduler": {
                    "title": "Microsoft.Azure.Management.DataFactories.Models.Scheduler",
                    "description": "The scheduler definition.",
                    "type": "object",
                    "required": [
                        "frequency",
                        "interval"
                    ],
                    "properties": {
                        "frequency": {
                            "description": "Frequency in terms of minute, hour, day, etc.",
                            "type": "string",
                            "enum": [
                                "Minute",
                                "Hour",
                                "Day",
                                "Week",
                                "Month"
                            ]
                        },
                        "interval": {
                            "description": "The interval of running the scheduler.",
                            "type": "integer"
                        },
                        "anchorDateTime": {
                            "description": "The date used as a reference point for calculating slice start and end dates.",
                            "$ref": "#/definitions/UTC"
                        },
                        "offset": {
                            "description": "The offset relative to the anchor time.",
                            "type": "string",
                            "pattern": "((\\d+)\\.)?(\\d\\d):(60|([0-5][0-9])):(60|([0-5][0-9]))"
                        },
                        "style": {
                            "description": "The scheduler style.",
                            "type": "string",
                            "enum": [
                                "NotSpecified",
                                "StartOfInterval",
                                "EndOfInterval"
                            ]
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "copySource": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.CopySource",
            "description": "A copy activity source.",
            "type": "object",
            "properties": {
                "sourceRetryCount": {
                    "description": "Source retry count.",
                    "type": "integer"
                },
                "sourceRetryWait": {
                    "description": "Source retry wait.",
                    "type": "string",
                    "pattern": "((\\d+)\\.)?(\\d\\d):(60|([0-5][0-9])):(60|([0-5][0-9]))"
                }
            }
        },
        "azureTableSource": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.AzureTableSource",
            "description": "A copy activity Azure table source.",
            "type": "object",
            "properties": {
                "azureTableSourceQuery": {
                    "description": "Azure table source query.",
                    "type": "string"
                },
                "azureTableSourceIgnoreTableNotFound": {
                    "description": "Azure table source ignore table not found.",
                    "type": "boolean"
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "AzureTableSource"
                    ]
                }
            }
        },
        "copySourceTypes": {
            "type": "object",
            "required": [
                "type"
            ],
            "allOf": [
                {
                    "$ref": "#/definitions/copySource"
                },
                {
                    "oneOf": [
                        {
                            "$ref": "#/definitions/azureTableSource"
                        },
                        {
                            "$ref": "#/definitions/blobSource"
                        },
                        {
                            "$ref": "#/definitions/documentDbCollectionSource"
                        },
                        {
                            "$ref": "#/definitions/relationalSource"
                        },
                        {
                            "$ref": "#/definitions/sqlSource"
                        },
                        {
                            "$ref": "#/definitions/sqlDWSource"
                        },
                        {
                            "$ref": "#/definitions/fileSystemSource"
                        },
                        {
                            "$ref": "#/definitions/oracleSource"
                        },
                        {
                            "$ref": "#/definitions/azureDataLakeStoreSource"
                        },
                        {
                            "$ref": "#/definitions/cassandraSource"
                        },
                        {
                            "$ref": "#/definitions/mongoDbSource"
                        },
                        {
                            "$ref": "#/definitions/webSource"
                        },
                        {
                            "$ref": "#/definitions/httpSource"
                        }
                    ]
                }
            ]
        },
        "blobSource": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.BlobSource",
            "description": "A copy activity blob source.",
            "type": "object",
            "properties": {
                "treatEmptyAsNull": {
                    "description": "Treat empty as null.",
                    "type": "boolean"
                },
                "skipHeaderLineCount": {
                    "description": "Number of header lines to skip from each blob",
                    "type": "integer"
                },
                "recursive": {
                    "description": "If true, files under the folder path will be read recursively.",
                    "type": "boolean"
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "BlobSource"
                    ]
                }
            }
        },
        "documentDbCollectionSource": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.DocumentDbCollectionSource",
            "description": "A copy activity Document Database Collection source.",
            "type": "object",
            "properties": {
                "query": {
                    "description": "Documents query.",
                    "type": "string"
                },
                "nestingSeparator": {
                    "description": "Nested properties separator.",
                    "type": "string"
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "DocumentDbCollectionSource"
                    ]
                }
            }
        },
        "relationalSource": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.RelationalSource",
            "description": "A copy activity source for various relational databases.",
            "type": "object",
            "properties": {
                "query": {
                    "description": "Database query.",
                    "type": "string"
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "RelationalSource"
                    ]
                }
            }
        },
        "sqlSource": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.SqlSource",
            "description": "A copy activity SQL source.",
            "type": "object",
            "properties": {
                "sqlReaderQuery": {
                    "description": "SQL reader query.",
                    "type": "string"
                },
                "sqlReaderStoredProcedureName": {
                    "description": "Name of the stored procedure for a SQL Database source. This cannot be used at the same time as SqlReaderQuery.",
                    "type": "string"
                },
                "storedProcedureParameters": {
                    "description": "Value and type setting for stored procedure parameters. Example: \"{Parameter1: {value: \"1\", type: \"int\"}}\".",
                    "type": "object",
                    "additionalProperties": {
                        "allOf": [
                            {
                                "$ref": "#/definitions/storedProcedureParameter"
                            }
                        ]
                    }
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "SqlSource"
                    ]
                }
            }
        },
        "sqlDWSource": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.SqlDWSource",
            "description": "A copy activity SQL Data Warehouse source.",
            "type": "object",
            "properties": {
                "sqlReaderQuery": {
                    "description": "SQL Data Warehouse reader query.",
                    "type": "string"
                },
                "sqlReaderStoredProcedureName": {
                    "description": "Name of the stored procedure for a SQL Data Warehouse source. This cannot be used at the same time as SqlReaderQuery.",
                    "type": "string"
                },
                "storedProcedureParameters": {
                    "description": "Value and type setting for stored procedure parameters. Example: \"{Parameter1: {value: \"1\", type: \"int\"}}\".",
                    "type": "object",
                    "additionalProperties": {
                        "allOf": [
                            {
                                "$ref": "#/definitions/storedProcedureParameter"
                            }
                        ]
                    }
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "SqlDWSource"
                    ]
                }
            }
        },
        "fileSystemSource": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.FileSystemSource",
            "description": "A copy activity file system source.",
            "type": "object",
            "properties": {
                "recursive": {
                    "description": "If true, files under the folder path will be read recursively.",
                    "type": "boolean"
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "FileSystemSource"
                    ]
                }
            }
        },
        "oracleSource": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.OracleSource",
            "description": "A copy activity Oracle source.",
            "type": "object",
            "properties": {
                "oracleReaderQuery": {
                    "description": "Oracle reader query.",
                    "type": "string"
                },
                "queryTimeout": {
                    "description": "Query timeout",
                    "type": "string",
                    "pattern": "((\\d+)\\.)?(\\d\\d):(60|([0-5][0-9])):(60|([0-5][0-9]))"
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "OracleSource"
                    ]
                }
            }
        },
        "webSource": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.WebSource",
            "description": "A copy activity source for web page table.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "WebSource"
                    ]
                }
            }
        },
        "httpSource": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.HttpSource",
            "description": "A copy activity source for an HTTP file.",
            "type": "object",
            "properties": {
                "httpRequestTimeout": {
                    "description": "Specifies the timeout for a HTTP client to get HTTP response from HTTP server. The default value is equivalent to System.Net.HttpWebRequest.Timeout.",
                    "type": "string",
                    "pattern": "((\\d+)\\.)?(\\d\\d):(60|([0-5][0-9])):(60|([0-5][0-9]))"
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "HttpSource"
                    ]
                }
            }
        },
        "azureDataLakeStoreSource": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.AzureDataLakeStoreSource",
            "description": "A copy activity Azure Data Lake source.",
            "type": "object",
            "properties": {
                "recursive": {
                    "description": "If true, files under the folder path will be read recursively.",
                    "type": "boolean"
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "AzureDataLakeStoreSource"
                    ]
                }
            }
        },
        "cassandraSource": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.CassandraSource",
            "description": "A copy activity source for a Cassandra database.",
            "type": "object",
            "properties": {
                "query": {
                    "description": "Database query. Should be a SQL-92 query expression or Cassandra Query Language (CQL) command.",
                    "type": "string"
                },
                "consistencyLevel": {
                    "description": "The consistency level specifies how many Cassandra servers must respond to a read request before returning data to the client application. Cassandra checks the specified number of Cassandra servers for data to satisfy the read request. Must be one of cassandraSourceReadConsistencyLevels. The default value is 'ONE'. It is case-insensitive.",
                    "$ref": "#/definitions/cassandraSourceReadConsistencyLevels"
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "CassandraSource"
                    ]
                }
            }
        },
        "cassandraSourceReadConsistencyLevels": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.CassandraSourceReadConsistencyLevels",
            "description": "Consistency level when connecting to the Cassandra database. A property of CassandraSource.",
            "type": "string",
            "enum": [
                "ALL",
                "EACH_QUORUM",
                "QUORUM",
                "LOCAL_QUORUM",
                "ONE",
                "TWO",
                "THREE",
                "LOCAL_ONE",
                "SERIAL",
                "LOCAL_SERIAL"
            ]
        },
        "mongoDbSource": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.MongoDbSource",
            "description": "A copy activity source for a MongoDB database.",
            "type": "object",
            "properties": {
                "query": {
                    "description": "Database query. Should be a SQL-92 query expression.",
                    "type": "string"
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "MongoDbSource"
                    ]
                }
            }
        },
        "azureDataLakeStoreSink": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.AzureDataLakeStoreSink",
            "description": "A copy activity Azure Data Lake Store sink.",
            "type": "object",
            "properties": {
                "copyBehavior": {
                    "description": "The type of copy behavior for copy sink.",
                    "$ref": "#/definitions/copyBehaviorType"
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "AzureDataLakeStoreSink"
                    ]
                }
            }
        },
        "copySink": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.CopySink",
            "description": "A copy activity sink.",
            "type": "object",
            "properties": {
                "writeBatchSize": {
                    "description": "Write batch size.",
                    "type": "integer",
                    "minimum": 0
                },
                "writeBatchTimeout": {
                    "description": "Write batch timeout.",
                    "type": "string",
                    "pattern": "((\\d+)\\.)?(\\d\\d):(60|([0-5][0-9])):(60|([0-5][0-9]))"
                },
                "sinkRetryCount": {
                    "description": "Sink retry count.",
                    "type": "integer"
                },
                "sinkRetryWait": {
                    "description": "Sink retry wait.",
                    "type": "string",
                    "pattern": "((\\d+)\\.)?(\\d\\d):(60|([0-5][0-9])):(60|([0-5][0-9]))"
                }
            }
        },
        "azureQueueSink": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.AzureQueueSink",
            "description": "A copy activity Azure queue sink.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "AzureQueueSink"
                    ]
                }
            }
        },
        "copySinkTypes": {
            "type": "object",
            "required": [
                "type"
            ],
            "allOf": [
                {
                    "$ref": "#/definitions/copySink"
                },
                {
                    "oneOf": [
                        {
                            "$ref": "#/definitions/azureQueueSink"
                        },
                        {
                            "$ref": "#/definitions/azureSearchIndexSink"
                        },
                        {
                            "$ref": "#/definitions/azureTableSink"
                        },
                        {
                            "$ref": "#/definitions/blobSink"
                        },
                        {
                            "$ref": "#/definitions/documentDbCollectionSink"
                        },
                        {
                            "$ref": "#/definitions/sqlSink"
                        },
                        {
                            "$ref": "#/definitions/sqlDWSink"
                        },
                        {
                            "$ref": "#/definitions/fileSystemSink"
                        },
                        {
                            "$ref": "#/definitions/oracleSink"
                        },
                        {
                            "$ref": "#/definitions/azureDataLakeStoreSink"
                        }
                    ]
                }
            ]
        },
        "copyBehaviorType": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.CopyBehaviorType",
            "description": "All available types of copy behavior.",
            "type": "string",
            "enum": [
                "PreserveHierarchy",
                "FlattenHierarchy",
                "MergeFiles"
            ]
        },
        "azureSearchIndexSink": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.AzureSearchIndexSink",
            "description": "A copy activity Azure Search Index sink.",
            "type": "object",
            "properties": {
                "writeBehavior": {
                    "description": "Specify the write behavior when upserting documents into Azure Search Index.",
                    "title": "Microsoft.Azure.Management.DataFactories.Models.AzureSearchIndexWriteBehavior",
                    "type": "string",
                    "enum": [
                        "Merge",
                        "Upload"
                    ]
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "AzureSearchIndexSink"
                    ]
                }
            }
        },
        "azureTableSink": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.AzureTableSink",
            "description": "A copy activity Azure table sink.",
            "type": "object",
            "properties": {
                "azureTableDefaultPartitionKeyValue": {
                    "description": "Azure table default partition key value.",
                    "type": "string"
                },
                "azureTablePartitionKeyName": {
                    "description": "Azure table partition key name.",
                    "type": "string"
                },
                "azureTableRowKeyName": {
                    "description": "Azure table row key name.",
                    "type": "string"
                },
                "azureTableInsertType": {
                    "description": "azure table insert type.",
                    "type": "string"
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "AzureTableSink"
                    ]
                }
            }
        },
        "blobSink": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.BlobSink",
            "description": "A copy activity blob sink.",
            "type": "object",
            "properties": {
                "blobWriterOverwriteFiles": {
                    "description": "Blob writer overwrite files.",
                    "type": "boolean"
                },
                "blobWriterDateTimeFormat": {
                    "description": "Blob writer date time format.",
                    "type": "string"
                },
                "blobWriterAddHeader": {
                    "description": "Blob writer add header.",
                    "type": "boolean"
                },
                "copyBehavior": {
                    "description": "The type of copy behavior for copy sink.",
                    "$ref": "#/definitions/copyBehaviorType"
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "BlobSink"
                    ]
                }
            }
        },
        "fileSystemSink": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.FileSystemSink",
            "description": "A copy activity file system sink.",
            "type": "object",
            "properties": {
                "copyBehavior": {
                    "description": "The type of copy behavior for file system sink.",
                    "$ref": "#/definitions/copyBehaviorType"
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "FileSystemSink"
                    ]
                }
            }
        },
        "documentDbCollectionSink": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.DocumentDbCollectionSink",
            "description": "A copy activity Document Database Collection sink.",
            "type": "object",
            "properties": {
                "nestingSeparator": {
                    "description": "Nested properties separator.",
                    "type": "string"
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "DocumentDbCollectionSink"
                    ]
                }
            }
        },
        "sqlSink": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.SqlSink",
            "description": "A copy activity SQL sink.",
            "type": "object",
            "properties": {
                "sqlWriterStoredProcedureName": {
                    "description": "Sql writer stored procedure name.",
                    "type": "string"
                },
                "sqlWriterTableType": {
                    "description": "Sql writer table type.",
                    "type": "string"
                },
                "sliceIdentifierColumnName": {
                    "description": "Name of the SQL column which is used to save slice identifier information, to support idempotent copy.",
                    "type": "string"
                },
                "sqlWriterCleanupScript": {
                    "description": "SQL writer cleanup script.",
                    "type": "string"
                },
                "storedProcedureParameters": {
                    "description": "Sql stored procedure parameters.",
                    "type": "object",
                    "additionalProperties": {
                        "allOf": [
                            {
                                "$ref": "#/definitions/storedProcedureParameter"
                            }
                        ]
                    }
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "SqlSink"
                    ]
                }
            }
        },
        "sqlDWSink": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.SqlDWSink",
            "description": "A copy activity SQL data warehouse sink.",
            "type": "object",
            "properties": {
                "sliceIdentifierColumnName": {
                    "description": "Name of the SQL column which is used to save slice identifier information, to support idempotent copy.",
                    "type": "string"
                },
                "sqlWriterCleanupScript": {
                    "description": "SQL writer cleanup script.",
                    "type": "string"
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "SqlDWSink"
                    ]
                },
                "allowPolyBase": {
                    "description": "Indicates to use PolyBase to copy data into SQL Data Warehouse when applicable.",
                    "type": "boolean"
                },
                "polyBaseSettings": {
                    "description": "Specifies PolyBase-related settings when AllowPolyBase is true.",
                    "$ref": "#/definitions/polyBaseSettings"
                }
            }
        },
        "polyBaseSettings": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.PolyBaseSettings",
            "description": "PolyBase settings.",
            "type": "object",
            "properties": {
                "rejectType": {
                    "description": "Indicates whether the RejectValue property is specified as a literal value or a percentage.",
                    "type": "string",
                    "enum": [
                        "value",
                        "percentage"
                    ]
                },
                "rejectValue": {
                    "description": "Specifies the value or the percentage of rows that can be rejected before the query fails.",
                    "type": "number",
                    "minimum": 0
                },
                "rejectSampleValue": {
                    "description": "Determines the number of rows to attempt to retrieve before the PolyBase recalculates the percentage of rejected rows.",
                    "type": "integer",
                    "minimum": 0
                },
                "useTypeDefault": {
                    "description": "Specifies how to handle missing values in delimited text files when PolyBase retrieves data from the text file.",
                    "type": "boolean"
                }
            }
        },
        "storedProcedureParameter": {
            "type": "object",
            "required": [
                "value"
            ],
            "properties": {
                "value": {
                    "type": "string"
                },
                "type": {
                    "$ref": "#/definitions/storedProcedureParameterType"
                }
            }
        },
        "storedProcedureParameterType": {
            "type": "string",
            "enum": [
                "String",
                "Int",
                "Decimal",
                "Guid",
                "Boolean",
                "Date"
            ]
        },
        "oracleSink": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.OracleSink",
            "description": "A copy activity Oracle sink.",
            "type": "object",
            "properties": {
                "sliceIdentifierColumnName": {
                    "description": "Name of the SQL column which is used to save slice identifier information, to support idempotent copy.",
                    "type": "string"
                },
                "sqlWriterCleanupScript": {
                    "description": "SQL writer cleanup script.",
                    "type": "string"
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "OracleSink"
                    ]
                }
            }
        },
        "copyTranslator": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.CopyTranslator",
            "description": "A copy activity translator.",
            "type": "object",
            "properties": {}
        },
        "tabularTranslator": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.TabularTranslator",
            "description": "A copy activity tabular translator.",
            "type": "object",
            "properties": {
                "columnMappings": {
                    "description": "Column mappings.",
                    "type": "string"
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "TabularTranslator"
                    ]
                }
            }
        },
        "copyTranslatorTypes": {
            "type": "object",
            "required": [
                "type"
            ],
            "allOf": [
                {
                    "$ref": "#/definitions/copyTranslator"
                },
                {
                    "oneOf": [
                        {
                            "$ref": "#/definitions/tabularTranslator"
                        }
                    ]
                }
            ]
        },
        "copyActivity": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.CopyActivity",
            "description": "Copy activity.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "Copy"
                    ]
                },
                "typeProperties": {
                    "description": "Copy activity properties.",
                    "type": "object",
                    "required": [
                        "source",
                        "sink"
                    ],
                    "properties": {
                        "source": {
                            "description": "Copy activity source.",
                            "$ref": "#/definitions/copySourceTypes"
                        },
                        "sink": {
                            "description": "Copy activity sink.",
                            "$ref": "#/definitions/copySinkTypes"
                        },
                        "translator": {
                            "description": "Copy activity translator. If not specificed, tabular translator is used.",
                            "$ref": "#/definitions/copyTranslatorTypes"
                        },
                        "enableStaging": {
                            "description": "Specifies whether to copy data via an interim staging. Default value is false.",
                            "type": "boolean"
                        },
                        "stagingSettings": {
                            "description": "Specifies interim staging settings when EnableStaging is true.",
                            "$ref": "#/definitions/stagingSettings"
                        },
                        "parallelCopies": {
                            "description": "Maximum number of concurrent sessions opened on the source or sink to avoid overloading the data store.",
                            "type": "integer",
                            "minimum": 0
                        },
                        "cloudDataMovementUnits": {
                            "description": "Maximum number of cloud data movement units that can be used to perform this data movement.",
                            "type": "integer",
                            "minimum": 0
                        },
                        "executionLocation": {
                            "description": "The execution region of the Copy Activity. Should be one of the region supported by ADF Data Movement, e.g. \"West US\". ",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "stagingSettings": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.StagingSettings",
            "description": "Interim staging settings",
            "type": "object",
            "required": [
                "linkedServiceName"
            ],
            "properties": {
                "linkedServiceName": {
                    "description": "Name of the Azure Storage or Storage SAS linked service used for interim staging. Must be specified if copy via staging is enbled.",
                    "type": "string"
                },
                "path": {
                    "description": "The path to storage for storing the interim data",
                    "type": "string"
                },
                "enableCompression": {
                    "description": "Specifies whether to use compression when copying data via an interim staging. Default value is false.",
                    "type": "boolean"
                }
            }
        },
        "baseActivityTypes": {
            "type": "object",
            "required": [
                "type",
                "typeProperties"
            ],
            "allOf": [
                {
                    "$ref": "#/definitions/baseActivity"
                },
                {
                    "oneOf": [
                        {
                            "$ref": "#/definitions/copyActivity"
                        },
                        {
                            "$ref": "#/definitions/sqlServerStoredProcedureActivity"
                        },
                        {
                            "$ref": "#/definitions/azureMLBatchScoringActivity"
                        },
                        {
                            "$ref": "#/definitions/azureMLBatchExecutionActivity"
                        },
                        {
                            "$ref": "#/definitions/azureMLUpdateResourceActivity"
                        },
                        {
                            "$ref": "#/definitions/hdInsightHiveActivity"
                        },
                        {
                            "$ref": "#/definitions/hdInsightPigActivity"
                        },
                        {
                            "$ref": "#/definitions/hdInsightMapReduceActivity"
                        },
                        {
                            "$ref": "#/definitions/hdInsightStreamingActivity"
                        },
                        {
                            "$ref": "#/definitions/dataLakeAnalyticsUSQLActivity"
                        },
                        {
                            "$ref": "#/definitions/dotNetActivity"
                        }
                    ]
                }
            ]
        },
        "hdInsightHiveActivity": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.HDInsightHiveActivity",
            "description": "HDInsight activity.",
            "type": "object",
            "properties": {
                "typeProperties": {
                    "description": "HDInsight activity properties.",
                    "type": "object",
                    "properties": {
                        "storageLinkedServices": {
                            "description": "Storage linked services.",
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "arguments": {
                            "description": "User specified arguments to HDInsightActivity.",
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "getDebugInfo": {
                            "description": "The HDInsightActivityDebugInfoOption settings to use.",
                            "$ref": "#/definitions/hdInsightActivityDebugInfoOption"
                        },
                        "script": {
                            "description": "script.",
                            "type": "string"
                        },
                        "scriptPath": {
                            "description": "Script path.",
                            "type": "string"
                        },
                        "scriptLinkedService": {
                            "description": "Script linked service.",
                            "type": "string"
                        },
                        "defines": {
                            "description": "Allows user to specify defines for Hive job request.",
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "additionalProperties": false
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "HDInsightHive"
                    ]
                }
            }
        },
        "hdInsightPigActivity": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.HDInsightPigActivity",
            "description": "HDInsight activity.",
            "type": "object",
            "properties": {
                "typeProperties": {
                    "description": "HDInsight activity properties.",
                    "type": "object",
                    "properties": {
                        "storageLinkedServices": {
                            "description": "Storage linked services.",
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "arguments": {
                            "description": "User specified arguments to HDInsightActivity.",
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "getDebugInfo": {
                            "description": "The HDInsightActivityDebugInfoOption settings to use.",
                            "$ref": "#/definitions/hdInsightActivityDebugInfoOption"
                        },
                        "script": {
                            "description": "script.",
                            "type": "string"
                        },
                        "scriptPath": {
                            "description": "Script path.",
                            "type": "string"
                        },
                        "scriptLinkedService": {
                            "description": "Script linked service.",
                            "type": "string"
                        },
                        "defines": {
                            "description": "Allows user to specify defines for the Pig job request.",
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "additionalProperties": false
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "HDInsightPig"
                    ]
                }
            }
        },
        "hdInsightMapReduceActivity": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.HDInsightMapReduceActivity",
            "description": "HDInsight activity.",
            "type": "object",
            "properties": {
                "typeProperties": {
                    "description": "HDInsight activity properties.",
                    "type": "object",
                    "required": [
                        "className",
                        "jarFilePath"
                    ],
                    "properties": {
                        "storageLinkedServices": {
                            "description": "Storage linked services.",
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "arguments": {
                            "description": "User specified arguments to HDInsightActivity.",
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "getDebugInfo": {
                            "description": "The HDInsightActivityDebugInfoOption settings to use.",
                            "$ref": "#/definitions/hdInsightActivityDebugInfoOption"
                        },
                        "className": {
                            "description": "Class Name.",
                            "type": "string"
                        },
                        "jarFilePath": {
                            "description": "Jar path.",
                            "type": "string"
                        },
                        "jarLinkedService": {
                            "description": "Jar linked service.",
                            "type": "string"
                        },
                        "jarLibs": {
                            "description": "Jar libs.",
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "defines": {
                            "description": "Allows user to specify defines for mapreduce job request.",
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "additionalProperties": false
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "HDInsightMapReduce"
                    ]
                }
            }
        },
        "hdInsightStreamingActivity": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.HDInsightStreamingActivity",
            "description": "HDInsight activity.",
            "type": "object",
            "properties": {
                "typeProperties": {
                    "description": "HDInsight streaming activity properties.",
                    "type": "object",
                    "required": [
                        "mapper",
                        "reducer",
                        "input",
                        "output",
                        "filePaths"
                    ],
                    "properties": {
                        "storageLinkedServices": {
                            "description": "Storage linked services.",
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "arguments": {
                            "description": "User specified arguments to HDInsightActivity.",
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "getDebugInfo": {
                            "description": "The HDInsightActivityDebugInfoOption settings to use.",
                            "$ref": "#/definitions/hdInsightActivityDebugInfoOption"
                        },
                        "mapper": {
                            "description": "Mapper executable name.",
                            "type": "string"
                        },
                        "reducer": {
                            "description": "Reducer executable name.",
                            "type": "string"
                        },
                        "input": {
                            "description": "Input blob path.",
                            "type": "string"
                        },
                        "output": {
                            "description": "Output blob path.",
                            "type": "string"
                        },
                        "filePaths": {
                            "description": "Paths to streaming job files. Can be directories.",
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "fileLinkedService": {
                            "description": "Linked service where the files are located",
                            "type": "string"
                        },
                        "combiner": {
                            "description": "Combiner executable name.",
                            "type": "string"
                        },
                        "commandEnvironment": {
                            "description": "Commandline environment values",
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "defines": {
                            "description": "Allows user to specify defines for streaming job request.",
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "additionalProperties": false
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "HDInsightStreaming"
                    ]
                }
            }
        },
        "hdInsightActivityDebugInfoOption": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.HDInsightActivityDebugInfoOption",
            "description": "All available options on how to get the YARN logs for HDInsight activities.",
            "type": "string",
            "enum": [
                "None",
                "Always",
                "Failure"
            ]
        },
        "dotNetActivity": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.DotNetActivity",
            "description": ".NET activity.",
            "type": "object",
            "properties": {
                "typeProperties": {
                    "description": ".NET activity properties.",
                    "type": "object",
                    "required": [
                        "assemblyName",
                        "entryPoint",
                        "packageFile"
                    ],
                    "properties": {
                        "assemblyName": {
                            "description": "Assembly name.",
                            "type": "string"
                        },
                        "entryPoint": {
                            "description": "Entry point.",
                            "type": "string"
                        },
                        "packageLinkedService": {
                            "description": "Package linkedService.",
                            "type": "string"
                        },
                        "packageFile": {
                            "description": "PackageFile.",
                            "type": "string"
                        },
                        "extendedProperties": {
                            "description": "User defined property bag. There is no restriction on the keys or values that can be used. The user specified .NET activity has the full responsibility to consume and interpret the content defined.",
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "additionalProperties": false
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "DotNetActivity"
                    ]
                }
            }
        },
        "sqlServerStoredProcedureActivity": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.SqlServerStoredProcedureActivity",
            "description": "SQL Stored Procedure activity.",
            "type": "object",
            "properties": {
                "typeProperties": {
                    "description": "SQL Stored Procedure activity properties.",
                    "type": "object",
                    "required": [
                        "storedProcedureName"
                    ],
                    "properties": {
                        "storedProcedureName": {
                            "description": "Stored Procedure Name.",
                            "type": "string"
                        },
                        "storedProcedureParameters": {
                            "description": "User specified property bag used in Stored Procedure. There is no restriction on the keys or values that can be used. User needs to consume and interpret the content accordingly in their customized Stored Procedure.",
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "additionalProperties": false
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "SqlServerStoredProcedure"
                    ]
                }
            }
        },
        "azureMLBatchScoringActivity": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.AzureMLBatchScoringActivity",
            "description": "Azure ML Web Service batch scoring activity.",
            "type": "object",
            "properties": {
                "typeProperties": {
                    "description": "Azure ML activity properties.",
                    "type": "object",
                    "properties": {
                        "webServiceParameters": {
                            "description": "Key,Value pairs to be passed to the Azure ML Batch Execution Service Endpoint (these are also referred to as GlobalParameters). Keys must match the names of web service parameters defined in published the Azure ML web service. Values may include ADF macros to be resolved at each slice execution time.",
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "additionalProperties": false
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "AzureMLBatchScoring"
                    ]
                }
            }
        },
        "azureMLBatchExecutionActivity": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.AzureMLBatchExecutionActivity",
            "description": "Azure ML Batch Execution Service activity.",
            "type": "object",
            "properties": {
                "typeProperties": {
                    "properties": {
                        "globalParameters": {
                            "type": "object",
                            "description": "Key,Value pairs to be passed to the Azure ML Batch Execution Service Endpoint Keys must match the names of web service parameters defined in the published Azure ML web service. Values may include ADF functions to be resolved at each slice execution time (See https://msdn.microsoft.com/en-us/library/azure/dn835056.aspx). Values will be passed in the GlobalParameters property of the Azure ML batch execution request.",
                            "additionalProperties": {
                                "type": "string"
                            }
                        },
                        "webServiceOutputs": {
                            "type": "object",
                            "description": "Key,Value pairs mapping the Azure ML endpoint's Web Service Output names to names of ADF Blob datasets where the batch execution output should be written. This information will be passed in the WebServiceOutputs property of the Azure ML batch execution request. Mapped Datasets must be included in the Activity's Outputs.",
                            "additionalProperties": {
                                "type": "string"
                            }
                        },
                        "webServiceInput": {
                            "description": "Name of ADF Blob dataset giving the input to the batch execution. This information will be passed in the WebServiceInput property of the Azure ML batch execution request.",
                            "type": "string"
                        },
                        "webServiceInputs": {
                            "type": "object",
                            "description": "Key,Value pairs mapping the Azure ML endpoint's Web Service Input names to names of ADF Blob datasets from where the batch execution input should be read. This information will be passed in the WebServiceInputs property of the Azure ML batch execution request. Mapped Datasets must be included in the Activity's Inputs.",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "AzureMLBatchExecution"
                    ]
                }
            }
        },
        "azureMLUpdateResourceActivity": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.AzureMLUpdateResourceActivity",
            "description": "Azure ML Update Resource management activity.",
            "type": "object",
            "properties": {
                "typeProperties": {
                    "required": [
                        "trainedModelDatasetName",
                        "trainedModelName"
                    ],
                    "properties": {
                        "trainedModelDatasetName": {
                            "type": "string",
                            "description": "Name of ADF Blob Dataset representing the .ilearner file that will be uploaded by the update operation. The Dataset must be included in this Activity's pipeline Inputs."
                        },
                        "trainedModelName": {
                            "type": "string",
                            "description": "Name of the Trained Model module in the Web Service experiment to be updated."
                        }
                    }
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "AzureMLUpdateResource"
                    ]
                }
            }
        },
        "dataLakeAnalyticsUSQLActivity": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.DataLakeAnalyticsUSQLActivity",
            "description": "Azure Data Lake Analytics U-SQL activity.",
            "type": "object",
            "properties": {
                "typeProperties": {
                    "description": "Data Lake Analytics U-SQL activity properties.",
                    "type": "object",
                    "properties": {
                        "script": {
                            "description": "The U-SQL script. This cannot be used at the same time as ScriptPath and ScriptLinkedService.",
                            "type": "string"
                        },
                        "scriptPath": {
                            "description": "The path to the U-SQL script in the ScriptLinkedService. This needs to be used at the same time as ScriptLinkedService.",
                            "type": "string"
                        },
                        "scriptLinkedService": {
                            "description": "The linked service hosting the U-SQL script. This needs to be used at the same time as ScriptPath.",
                            "type": "string"
                        },
                        "runtimeVersion": {
                            "description": "Runtime version of U-SQL engine to use.",
                            "type": "string"
                        },
                        "compilationMode": {
                            "description": "Compilation mode of U-SQL. Must be one of the USqlCompilationMode",
                            "$ref": "#/definitions/uSqlCompilationMode"
                        },
                        "degreeOfParallelism": {
                            "description": "The maximum number of nodes that will be used simultaneously to run the job.",
                            "type": "integer"
                        },
                        "priority": {
                            "description": "Determines which jobs out of all that are queued should be selected to run first. The lower the number, the higher the priority (minimum is 0).",
                            "type": "integer"
                        },
                        "parameters": {
                            "description": "Allows user to specify parameters for the U-SQL activity.",
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "additionalProperties": false
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "DataLakeAnalyticsU-SQL"
                    ]
                }
            }
        },
        "uSqlCompilationMode": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.USqlCompilationMode",
            "description": "Compilation mode for a U-SQL activity.",
            "type": "string",
            "enum": [
                "Semantic",
                "Full",
                "SingleBox"
            ]
        },
        "pipelineProperties": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.PipelineProperties",
            "description": "Pipeline properties.",
            "type": "object",
            "required": [
                "activities"
            ],
            "properties": {
                "description": {
                    "description": "Item description.",
                    "type": "string"
                },
                "activities": {
                    "description": "Activities that belong to the pipeline.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/baseActivityTypes"
                    }
                },
                "start": {
                    "description": "The start time of the pipeline.",
                    "$ref": "#/definitions/UTC"
                },
                "end": {
                    "description": "The end time of the pipeline.",
                    "$ref": "#/definitions/UTC"
                },
                "isPaused": {
                    "description": "The status of the pipline. Pipeline is paused when boolean is set to true.",
                    "type": "boolean"
                },
                "hubName": {
                    "description": "The name of the Hub that this pipeline belongs to.",
                    "type": "string"
                },
                "pipelineMode": {
                    "description": "The method of scheduling runs for the pipeline. 'Scheduled' indicates that the pipeline will run at a specified time interval according to its active period (start and end time). 'OneTime' indicates that the pipeline will run only once.",
                    "type": "string",
                    "enum": [
                        "Scheduled",
                        "OneTime"
                    ]
                },
                "expirationTime": {
                    "description": "Duration of time after creation for which the pipeline is valid and should remain provisioned. The pipeline will be deleted automatically once it reaches the expiration time if it does not have any active or pending runs.",
                    "type": "string",
                    "pattern": "((\\d+)\\.)?(\\d\\d):(60|([0-5][0-9])):(60|([0-5][0-9]))"
                }
            },
            "additionalProperties": false
        },
        "UTC": {
            "type": "string",
            "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-([012]\\d|3[01])(T((([01]\\d|2[0123]):[0-5]\\d)|(24:00))(:(([0-5]\\d)|60)(\\.\\d{1,}){0,1}){0,1}){0,1}((Z)|([+-]((([01]\\d|2[0123]):[0-5]\\d)|(24:00)))){0,1}){0,1}){0,1}$"
        }
    }
}