{
    "id": "http://datafactories.schema.management.azure.com/schemas/2015-09-01/Microsoft.DataFactory.LinkedService.json",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "Microsoft.Azure.Management.DataFactories.Models.LinkedService",
    "description": "The data factory linkedService.",
    "type": "object",
    "required": [
        "name",
        "properties"
    ],
    "properties": {
        "name": {
            "description": "Data factory linkedService name.",
            "type": "string",
            "maxLength": 260,
            "pattern": "^[A-Za-z0-9_][^<>*#.%&:\\\\+?/]*$"
        },
        "properties": {
            "description": "Data factory linkedService properties.",
            "$ref": "#/definitions/linkedServicePropertiesTypes"
        },
        "$schema": {
            "type": "string"
        }
    },
    "additionalProperties": true,
    "definitions": {
        "linkedServiceProperties": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.LinkedServiceProperties",
            "description": "Data factory linkedService properties.",
            "type": "object",
            "properties": {
                "description": {
                    "description": "Data factory linkedService description.",
                    "type": "string"
                },
                "hubName": {
                    "description": "The name of the Hub that this linked service belongs to.",
                    "type": "string"
                }
            }
        },
        "azureSqlDatabaseLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.AzureSqlDatabaseLinkedService",
            "description": "Windows Azure SQL database.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "AzureSqlDatabase"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object",
                    "required": [
                        "connectionString"
                    ],
                    "properties": {
                        "connectionString": {
                            "description": "The connection string.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "azureSqlDataWarehouseLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.AzureSqlDataWarehouseLinkedService",
            "description": "Azure SQL data warehouse linked service.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "AzureSqlDW"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object",
                    "required": [
                        "connectionString"
                    ],
                    "properties": {
                        "connectionString": {
                            "description": "The connection string.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "linkedServicePropertiesTypes": {
            "type": "object",
            "required": [
                "type",
                "typeProperties"
            ],
            "allOf": [
                {
                    "$ref": "#/definitions/linkedServiceProperties"
                },
                {
                    "oneOf": [
                        {
                            "$ref": "#/definitions/azureSqlDatabaseLinkedService"
                        },
                        {
                            "$ref": "#/definitions/azureSqlDataWarehouseLinkedService"
                        },
                        {
                            "$ref": "#/definitions/azureStorageLinkedService"
                        },
                        {
                            "$ref": "#/definitions/azureStorageSasLinkedService"
                        },
                        {
                            "$ref": "#/definitions/azureSearchLinkedService"
                        },
                        {
                            "$ref": "#/definitions/azureBatchLinkedService"
                        },
                        {
                            "$ref": "#/definitions/documentDbLinkedService"
                        },
                        {
                            "$ref": "#/definitions/hdInsightLinkedService"
                        },
                        {
                            "$ref": "#/definitions/onPremisesFileServerLinkedService"
                        },
                        {
                            "$ref": "#/definitions/onPremisesSqlServerLinkedService"
                        },
                        {
                            "$ref": "#/definitions/onPremisesOracleLinkedService"
                        },
                        {
                            "$ref": "#/definitions/onPremisesMySqlLinkedService"
                        },
                        {
                            "$ref": "#/definitions/onPremisesPostgreSqlLinkedService"
                        },
                        {
                            "$ref": "#/definitions/onPremisesSybaseLinkedService"
                        },
                        {
                            "$ref": "#/definitions/onPremisesTeradataLinkedService"
                        },
                        {
                            "$ref": "#/definitions/onPremisesDb2LinkedService"
                        },
                        {
                            "$ref": "#/definitions/azureMLLinkedService"
                        },
                        {
                            "$ref": "#/definitions/hdInsightOnDemandLinkedService"
                        },
                        {
                            "$ref": "#/definitions/azureDataLakeStoreLinkedService"
                        },
                        {
                            "$ref": "#/definitions/azureDataLakeAnalyticsLinkedService"
                        },
                        {
                            "$ref": "#/definitions/onPremisesOdbcLinkedService"
                        },
                        {
                            "$ref": "#/definitions/hdfsLinkedService"
                        },
                        {
                            "$ref": "#/definitions/oDataLinkedService"
                        },
                        {
                            "$ref": "#/definitions/webLinkedService"
                        },
                        {
                            "$ref": "#/definitions/httpLinkedService"
                        },
                        {
                            "$ref": "#/definitions/onPremisesCassandraLinkedService"
                        },
                        {
                            "$ref": "#/definitions/onPremisesMongoDbLinkedService"
                        },
                        {
                            "$ref": "#/definitions/salesforceLinkedService"
                        },
                        {
                            "$ref": "#/definitions/awsAccessKeyLinkedService"
                        },
                        {
                            "$ref": "#/definitions/amazonRedshiftLinkedService"
                        },
                        {
                            "$ref": "#/definitions/ftpServerLinkedService"
                        },
                        {
                            "$ref": "#/definitions/sftpLinkedService"
                        },
                        {
                            "$ref": "#/definitions/customDataSourceLinkedService"
                        }
                    ]
                }
            ]
        },
        "azureStorageLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.AzureStorageLinkedService",
            "description": "The storage account linkedService.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "AzureStorage"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object",
                    "required": [
                        "connectionString"
                    ],
                    "properties": {
                        "connectionString": {
                            "description": "The connection string.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "azureStorageSasLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.AzureStorageSasLinkedService",
            "description": "Azure Storage SAS URI linked service. This linked service type can be used to provide restricted access to an Azure Storage resource using SAS URI.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "AzureStorageSas"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object",
                    "required": [
                        "sasUri"
                    ],
                    "properties": {
                        "sasUri": {
                            "description": "SAS URI of the Azure Storage resource.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "azureBatchLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.AzureBatchLinkedService",
            "description": "Azure Batch linked service.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "AzureBatch"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object",
                    "required": [
                        "accountName",
                        "accessKey",
                        "batchUri",
                        "poolName",
                        "linkedServiceName"
                    ],
                    "properties": {
                        "accountName": {
                            "description": "The Azure Batch account name.",
                            "type": "string"
                        },
                        "accessKey": {
                            "description": "The Azure Batch account access key.",
                            "type": "string"
                        },
                        "batchUri": {
                            "description": "The Azure Batch Uri.",
                            "type": "string"
                        },
                        "poolName": {
                            "description": "The Azure Batch pool name.",
                            "type": "string"
                        },
                        "linkedServiceName": {
                            "description": "The azure storage linked service name.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "azureSearchLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.AzureSearchLinkedService",
            "description": "Windows Azure Search Service.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "AzureSearch"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object",
                    "required": [
                        "url",
                        "key"
                    ],
                    "properties": {
                        "url": {
                            "description": "URL for Azure Search service.",
                            "type": "string"
                        },
                        "key": {
                            "description": "Admin Key for Azure Search service",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "documentDbLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.DocumentDbLinkedService",
            "description": "Windows Azure Document Database.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "DocumentDb"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object",
                    "required": [
                        "connectionString"
                    ],
                    "properties": {
                        "connectionString": {
                            "description": "The connection string.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "hDInsightSchemaGenerationProperties": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.HDInsightSchemaGenerationProperties",
            "description": "Schema generation options for activities that execute against HDInsight clusters.",
            "type": "object",
            "properties": {
                "type": {
                    "description": "The type of schema",
                    "type": "string"
                },
                "inputPartition": {
                    "description": "Input partition option.",
                    "type": "string"
                },
                "alterSchema": {
                    "description": "Flag to indicate if alter schema should be performed.",
                    "type": "boolean"
                }
            },
            "additionalProperties": false
        },
        "hdInsightLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.HDInsightLinkedService",
            "description": "The properties for the HDInsight linkedService.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "HDInsight"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object",
                    "required": [
                        "clusterUri",
                        "userName",
                        "password"
                    ],
                    "properties": {
                        "clusterUri": {
                            "description": "HDInsight cluster URI.",
                            "type": "string"
                        },
                        "userName": {
                            "description": "HDInsight cluster user name.",
                            "type": "string"
                        },
                        "password": {
                            "description": "HDInsight cluster password.",
                            "type": "string"
                        },
                        "linkedServiceName": {
                            "description": "Storage service name.",
                            "type": "string"
                        },
                        "hcatalogLinkedServiceName": {
                            "description": "The name of Azure SQL linked service that point to the HCatalog database.",
                            "type": "string"
                        },
                        "schemaGeneration": {
                            "description": "Define what options to use for generating/altering table for an input and output tables for an HDInsight activity.",
                            "$ref": "#/definitions/hDInsightSchemaGenerationProperties"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "onPremisesFileServerLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.OnPremisesFileServerLinkedService",
            "description": "An on-premises file system Linked Service.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "OnPremisesFileServer"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object",
                    "required": [
                        "host",
                        "gatewayName"
                    ],
                    "properties": {
                        "host": {
                            "description": "Host name of the server.",
                            "type": "string"
                        },
                        "gatewayName": {
                            "description": "The on-premises gateway name.",
                            "type": "string"
                        },
                        "userId": {
                            "description": "UserID to logon the server.",
                            "type": "string"
                        },
                        "password": {
                            "description": "Password to logon the server.",
                            "type": "string"
                        },
                        "encryptedCredential": {
                            "description": "Encrypted credential which contains host, userId and password.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "onPremisesSqlServerLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.OnPremisesSqlServerLinkedService",
            "description": "An on-premises SQL server database.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "OnPremisesSqlServer"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object",
                    "required": [
                        "connectionString",
                        "gatewayName"
                    ],
                    "properties": {
                        "connectionString": {
                            "description": "The connection string.",
                            "type": "string"
                        },
                        "gatewayName": {
                            "description": "The on-premises gateway name.",
                            "type": "string"
                        },
                        "userName": {
                            "description": "The on-premises Windows authentication user name.",
                            "type": "string"
                        },
                        "password": {
                            "description": "The on-premises Windows authentication password.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "onPremisesOracleLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.OnPremisesOracleLinkedService",
            "description": "An on-premises Oracle database.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "OnPremisesOracle"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object",
                    "required": [
                        "connectionString",
                        "gatewayName"
                    ],
                    "properties": {
                        "driverType": {
                            "description": "The driver type for an on-premises Oracle server.",
                            "type": "string",
                            "enum": [
                                "Microsoft",
                                "ODP"
                            ]
                        },
                        "connectionString": {
                            "description": "The connection string.",
                            "type": "string"
                        },
                        "gatewayName": {
                            "description": "The on-premises HDIS gateway name.",
                            "type": "string"
                        },
                        "userName": {
                            "description": "The on-premises Windows authentication user name.",
                            "type": "string"
                        },
                        "password": {
                            "description": "The on-premises Windows authentication password.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "customDataSourceLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.CustomDataSourceLinkedService",
            "description": "Custom linked service.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "CustomDataSource"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object"
                }
            }
        },
        "azureMLLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.AzureMLLinkedService",
            "description": "Azure ML Web Service linked service.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "AzureML"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object",
                    "required": [
                        "mlEndpoint",
                        "apiKey"
                    ],
                    "properties": {
                        "mlEndpoint": {
                            "description": "The Batch Execution REST URL for an Azure ML Web Service endpoint.",
                            "type": "string"
                        },
                        "apiKey": {
                            "description": "The API key for accessing the Azure ML model endpoint.",
                            "type": "string"
                        },
                        "updateResourceEndpoint": {
                            "description": "The Update Resource REST URL for an Azure ML Web Service endpoint.",
                            "type": "string"
                        },
                        "servicePrincipalId": {
                            "description": "The ID of the service principal used to authenticate against the ARM-based updateResourceEndpoint of an Azure ML web service.",
                            "type": "string"
                        },
                        "servicePrincipalKey": {
                            "description": "The key of the service principal used to authenticate against the ARM-based updateResourceEndpoint of an Azure ML web service.",
                            "type": "string"
                        },
                        "tenant": {
                            "description": "The name or ID of the tenant to which the service principal belongs.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "onPremisesPostgreSqlLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.OnPremisesPostgreSqlLinkedService",
            "description": "Linked Service for PostgreSql data source.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "OnPremisesPostgreSql"
                    ]
                },
                "typeProperties": {
                    "required": [
                        "server",
                        "database",
                        "authenticationType",
                        "gatewayName"
                    ],
                    "properties": {
                        "server": {
                            "description": "Server name for connection.",
                            "type": "string"
                        },
                        "database": {
                            "description": "Database name for connection.",
                            "type": "string"
                        },
                        "schema": {
                            "description": "Schema name for connection.",
                            "type": "string"
                        },
                        "authenticationType": {
                            "description": "AuthenticationType to be used for connection.",
                            "type": "string"
                        },
                        "username": {
                            "description": "Username for authentication.",
                            "type": "string"
                        },
                        "password": {
                            "description": "Password for authentication.",
                            "type": "string"
                        },
                        "gatewayName": {
                            "description": "The on-premises gateway name.",
                            "type": "string"
                        },
                        "encryptedCredential": {
                            "description": "The encryptedCredential for authentication.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "onPremisesMySqlLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.OnPremisesMySqlLinkedService",
            "description": "Linked Service for MySQL data source.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "OnPremisesMySql"
                    ]
                },
                "typeProperties": {
                    "required": [
                        "server",
                        "database",
                        "authenticationType",
                        "gatewayName"
                    ],
                    "properties": {
                        "server": {
                            "description": "Server name for connection.",
                            "type": "string"
                        },
                        "database": {
                            "description": "Database name for connection.",
                            "type": "string"
                        },
                        "schema": {
                            "description": "Schema name for connection.",
                            "type": "string"
                        },
                        "authenticationType": {
                            "description": "AuthenticationType to be used for connection.",
                            "type": "string"
                        },
                        "username": {
                            "description": "Username for authentication.",
                            "type": "string"
                        },
                        "password": {
                            "description": "Password for authentication.",
                            "type": "string"
                        },
                        "gatewayName": {
                            "description": "The on-premises gateway name.",
                            "type": "string"
                        },
                        "encryptedCredential": {
                            "description": "The encryptedCredential for authentication.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "onPremisesTeradataLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.OnPremisesTeradataLinkedService",
            "description": "Linked Service for Teradata data source.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "OnPremisesTeradata"
                    ]
                },
                "typeProperties": {
                    "required": [
                        "server",
                        "authenticationType",
                        "gatewayName"
                    ],
                    "properties": {
                        "server": {
                            "description": "Server name for connection.",
                            "type": "string"
                        },
                        "authenticationType": {
                            "description": "AuthenticationType to be used for connection.",
                            "type": "string"
                        },
                        "username": {
                            "description": "Username for authentication.",
                            "type": "string"
                        },
                        "password": {
                            "description": "Password for authentication.",
                            "type": "string"
                        },
                        "gatewayName": {
                            "description": "The on-premises gateway name.",
                            "type": "string"
                        },
                        "encryptedCredential": {
                            "description": "The encryptedCredential for authentication.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "onPremisesDb2LinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.OnPremisesDb2LinkedService",
            "description": "Linked Service for DB2 data source.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "OnPremisesDb2"
                    ]
                },
                "typeProperties": {
                    "required": [
                        "server",
                        "database",
                        "authenticationType",
                        "gatewayName"
                    ],
                    "properties": {
                        "server": {
                            "description": "Server name for connection.",
                            "type": "string"
                        },
                        "database": {
                            "description": "Database name for connection.",
                            "type": "string"
                        },
                        "schema": {
                            "description": "Schema name for connection.",
                            "type": "string"
                        },
                        "authenticationType": {
                            "description": "AuthenticationType to be used for connection.",
                            "type": "string"
                        },
                        "username": {
                            "description": "Username for authentication.",
                            "type": "string"
                        },
                        "password": {
                            "description": "Password for authentication.",
                            "type": "string"
                        },
                        "gatewayName": {
                            "description": "The on-premises gateway name.",
                            "type": "string"
                        },
                        "encryptedCredential": {
                            "description": "The encryptedCredential for authentication.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "onPremisesSybaseLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.OnPremisesSybaseLinkedService",
            "description": "Linked Service for Sybase data source.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "OnPremisesSybase"
                    ]
                },
                "typeProperties": {
                    "required": [
                        "server",
                        "database",
                        "authenticationType",
                        "gatewayName"
                    ],
                    "properties": {
                        "server": {
                            "description": "Server name for connection.",
                            "type": "string"
                        },
                        "database": {
                            "description": "Database name for connection.",
                            "type": "string"
                        },
                        "schema": {
                            "description": "Schema name for connection.",
                            "type": "string"
                        },
                        "authenticationType": {
                            "description": "AuthenticationType to be used for connection.",
                            "type": "string"
                        },
                        "username": {
                            "description": "Username for authentication.",
                            "type": "string"
                        },
                        "password": {
                            "description": "Password for authentication.",
                            "type": "string"
                        },
                        "gatewayName": {
                            "description": "The on-premises gateway name.",
                            "type": "string"
                        },
                        "encryptedCredential": {
                            "description": "The encryptedCredential for authentication.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "hdInsightOnDemandLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.HDInsightOnDemandLinkedService",
            "description": "The properties for the HDInsight linkedService.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "HDInsightOnDemand"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object",
                    "required": [
                        "clusterSize",
                        "timeToLive",
                        "linkedServiceName"
                    ],
                    "properties": {
                        "version": {
                            "description": "HDInsight version.",
                            "oneOf": [
                                {
                                    "type": "string"
                                },
                                {
                                    "type": "null"
                                }
                            ]
                        },
                        "clusterType": {
                            "description": "Gets or sets the flavor for the HDInsight cluster.",
                            "type": "string"
                        },
                        "clusterSize": {
                            "description": "HDInsight cluster size.",
                            "type": "integer"
                        },
                        "timeToLive": {
                            "description": "Time to live.",
                            "type": "string",
                            "pattern": "((\\d+)\\.)?(\\d\\d):(60|([0-5][0-9])):(60|([0-5][0-9]))"
                        },
                        "linkedServiceName": {
                            "description": "Storage service name.",
                            "type": "string"
                        },
                        "hiveCustomLibrariesContainer": {
                            "description": "The name of the blob container that contains custom jar files for HIVE consumption.",
                            "type": "string"
                        },
                        "coreConfiguration": {
                            "description": "Allows user to override default values for core configuration.",
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        },
                        "hBaseConfiguration": {
                            "description": "Allows user to override default values for HBase configuration.",
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        },
                        "hdfsConfiguration": {
                            "description": "Allows user to override default values for Hdfs configuration.",
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        },
                        "hiveConfiguration": {
                            "description": "Allows user to override default values for HIVE configuration.",
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        },
                        "mapReduceConfiguration": {
                            "description": "Allows user to override default values for mapreduce configuration.",
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        },
                        "oozieConfiguration": {
                            "description": "Allows user to override default values for oozie configuration.",
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        },
                        "stormConfiguration": {
                            "description": "Allows user to override default values for Storm configuration.",
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        },
                        "sparkConfiguration": {
                            "description": "The Spark service configuration of this HDInsight cluster.",
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        },
                        "yarnConfiguration": {
                            "description": "Allows user to override default values for YARN configuration.",
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        },
                        "additionalLinkedServiceNames": {
                            "description": "Specify additional Azure storage accounts that need to be accessible from the cluster.",
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "hcatalogLinkedServiceName": {
                            "description": "The name of Azure SQL linked service that point to the HCatalog database.",
                            "type": "string"
                        },
                        "schemaGeneration": {
                            "description": "Define what options to use for generating/altering table for an input and output tables for an HDInsight activity.",
                            "$ref": "#/definitions/hDInsightSchemaGenerationProperties"
                        },
                        "dataNodeSize": {
                            "description": "Gets or sets the size of the Data Node.",
                            "type": "string"
                        },
                        "headNodeSize": {
                            "description": "Gets or sets the size of the Head Node.",
                            "type": "string"
                        },
                        "zookeeperNodeSize": {
                            "description": "Gets or sets the size of the Zookeeper Node.",
                            "type": "string"
                        },
                        "osType": {
                            "description": "Gets or sets the type of operating system installed on cluster nodes.",
                            "type": "string"
                        },
                        "sshPassword": {
                            "description": "Gets or sets SSH password.",
                            "type": "string"
                        },
                        "sshPublicKey": {
                            "description": "Gets or sets the public key to be used for SSH.",
                            "type": "string"
                        },
                        "sshUserName": {
                            "description": "Gets or sets SSH user name.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "azureDataLakeStoreLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.AzureDataLakeStoreLinkedService",
            "description": "Azure Data Lake Store linked service.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "AzureDataLakeStore"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object",
                    "required": [
                        "dataLakeStoreUri"
                    ],
                    "properties": {
                        "dataLakeStoreUri": {
                            "description": "Data Lake Store service URI.",
                            "type": "string"
                        },
                        "authorization": {
                            "description": "OAuth authorization that may be used by ADF to access resources on your behalf. Each authorization is unique and may only be used once.",
                            "type": "string"
                        },
                        "sessionId": {
                            "description": "OAuth session ID from the oauth authorization session. Each session id is unique and may only be used once.",
                            "type": "string"
                        },
                        "servicePrincipalId": {
                            "description": "The ID of the application used to authenticate against the Azure Data Lake Store account.",
                            "type": "string"
                        },
                        "servicePrincipalKey": {
                            "description": "The Key of the application used to authenticate against the Azure Data Lake Store account.",
                            "type": "string"
                        },
                        "tenant": {
                            "description": "The name or ID of the tenant to which the service principal belongs.",
                            "type": "string"
                        },
                        "accountName": {
                            "description": "Data Lake Store account name.",
                            "type": "string"
                        },
                        "subscriptionId": {
                            "description": "Data Lake Store account subscription ID (if different from Data Factory account).",
                            "type": "string"
                        },
                        "resourceGroupName": {
                            "description": "Data Lake Store account resource group name (if different from Data Factory account).",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "onPremisesCassandraLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.OnPremisesCassandraLinkedService",
            "description": "An on-premises Cassandra database.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "OnPremisesCassandra"
                    ]
                },
                "typeProperties": {
                    "required": [
                        "host",
                        "authenticationType",
                        "gatewayName"
                    ],
                    "properties": {
                        "host": {
                            "description": "One or more IP addresses or host names of the Cassandra server. Specify a comma-separated list of IP addresses and/or host names if attempting to connect to multiple servers. Each server is a replica.",
                            "type": "string"
                        },
                        "port": {
                            "description": "The TCP port number that the Cassandra server uses to listen for client connections. The default value is 9042.",
                            "type": "integer",
                            "minimum": 0
                        },
                        "authenticationType": {
                            "description": "The authentication type to be used to connect to the Cassandra database. Must be Basic or Anonymous.",
                            "type": "string"
                        },
                        "username": {
                            "description": "User name for Basic authentication.",
                            "type": "string"
                        },
                        "password": {
                            "description": "Password for Basic authentication.",
                            "type": "string"
                        },
                        "gatewayName": {
                            "description": "The on-premises gateway name.",
                            "type": "string"
                        },
                        "encryptedCredential": {
                            "description": "The encrypted credential for Basic authentication.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "onPremisesMongoDbLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.OnPremisesMongoDbLinkedService",
            "description": "An on-premises MongoDB database.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "OnPremisesMongoDb"
                    ]
                },
                "typeProperties": {
                    "required": [
                        "server",
                        "authenticationType",
                        "gatewayName",
                        "databaseName"
                    ],
                    "properties": {
                        "server": {
                            "description": "The IP address or server name of the MongoDB server.",
                            "type": "string"
                        },
                        "port": {
                            "description": "The TCP port number that the MongoDB server uses to listen for client connections. The default value is 27017.",
                            "type": "integer",
                            "minimum": 0
                        },
                        "authenticationType": {
                            "description": "The authentication type to be used to connect to the MongoDB database. Must be Basic or Anonymous.",
                            "type": "string",
                            "enum": [
                                "Basic",
                                "Anonymous"
                            ]
                        },
                        "username": {
                            "description": "User name for Basic authentication.",
                            "type": "string"
                        },
                        "password": {
                            "description": "Password for Basic authentication.",
                            "type": "string"
                        },
                        "authSource": {
                            "description": "The name of the MongoDB database that you want to use to check your credentials for authentication.",
                            "type": "string"
                        },
                        "databaseName": {
                            "description": "The name of the MongoDB database that you want to access.",
                            "type": "string"
                        },
                        "gatewayName": {
                            "description": "The on-premises gateway name.",
                            "type": "string"
                        },
                        "encryptedCredential": {
                            "description": "The encrypted credential for Basic authentication.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "azureDataLakeAnalyticsLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.AzureDataLakeAnalyticsLinkedService",
            "description": "Azure Data Lake Analytics linked service.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "AzureDataLakeAnalytics"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object",
                    "required": [
                        "authorization",
                        "sessionId",
                        "accountName"
                    ],
                    "properties": {
                        "authorization": {
                            "description": "OAuth authorization that may be used by ADF to access resources on your behalf. Each authorization is unique and may only be used once.",
                            "type": "string"
                        },
                        "sessionId": {
                            "description": "OAuth session ID from the oauth authorization session. Each session id is unique and may only be used once.",
                            "type": "string"
                        },
                        "dataLakeAnalyticsUri": {
                            "description": "Data Lake Analytics service URI.",
                            "type": "string"
                        },
                        "accountName": {
                            "description": "Data Lake Analytics account name.",
                            "type": "string"
                        },
                        "subscriptionId": {
                            "description": "Data Lake Analytics account subscription ID (if different from Data Factory account).",
                            "type": "string"
                        },
                        "resourceGroupName": {
                            "description": "Data Lake Analytics account resource group name (if different from Data Factory account).",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "webLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.WebLinkedService",
            "description": "Web linked service.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "Web"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object",
                    "required": [
                        "url",
                        "authenticationType"
                    ],
                    "properties": {
                        "url": {
                            "description": "The URL of the web service endpoint, e.g. http://www.microsoft.com.",
                            "type": "string"
                        },
                        "authenticationType": {
                            "description": "Type of authentication used to connect to the web table source. Possible values are: Anonymous and Basic.",
                            "type": "string",
                            "enum": [
                                "Basic",
                                "Anonymous"
                            ]
                        },
                        "username": {
                            "description": "User name for Basic authentication.",
                            "type": "string"
                        },
                        "password": {
                            "description": "Password for Basic authentication.",
                            "type": "string"
                        },
                        "apiKey": {
                            "description": "Deprecated. WebApi-based authentication is no longer supported.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "httpLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.HttpLinkedService",
            "description": "Linked service for an HTTP source.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "Http"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object",
                    "required": [
                        "url",
                        "authenticationType"
                    ],
                    "properties": {
                        "url": {
                            "description": "The base URL of the HTTP endpoint, e.g. http://www.microsoft.com.",
                            "type": "string"
                        },
                        "authenticationType": {
                            "description": "The authentication type to be used to connect to the HTTP server.",
                            "type": "string",
                            "enum": [
                                "Basic",
                                "Anonymous",
                                "Digest",
                                "Windows",
                                "ClientCertificate"
                            ]
                        },
                        "username": {
                            "description": "User name for Basic, Digest, or Windows authentication.",
                            "type": "string"
                        },
                        "password": {
                            "description": "Password for Basic, Digest, Windows, or ClientCertificate with EmbeddedCertData authentication.",
                            "type": "string",
                            "secureString": true
                        },
                        "embeddedCertData": {
                            "description": "Base64 encoded certificate data for ClientCertificate authentication. For on-premises copy with ClientCertificate authentication, either CertThumbprint or EmbeddedCertData/Password should be specified.",
                            "type": "string"
                        },
                        "certThumbprint": {
                            "description": "Thumbprint of certificate for ClientCertificate authentication. Only valid for on-premises copy. For on-premises copy with ClientCertificate authentication, either CertThumbprint or EmbeddedCertData/Password should be specified.",
                            "type": "string"
                        },
                        "encryptedCredential": {
                            "description": "The encrypted credential for Basic, Digest, Windows or ClientCertificate authentication.",
                            "type": "string"
                        },
                        "gatewayName": {
                            "description": "The on-premises gateway name.",
                            "type": "string"
                        },
                        "enableServerCertificateValidation": {
                            "description": "If true, validate the HTTPS server SSL certificate. Default value is true.",
                            "type": "boolean"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "hdfsLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.HdfsLinkedService",
            "description": "Hadoop Distributed File System (HDFS) Linked Service.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "Hdfs"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object",
                    "required": [
                        "url",
                        "authenticationType",
                        "gatewayName"
                    ],
                    "properties": {
                        "url": {
                            "description": "The URL of the HDFS service endpoint, e.g. http://myhostname:50070/webhdfs/v1.",
                            "type": "string"
                        },
                        "authenticationType": {
                            "description": "Type of authentication used to connect to the HDFS. Possible values are: Anonymous, and Windows.",
                            "type": "string"
                        },
                        "gatewayName": {
                            "description": "The on-premises gateway name.",
                            "type": "string"
                        },
                        "encryptedCredential": {
                            "description": "The encrypted credential for Windows authentication.",
                            "type": "string"
                        },
                        "userName": {
                            "description": "User name for Windows authentication.",
                            "type": "string"
                        },
                        "password": {
                            "description": "Password for Windows authentication.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "onPremisesOdbcLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.OnPremisesOdbcLinkedService",
            "description": "On-premises Open Database Connectivity (ODBC) Linked Service.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "OnPremisesOdbc"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object",
                    "required": [
                        "connectionString",
                        "authenticationType",
                        "gatewayName"
                    ],
                    "properties": {
                        "authenticationType": {
                            "description": "Type of authentication used to connect to the ODBC data store. Possible values are: Anonymous and Basic.",
                            "type": "string"
                        },
                        "gatewayName": {
                            "description": "The on-premises gateway name.",
                            "type": "string"
                        },
                        "connectionString": {
                            "description": "The non-access credential portion of the connection string as well as an optional encrypted credential.",
                            "type": "string"
                        },
                        "credential": {
                            "description": "The access credential portion of the connection string specified in driver-specific property-value format.",
                            "type": "string"
                        },
                        "userName": {
                            "description": "User name for Basic authentication.",
                            "type": "string"
                        },
                        "password": {
                            "description": "Password for Basic authentication.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "oDataLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.ODataLinkedService",
            "description": "Open Data Protocol (OData) linked service.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "OData"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object",
                    "required": [
                        "url",
                        "authenticationType"
                    ],
                    "properties": {
                        "url": {
                            "description": "The URL of the OData service endpoint.",
                            "type": "string"
                        },
                        "authenticationType": {
                            "description": "Type of authentication used to connect to the OData service.",
                            "$ref": "#/definitions/oDataAuthenticationType"
                        },
                        "username": {
                            "description": "User name of the OData service.",
                            "type": "string"
                        },
                        "password": {
                            "description": "Password of the OData service.",
                            "type": "string"
                        },
                        "gatewayName": {
                            "description": "The on-premises gateway name for Windows authentication.",
                            "type": "string"
                        },
                        "encryptedCredential": {
                            "description": "The encrypted credential for Windows authentication.",
                            "type": "string"
                        },
                        "authorizedCredential": {
                            "description": "The OAuth authorized credential that may be used by ADF to access resources on your behalf. Each authorization is unique and may only be used once.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "oDataAuthenticationType": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.ODataAuthenticationType",
            "description": "Available authentication types for ODataLinkedService.",
            "type": "string",
            "enum": [
                "Basic",
                "Anonymous",
                "Windows",
                "OAuth"
            ]
        },
        "salesforceLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.SalesforceLinkedService",
            "description": "Linked Service for Salesforce connector.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "Salesforce"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object",
                    "required": [
                        "username",
                        "password",
                        "securityToken"
                    ],
                    "properties": {
                        "username": {
                            "description": "The username for Basic authentication of the Salesforce source.",
                            "type": "string"
                        },
                        "password": {
                            "description": "The password for Basic authentication of the Salesforce source.",
                            "type": "string"
                        },
                        "securityToken": {
                            "description": "The security token is required to access Salesforce.",
                            "type": "string"
                        },
                        "environmentUrl": {
                            "description": "The Salesforce login URL. To connect to the Salesforce sandbox environment, use 'test.salesforce.com'.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "awsAccessKeyLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.AwsAccessKeyLinkedService",
            "description": "An access key-based Amazon Web Services (AWS) linked service.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "AwsAccessKey"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object",
                    "required": [
                        "accessKeyId",
                        "secretAccessKey"
                    ],
                    "properties": {
                        "accessKeyId": {
                            "description": "The IAM access key ID.",
                            "type": "string"
                        },
                        "secretAccessKey": {
                            "description": "The IAM secret access key.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "amazonRedshiftLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.AmazonRedshiftLinkedService",
            "description": "Linked Service for Amazon Redshift connector.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "AmazonRedshift"
                    ]
                },
                "typeProperties": {
                    "description": "Properties specific to this linked service type.",
                    "type": "object",
                    "required": [
                        "server",
                        "username",
                        "password",
                        "database"
                    ],
                    "properties": {
                        "server": {
                            "description": "The name of the Amazon Redshift server.",
                            "type": "string"
                        },
                        "port": {
                            "description": "The TCP port number that the Amazon Redshift server uses to listen for client connections.",
                            "type": "integer",
                            "default": 5439
                        },
                        "username": {
                            "description": "The username of the Amazon Redshift server.",
                            "type": "string"
                        },
                        "password": {
                            "description": "The password of the Amazon Redshift server.",
                            "type": "string"
                        },
                        "database": {
                            "description": "The database name of the Amazon Redshift server.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "ftpServerLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.FtpServerLinkedService",
            "description": "A FTP server Linked Service.",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "FtpServer"
                    ]
                },
                "typeProperties": {
                    "required": [
                        "host",
                        "authenticationType"
                    ],
                    "properties": {
                        "host": {
                            "description": "Host name of the FTP server.",
                            "type": "string"
                        },
                        "port": {
                            "description": "The TCP port number that the FTP server uses to listen for client connections. Default value is 21.",
                            "type": "integer",
                            "minimum": 0
                        },
                        "authenticationType": {
                            "description": "The authentication type to be used to connect to the FTP server.",
                            "type": "string",
                            "enum": [
                                "Basic",
                                "Anonymous"
                            ]
                        },
                        "username": {
                            "description": "Username to logon the FTP server.",
                            "type": "string"
                        },
                        "password": {
                            "description": "Password to logon the FTP server.",
                            "type": "string"
                        },
                        "gatewayName": {
                            "description": "The on-premises gateway name.",
                            "type": "string"
                        },
                        "encryptedCredential": {
                            "description": "The encrypted credential for Basic authentication.",
                            "type": "string"
                        },
                        "enableSsl": {
                            "description": "If true, connect to the FTP server over SSL/TLS channel. Default value is true.",
                            "type": "boolean"
                        },
                        "enableServerCertificateValidation": {
                            "description": "If true, validate the FTP server SSL certificate when connect over SSL/TLS channel. Default value is true.",
                            "type": "boolean"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "sftpLinkedService": {
            "title": "Microsoft.Azure.Management.DataFactories.Models.SftpLinkedService",
            "description": "A linked service for an SSH File Transfer Protocol (SFTP) server. ",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "Sftp"
                    ]
                },
                "typeProperties": {
                    "required": [
                        "host",
                        "authenticationType"
                    ],
                    "properties": {
                        "host": {
                            "description": "The SFTP server host name.",
                            "type": "string"
                        },
                        "port": {
                            "description": "The TCP port number that the SFTP server uses to listen for client connections.",
                            "type": "integer",
                            "minimum": 0,
                            "default": 22
                        },
                        "authenticationType": {
                            "description": "The authentication type to be used to connect to the SFTP server.",
                            "type": "string",
                            "enum": [
                                "Basic",
                                "SshPublicKey"
                            ]
                        },
                        "username": {
                            "description": "The username used to log on to the SFTP server.",
                            "type": "string"
                        },
                        "password": {
                            "description": "Password to logon the SFTP server for Basic authentication.",
                            "type": "string"
                        },
                        "privateKeyPath": {
                            "description": "The SSH private key file path for SshPublicKey authentication. Only valid for on-premises copy. For on-premises copy with SshPublicKey authentication, either PrivateKeyPath or PrivateKeyContent should be specified. SSH private key should be OpenSSH format.",
                            "type": "string"
                        },
                        "privateKeyContent": {
                            "description": "Base64 encoded SSH private key content for SshPublicKey authentication. For on-premises copy with SshPublicKey authentication, either PrivateKeyPath or PrivateKeyContent should be specified. SSH private key should be OpenSSH format.",
                            "type": "string"
                        },
                        "passPhrase": {
                            "description": "The password to decrypt the SSH private key if the SSH private key is encrypted.",
                            "type": "string"
                        },
                        "skipHostKeyValidation": {
                            "description": "If true, skip the SSH host key validation. Default value is false.",
                            "type": "boolean"
                        },
                        "hostKeyFingerprint": {
                            "description": "The host key finger-print of the SFTP server. When SkipHostKeyValidation is false, HostKeyFingerprint should be specified.",
                            "type": "string"
                        },
                        "gatewayName": {
                            "description": "The on-premises gateway name.",
                            "type": "string"
                        },
                        "encryptedCredential": {
                            "description": "The encrypted credential for Basic or SshPublicKey authentication.",
                            "type": "string"
                        }
                    },
                    "additionalProperties": false
                }
            }
        }
    }
}