# coding=utf-8
# *** WARNING: this file was generated by the Pulumi SDK Generator. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities
from . import outputs
from ._enums import *

__all__ = [
    'ActivityDependencyResponse',
    'ActivityPolicyResponse',
    'AmazonMWSLinkedServiceResponse',
    'AmazonMWSObjectDatasetResponse',
    'AmazonMWSSourceResponse',
    'AmazonRdsForOracleLinkedServiceResponse',
    'AmazonRdsForOraclePartitionSettingsResponse',
    'AmazonRdsForOracleSourceResponse',
    'AmazonRdsForOracleTableDatasetResponse',
    'AmazonRdsForSqlServerLinkedServiceResponse',
    'AmazonRdsForSqlServerSourceResponse',
    'AmazonRdsForSqlServerTableDatasetResponse',
    'AmazonRedshiftLinkedServiceResponse',
    'AmazonRedshiftSourceResponse',
    'AmazonRedshiftTableDatasetResponse',
    'AmazonS3CompatibleLinkedServiceResponse',
    'AmazonS3CompatibleLocationResponse',
    'AmazonS3CompatibleReadSettingsResponse',
    'AmazonS3DatasetResponse',
    'AmazonS3LinkedServiceResponse',
    'AmazonS3LocationResponse',
    'AmazonS3ReadSettingsResponse',
    'AppendVariableActivityResponse',
    'ArmIdWrapperResponse',
    'AvroDatasetResponse',
    'AvroFormatResponse',
    'AvroSinkResponse',
    'AvroSourceResponse',
    'AvroWriteSettingsResponse',
    'AzPowerShellSetupResponse',
    'AzureBatchLinkedServiceResponse',
    'AzureBlobDatasetResponse',
    'AzureBlobFSDatasetResponse',
    'AzureBlobFSLinkedServiceResponse',
    'AzureBlobFSLocationResponse',
    'AzureBlobFSReadSettingsResponse',
    'AzureBlobFSSinkResponse',
    'AzureBlobFSSourceResponse',
    'AzureBlobFSWriteSettingsResponse',
    'AzureBlobStorageLinkedServiceResponse',
    'AzureBlobStorageLocationResponse',
    'AzureBlobStorageReadSettingsResponse',
    'AzureBlobStorageWriteSettingsResponse',
    'AzureDataExplorerCommandActivityResponse',
    'AzureDataExplorerLinkedServiceResponse',
    'AzureDataExplorerSinkResponse',
    'AzureDataExplorerSourceResponse',
    'AzureDataExplorerTableDatasetResponse',
    'AzureDataLakeAnalyticsLinkedServiceResponse',
    'AzureDataLakeStoreDatasetResponse',
    'AzureDataLakeStoreLinkedServiceResponse',
    'AzureDataLakeStoreLocationResponse',
    'AzureDataLakeStoreReadSettingsResponse',
    'AzureDataLakeStoreSinkResponse',
    'AzureDataLakeStoreSourceResponse',
    'AzureDataLakeStoreWriteSettingsResponse',
    'AzureDatabricksDeltaLakeDatasetResponse',
    'AzureDatabricksDeltaLakeExportCommandResponse',
    'AzureDatabricksDeltaLakeImportCommandResponse',
    'AzureDatabricksDeltaLakeLinkedServiceResponse',
    'AzureDatabricksDeltaLakeSinkResponse',
    'AzureDatabricksDeltaLakeSourceResponse',
    'AzureDatabricksLinkedServiceResponse',
    'AzureFileStorageLinkedServiceResponse',
    'AzureFileStorageLocationResponse',
    'AzureFileStorageReadSettingsResponse',
    'AzureFileStorageWriteSettingsResponse',
    'AzureFunctionActivityResponse',
    'AzureFunctionLinkedServiceResponse',
    'AzureKeyVaultLinkedServiceResponse',
    'AzureKeyVaultSecretReferenceResponse',
    'AzureMLBatchExecutionActivityResponse',
    'AzureMLExecutePipelineActivityResponse',
    'AzureMLLinkedServiceResponse',
    'AzureMLServiceLinkedServiceResponse',
    'AzureMLUpdateResourceActivityResponse',
    'AzureMLWebServiceFileResponse',
    'AzureMariaDBLinkedServiceResponse',
    'AzureMariaDBSourceResponse',
    'AzureMariaDBTableDatasetResponse',
    'AzureMySqlLinkedServiceResponse',
    'AzureMySqlSinkResponse',
    'AzureMySqlSourceResponse',
    'AzureMySqlTableDatasetResponse',
    'AzurePostgreSqlLinkedServiceResponse',
    'AzurePostgreSqlSinkResponse',
    'AzurePostgreSqlSourceResponse',
    'AzurePostgreSqlTableDatasetResponse',
    'AzureQueueSinkResponse',
    'AzureSearchIndexDatasetResponse',
    'AzureSearchIndexSinkResponse',
    'AzureSearchLinkedServiceResponse',
    'AzureSqlDWLinkedServiceResponse',
    'AzureSqlDWTableDatasetResponse',
    'AzureSqlDatabaseLinkedServiceResponse',
    'AzureSqlMILinkedServiceResponse',
    'AzureSqlMITableDatasetResponse',
    'AzureSqlSinkResponse',
    'AzureSqlSourceResponse',
    'AzureSqlTableDatasetResponse',
    'AzureStorageLinkedServiceResponse',
    'AzureTableDatasetResponse',
    'AzureTableSinkResponse',
    'AzureTableSourceResponse',
    'AzureTableStorageLinkedServiceResponse',
    'BinaryDatasetResponse',
    'BinaryReadSettingsResponse',
    'BinarySinkResponse',
    'BinarySourceResponse',
    'BlobEventsTriggerResponse',
    'BlobSinkResponse',
    'BlobSourceResponse',
    'BlobTriggerResponse',
    'CMKIdentityDefinitionResponse',
    'CassandraLinkedServiceResponse',
    'CassandraSourceResponse',
    'CassandraTableDatasetResponse',
    'ChainingTriggerResponse',
    'CmdkeySetupResponse',
    'CommonDataServiceForAppsEntityDatasetResponse',
    'CommonDataServiceForAppsLinkedServiceResponse',
    'CommonDataServiceForAppsSinkResponse',
    'CommonDataServiceForAppsSourceResponse',
    'ComponentSetupResponse',
    'ConcurLinkedServiceResponse',
    'ConcurObjectDatasetResponse',
    'ConcurSourceResponse',
    'ConnectionStatePropertiesResponse',
    'ControlActivityResponse',
    'CopyActivityLogSettingsResponse',
    'CopyActivityResponse',
    'CosmosDbLinkedServiceResponse',
    'CosmosDbMongoDbApiCollectionDatasetResponse',
    'CosmosDbMongoDbApiLinkedServiceResponse',
    'CosmosDbMongoDbApiSinkResponse',
    'CosmosDbMongoDbApiSourceResponse',
    'CosmosDbSqlApiCollectionDatasetResponse',
    'CosmosDbSqlApiSinkResponse',
    'CosmosDbSqlApiSourceResponse',
    'CouchbaseLinkedServiceResponse',
    'CouchbaseSourceResponse',
    'CouchbaseTableDatasetResponse',
    'CredentialReferenceResponse',
    'CustomActivityReferenceObjectResponse',
    'CustomActivityResponse',
    'CustomDataSourceLinkedServiceResponse',
    'CustomDatasetResponse',
    'CustomEventsTriggerResponse',
    'DWCopyCommandDefaultValueResponse',
    'DWCopyCommandSettingsResponse',
    'DataFlowReferenceResponse',
    'DataFlowResponseFolder',
    'DataFlowSinkResponse',
    'DataFlowSourceResponse',
    'DataFlowStagingInfoResponse',
    'DataLakeAnalyticsUSQLActivityResponse',
    'DatabricksNotebookActivityResponse',
    'DatabricksSparkJarActivityResponse',
    'DatabricksSparkPythonActivityResponse',
    'DatasetCompressionResponse',
    'DatasetReferenceResponse',
    'DatasetResponseFolder',
    'Db2LinkedServiceResponse',
    'Db2SourceResponse',
    'Db2TableDatasetResponse',
    'DeleteActivityResponse',
    'DelimitedTextDatasetResponse',
    'DelimitedTextReadSettingsResponse',
    'DelimitedTextSinkResponse',
    'DelimitedTextSourceResponse',
    'DelimitedTextWriteSettingsResponse',
    'DistcpSettingsResponse',
    'DocumentDbCollectionDatasetResponse',
    'DocumentDbCollectionSinkResponse',
    'DocumentDbCollectionSourceResponse',
    'DrillLinkedServiceResponse',
    'DrillSourceResponse',
    'DrillTableDatasetResponse',
    'DynamicsAXLinkedServiceResponse',
    'DynamicsAXResourceDatasetResponse',
    'DynamicsAXSourceResponse',
    'DynamicsCrmEntityDatasetResponse',
    'DynamicsCrmLinkedServiceResponse',
    'DynamicsCrmSinkResponse',
    'DynamicsCrmSourceResponse',
    'DynamicsEntityDatasetResponse',
    'DynamicsLinkedServiceResponse',
    'DynamicsSinkResponse',
    'DynamicsSourceResponse',
    'EloquaLinkedServiceResponse',
    'EloquaObjectDatasetResponse',
    'EloquaSourceResponse',
    'EncryptionConfigurationResponse',
    'EntityReferenceResponse',
    'EnvironmentVariableSetupResponse',
    'ExcelDatasetResponse',
    'ExcelSourceResponse',
    'ExecuteDataFlowActivityResponse',
    'ExecuteDataFlowActivityTypePropertiesResponseCompute',
    'ExecutePipelineActivityResponse',
    'ExecuteSSISPackageActivityResponse',
    'ExecuteWranglingDataflowActivityResponse',
    'ExecutionActivityResponse',
    'ExpressionResponse',
    'FactoryGitHubConfigurationResponse',
    'FactoryIdentityResponse',
    'FactoryVSTSConfigurationResponse',
    'FailActivityResponse',
    'FileServerLinkedServiceResponse',
    'FileServerLocationResponse',
    'FileServerReadSettingsResponse',
    'FileServerWriteSettingsResponse',
    'FileShareDatasetResponse',
    'FileSystemSinkResponse',
    'FileSystemSourceResponse',
    'FilterActivityResponse',
    'FlowletResponse',
    'ForEachActivityResponse',
    'FtpReadSettingsResponse',
    'FtpServerLinkedServiceResponse',
    'FtpServerLocationResponse',
    'GetMetadataActivityResponse',
    'GitHubClientSecretResponse',
    'GlobalParameterSpecificationResponse',
    'GoogleAdWordsLinkedServiceResponse',
    'GoogleAdWordsObjectDatasetResponse',
    'GoogleAdWordsSourceResponse',
    'GoogleBigQueryLinkedServiceResponse',
    'GoogleBigQueryObjectDatasetResponse',
    'GoogleBigQuerySourceResponse',
    'GoogleCloudStorageLinkedServiceResponse',
    'GoogleCloudStorageLocationResponse',
    'GoogleCloudStorageReadSettingsResponse',
    'GreenplumLinkedServiceResponse',
    'GreenplumSourceResponse',
    'GreenplumTableDatasetResponse',
    'HBaseLinkedServiceResponse',
    'HBaseObjectDatasetResponse',
    'HBaseSourceResponse',
    'HDInsightHiveActivityResponse',
    'HDInsightLinkedServiceResponse',
    'HDInsightMapReduceActivityResponse',
    'HDInsightOnDemandLinkedServiceResponse',
    'HDInsightPigActivityResponse',
    'HDInsightSparkActivityResponse',
    'HDInsightStreamingActivityResponse',
    'HdfsLinkedServiceResponse',
    'HdfsLocationResponse',
    'HdfsReadSettingsResponse',
    'HdfsSourceResponse',
    'HiveLinkedServiceResponse',
    'HiveObjectDatasetResponse',
    'HiveSourceResponse',
    'HttpDatasetResponse',
    'HttpLinkedServiceResponse',
    'HttpReadSettingsResponse',
    'HttpServerLocationResponse',
    'HttpSourceResponse',
    'HubspotLinkedServiceResponse',
    'HubspotObjectDatasetResponse',
    'HubspotSourceResponse',
    'IfConditionActivityResponse',
    'ImpalaLinkedServiceResponse',
    'ImpalaObjectDatasetResponse',
    'ImpalaSourceResponse',
    'InformixLinkedServiceResponse',
    'InformixSinkResponse',
    'InformixSourceResponse',
    'InformixTableDatasetResponse',
    'IntegrationRuntimeComputePropertiesResponse',
    'IntegrationRuntimeCustomSetupScriptPropertiesResponse',
    'IntegrationRuntimeCustomerVirtualNetworkResponse',
    'IntegrationRuntimeDataFlowPropertiesResponse',
    'IntegrationRuntimeDataProxyPropertiesResponse',
    'IntegrationRuntimeReferenceResponse',
    'IntegrationRuntimeSsisCatalogInfoResponse',
    'IntegrationRuntimeSsisPropertiesResponse',
    'IntegrationRuntimeVNetPropertiesResponse',
    'JiraLinkedServiceResponse',
    'JiraObjectDatasetResponse',
    'JiraSourceResponse',
    'JsonDatasetResponse',
    'JsonFormatResponse',
    'JsonReadSettingsResponse',
    'JsonSinkResponse',
    'JsonSourceResponse',
    'JsonWriteSettingsResponse',
    'LinkedIntegrationRuntimeKeyAuthorizationResponse',
    'LinkedIntegrationRuntimeRbacAuthorizationResponse',
    'LinkedIntegrationRuntimeResponse',
    'LinkedServiceReferenceResponse',
    'LogLocationSettingsResponse',
    'LogSettingsResponse',
    'LogStorageSettingsResponse',
    'LookupActivityResponse',
    'MagentoLinkedServiceResponse',
    'MagentoObjectDatasetResponse',
    'MagentoSourceResponse',
    'ManagedIntegrationRuntimeErrorResponse',
    'ManagedIntegrationRuntimeNodeResponse',
    'ManagedIntegrationRuntimeOperationResultResponse',
    'ManagedIntegrationRuntimeResponse',
    'ManagedIntegrationRuntimeStatusResponse',
    'ManagedPrivateEndpointResponse',
    'ManagedVirtualNetworkReferenceResponse',
    'MappingDataFlowResponse',
    'MariaDBLinkedServiceResponse',
    'MariaDBSourceResponse',
    'MariaDBTableDatasetResponse',
    'MarketoLinkedServiceResponse',
    'MarketoObjectDatasetResponse',
    'MarketoSourceResponse',
    'MetadataItemResponse',
    'MicrosoftAccessLinkedServiceResponse',
    'MicrosoftAccessSinkResponse',
    'MicrosoftAccessSourceResponse',
    'MicrosoftAccessTableDatasetResponse',
    'MongoDbAtlasCollectionDatasetResponse',
    'MongoDbAtlasLinkedServiceResponse',
    'MongoDbAtlasSinkResponse',
    'MongoDbAtlasSourceResponse',
    'MongoDbCollectionDatasetResponse',
    'MongoDbCursorMethodsPropertiesResponse',
    'MongoDbLinkedServiceResponse',
    'MongoDbSourceResponse',
    'MongoDbV2CollectionDatasetResponse',
    'MongoDbV2LinkedServiceResponse',
    'MongoDbV2SinkResponse',
    'MongoDbV2SourceResponse',
    'MultiplePipelineTriggerResponse',
    'MySqlLinkedServiceResponse',
    'MySqlSourceResponse',
    'MySqlTableDatasetResponse',
    'NetezzaLinkedServiceResponse',
    'NetezzaPartitionSettingsResponse',
    'NetezzaSourceResponse',
    'NetezzaTableDatasetResponse',
    'ODataLinkedServiceResponse',
    'ODataResourceDatasetResponse',
    'ODataSourceResponse',
    'OdbcLinkedServiceResponse',
    'OdbcSinkResponse',
    'OdbcSourceResponse',
    'OdbcTableDatasetResponse',
    'Office365DatasetResponse',
    'Office365LinkedServiceResponse',
    'Office365SourceResponse',
    'OracleCloudStorageLinkedServiceResponse',
    'OracleCloudStorageLocationResponse',
    'OracleCloudStorageReadSettingsResponse',
    'OracleLinkedServiceResponse',
    'OraclePartitionSettingsResponse',
    'OracleServiceCloudLinkedServiceResponse',
    'OracleServiceCloudObjectDatasetResponse',
    'OracleServiceCloudSourceResponse',
    'OracleSinkResponse',
    'OracleSourceResponse',
    'OracleTableDatasetResponse',
    'OrcDatasetResponse',
    'OrcFormatResponse',
    'OrcSinkResponse',
    'OrcSourceResponse',
    'OrcWriteSettingsResponse',
    'PackageStoreResponse',
    'ParameterSpecificationResponse',
    'ParquetDatasetResponse',
    'ParquetFormatResponse',
    'ParquetSinkResponse',
    'ParquetSourceResponse',
    'ParquetWriteSettingsResponse',
    'PaypalLinkedServiceResponse',
    'PaypalObjectDatasetResponse',
    'PaypalSourceResponse',
    'PhoenixLinkedServiceResponse',
    'PhoenixObjectDatasetResponse',
    'PhoenixSourceResponse',
    'PipelineElapsedTimeMetricPolicyResponse',
    'PipelinePolicyResponse',
    'PipelineReferenceResponse',
    'PipelineResponseFolder',
    'PolybaseSettingsResponse',
    'PostgreSqlLinkedServiceResponse',
    'PostgreSqlSourceResponse',
    'PostgreSqlTableDatasetResponse',
    'PowerQuerySinkMappingResponse',
    'PowerQuerySinkResponse',
    'PowerQuerySourceResponse',
    'PrestoLinkedServiceResponse',
    'PrestoObjectDatasetResponse',
    'PrestoSourceResponse',
    'PrivateLinkConnectionStateResponse',
    'QuickBooksLinkedServiceResponse',
    'QuickBooksObjectDatasetResponse',
    'QuickBooksSourceResponse',
    'QuickbaseLinkedServiceResponse',
    'RecurrenceScheduleOccurrenceResponse',
    'RecurrenceScheduleResponse',
    'RedirectIncompatibleRowSettingsResponse',
    'RedshiftUnloadSettingsResponse',
    'RelationalSourceResponse',
    'RelationalTableDatasetResponse',
    'RemotePrivateEndpointConnectionResponse',
    'RerunTumblingWindowTriggerResponse',
    'ResponsysLinkedServiceResponse',
    'ResponsysObjectDatasetResponse',
    'ResponsysSourceResponse',
    'RestResourceDatasetResponse',
    'RestServiceLinkedServiceResponse',
    'RestSinkResponse',
    'RestSourceResponse',
    'RetryPolicyResponse',
    'SSISAccessCredentialResponse',
    'SSISChildPackageResponse',
    'SSISExecutionCredentialResponse',
    'SSISExecutionParameterResponse',
    'SSISLogLocationResponse',
    'SSISPackageLocationResponse',
    'SSISPropertyOverrideResponse',
    'SalesforceLinkedServiceResponse',
    'SalesforceMarketingCloudLinkedServiceResponse',
    'SalesforceMarketingCloudObjectDatasetResponse',
    'SalesforceMarketingCloudSourceResponse',
    'SalesforceObjectDatasetResponse',
    'SalesforceServiceCloudLinkedServiceResponse',
    'SalesforceServiceCloudObjectDatasetResponse',
    'SalesforceServiceCloudSinkResponse',
    'SalesforceServiceCloudSourceResponse',
    'SalesforceSinkResponse',
    'SalesforceSourceResponse',
    'SapBWLinkedServiceResponse',
    'SapBwCubeDatasetResponse',
    'SapBwSourceResponse',
    'SapCloudForCustomerLinkedServiceResponse',
    'SapCloudForCustomerResourceDatasetResponse',
    'SapCloudForCustomerSinkResponse',
    'SapCloudForCustomerSourceResponse',
    'SapEccLinkedServiceResponse',
    'SapEccResourceDatasetResponse',
    'SapEccSourceResponse',
    'SapHanaLinkedServiceResponse',
    'SapHanaPartitionSettingsResponse',
    'SapHanaSourceResponse',
    'SapHanaTableDatasetResponse',
    'SapOpenHubLinkedServiceResponse',
    'SapOpenHubSourceResponse',
    'SapOpenHubTableDatasetResponse',
    'SapTableLinkedServiceResponse',
    'SapTablePartitionSettingsResponse',
    'SapTableResourceDatasetResponse',
    'SapTableSourceResponse',
    'ScheduleTriggerRecurrenceResponse',
    'ScheduleTriggerResponse',
    'ScriptActionResponse',
    'ScriptActivityParameterResponse',
    'ScriptActivityResponse',
    'ScriptActivityScriptBlockResponse',
    'ScriptActivityTypePropertiesResponseLogSettings',
    'SecureStringResponse',
    'SelfDependencyTumblingWindowTriggerReferenceResponse',
    'SelfHostedIntegrationRuntimeNodeResponse',
    'SelfHostedIntegrationRuntimeResponse',
    'SelfHostedIntegrationRuntimeStatusResponse',
    'ServiceNowLinkedServiceResponse',
    'ServiceNowObjectDatasetResponse',
    'ServiceNowSourceResponse',
    'SetVariableActivityResponse',
    'SftpLocationResponse',
    'SftpReadSettingsResponse',
    'SftpServerLinkedServiceResponse',
    'SftpWriteSettingsResponse',
    'SharePointOnlineListLinkedServiceResponse',
    'SharePointOnlineListResourceDatasetResponse',
    'SharePointOnlineListSourceResponse',
    'ShopifyLinkedServiceResponse',
    'ShopifyObjectDatasetResponse',
    'ShopifySourceResponse',
    'SkipErrorFileResponse',
    'SmartsheetLinkedServiceResponse',
    'SnowflakeDatasetResponse',
    'SnowflakeExportCopyCommandResponse',
    'SnowflakeImportCopyCommandResponse',
    'SnowflakeLinkedServiceResponse',
    'SnowflakeSinkResponse',
    'SnowflakeSourceResponse',
    'SparkLinkedServiceResponse',
    'SparkObjectDatasetResponse',
    'SparkSourceResponse',
    'SqlAlwaysEncryptedPropertiesResponse',
    'SqlDWSinkResponse',
    'SqlDWSourceResponse',
    'SqlDWUpsertSettingsResponse',
    'SqlMISinkResponse',
    'SqlMISourceResponse',
    'SqlPartitionSettingsResponse',
    'SqlServerLinkedServiceResponse',
    'SqlServerSinkResponse',
    'SqlServerSourceResponse',
    'SqlServerStoredProcedureActivityResponse',
    'SqlServerTableDatasetResponse',
    'SqlSinkResponse',
    'SqlSourceResponse',
    'SqlUpsertSettingsResponse',
    'SquareLinkedServiceResponse',
    'SquareObjectDatasetResponse',
    'SquareSourceResponse',
    'SsisEnvironmentReferenceResponse',
    'SsisEnvironmentResponse',
    'SsisFolderResponse',
    'SsisPackageResponse',
    'SsisParameterResponse',
    'SsisProjectResponse',
    'SsisVariableResponse',
    'StagingSettingsResponse',
    'StoredProcedureParameterResponse',
    'SwitchActivityResponse',
    'SwitchCaseResponse',
    'SybaseLinkedServiceResponse',
    'SybaseSourceResponse',
    'SybaseTableDatasetResponse',
    'TabularSourceResponse',
    'TarGZipReadSettingsResponse',
    'TarReadSettingsResponse',
    'TeamDeskLinkedServiceResponse',
    'TeradataLinkedServiceResponse',
    'TeradataPartitionSettingsResponse',
    'TeradataSourceResponse',
    'TeradataTableDatasetResponse',
    'TextFormatResponse',
    'TransformationResponse',
    'TriggerDependencyReferenceResponse',
    'TriggerPipelineReferenceResponse',
    'TriggerReferenceResponse',
    'TumblingWindowTriggerDependencyReferenceResponse',
    'TumblingWindowTriggerResponse',
    'UntilActivityResponse',
    'UserAccessPolicyResponse',
    'UserPropertyResponse',
    'ValidationActivityResponse',
    'VariableSpecificationResponse',
    'VerticaLinkedServiceResponse',
    'VerticaSourceResponse',
    'VerticaTableDatasetResponse',
    'WaitActivityResponse',
    'WebActivityAuthenticationResponse',
    'WebActivityResponse',
    'WebAnonymousAuthenticationResponse',
    'WebBasicAuthenticationResponse',
    'WebClientCertificateAuthenticationResponse',
    'WebHookActivityResponse',
    'WebLinkedServiceResponse',
    'WebSourceResponse',
    'WebTableDatasetResponse',
    'WranglingDataFlowResponse',
    'XeroLinkedServiceResponse',
    'XeroObjectDatasetResponse',
    'XeroSourceResponse',
    'XmlDatasetResponse',
    'XmlReadSettingsResponse',
    'XmlSourceResponse',
    'ZendeskLinkedServiceResponse',
    'ZipDeflateReadSettingsResponse',
    'ZohoLinkedServiceResponse',
    'ZohoObjectDatasetResponse',
    'ZohoSourceResponse',
]

@pulumi.output_type
class ActivityDependencyResponse(dict):
    """
    Activity dependency information.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dependencyConditions":
            suggest = "dependency_conditions"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ActivityDependencyResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ActivityDependencyResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ActivityDependencyResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 activity: str,
                 dependency_conditions: Sequence[str]):
        """
        Activity dependency information.
        :param str activity: Activity name.
        :param Sequence[str] dependency_conditions: Match-Condition for the dependency.
        """
        pulumi.set(__self__, "activity", activity)
        pulumi.set(__self__, "dependency_conditions", dependency_conditions)

    @property
    @pulumi.getter
    def activity(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "activity")

    @property
    @pulumi.getter(name="dependencyConditions")
    def dependency_conditions(self) -> Sequence[str]:
        """
        Match-Condition for the dependency.
        """
        return pulumi.get(self, "dependency_conditions")


@pulumi.output_type
class ActivityPolicyResponse(dict):
    """
    Execution policy for an activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "retryIntervalInSeconds":
            suggest = "retry_interval_in_seconds"
        elif key == "secureInput":
            suggest = "secure_input"
        elif key == "secureOutput":
            suggest = "secure_output"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ActivityPolicyResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ActivityPolicyResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ActivityPolicyResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 retry: Optional[Any] = None,
                 retry_interval_in_seconds: Optional[int] = None,
                 secure_input: Optional[bool] = None,
                 secure_output: Optional[bool] = None,
                 timeout: Optional[Any] = None):
        """
        Execution policy for an activity.
        :param Any retry: Maximum ordinary retry attempts. Default is 0. Type: integer (or Expression with resultType integer), minimum: 0.
        :param int retry_interval_in_seconds: Interval between each retry attempt (in seconds). The default is 30 sec.
        :param bool secure_input: When set to true, Input from activity is considered as secure and will not be logged to monitoring.
        :param bool secure_output: When set to true, Output from activity is considered as secure and will not be logged to monitoring.
        :param Any timeout: Specifies the timeout for the activity to run. The default timeout is 7 days. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if retry_interval_in_seconds is not None:
            pulumi.set(__self__, "retry_interval_in_seconds", retry_interval_in_seconds)
        if secure_input is not None:
            pulumi.set(__self__, "secure_input", secure_input)
        if secure_output is not None:
            pulumi.set(__self__, "secure_output", secure_output)
        if timeout is not None:
            pulumi.set(__self__, "timeout", timeout)

    @property
    @pulumi.getter
    def retry(self) -> Optional[Any]:
        """
        Maximum ordinary retry attempts. Default is 0. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "retry")

    @property
    @pulumi.getter(name="retryIntervalInSeconds")
    def retry_interval_in_seconds(self) -> Optional[int]:
        """
        Interval between each retry attempt (in seconds). The default is 30 sec.
        """
        return pulumi.get(self, "retry_interval_in_seconds")

    @property
    @pulumi.getter(name="secureInput")
    def secure_input(self) -> Optional[bool]:
        """
        When set to true, Input from activity is considered as secure and will not be logged to monitoring.
        """
        return pulumi.get(self, "secure_input")

    @property
    @pulumi.getter(name="secureOutput")
    def secure_output(self) -> Optional[bool]:
        """
        When set to true, Output from activity is considered as secure and will not be logged to monitoring.
        """
        return pulumi.get(self, "secure_output")

    @property
    @pulumi.getter
    def timeout(self) -> Optional[Any]:
        """
        Specifies the timeout for the activity to run. The default timeout is 7 days. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "timeout")


@pulumi.output_type
class AmazonMWSLinkedServiceResponse(dict):
    """
    Amazon Marketplace Web Service linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accessKeyId":
            suggest = "access_key_id"
        elif key == "marketplaceID":
            suggest = "marketplace_id"
        elif key == "sellerID":
            suggest = "seller_id"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "mwsAuthToken":
            suggest = "mws_auth_token"
        elif key == "secretKey":
            suggest = "secret_key"
        elif key == "useEncryptedEndpoints":
            suggest = "use_encrypted_endpoints"
        elif key == "useHostVerification":
            suggest = "use_host_verification"
        elif key == "usePeerVerification":
            suggest = "use_peer_verification"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AmazonMWSLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AmazonMWSLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AmazonMWSLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 access_key_id: Any,
                 endpoint: Any,
                 marketplace_id: Any,
                 seller_id: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 mws_auth_token: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 secret_key: Optional[Any] = None,
                 use_encrypted_endpoints: Optional[Any] = None,
                 use_host_verification: Optional[Any] = None,
                 use_peer_verification: Optional[Any] = None):
        """
        Amazon Marketplace Web Service linked service.
        :param Any access_key_id: The access key id used to access data.
        :param Any endpoint: The endpoint of the Amazon MWS server, (i.e. mws.amazonservices.com)
        :param Any marketplace_id: The Amazon Marketplace ID you want to retrieve data from. To retrieve data from multiple Marketplace IDs, separate them with a comma (,). (i.e. A2EUQ1WTGCTBG2)
        :param Any seller_id: The Amazon seller ID.
        :param str type: Type of linked service.
               Expected value is 'AmazonMWS'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] mws_auth_token: The Amazon MWS authentication token.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] secret_key: The secret key used to access data.
        :param Any use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        :param Any use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        :param Any use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        pulumi.set(__self__, "access_key_id", access_key_id)
        pulumi.set(__self__, "endpoint", endpoint)
        pulumi.set(__self__, "marketplace_id", marketplace_id)
        pulumi.set(__self__, "seller_id", seller_id)
        pulumi.set(__self__, "type", 'AmazonMWS')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if mws_auth_token is not None:
            pulumi.set(__self__, "mws_auth_token", mws_auth_token)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if secret_key is not None:
            pulumi.set(__self__, "secret_key", secret_key)
        if use_encrypted_endpoints is not None:
            pulumi.set(__self__, "use_encrypted_endpoints", use_encrypted_endpoints)
        if use_host_verification is not None:
            pulumi.set(__self__, "use_host_verification", use_host_verification)
        if use_peer_verification is not None:
            pulumi.set(__self__, "use_peer_verification", use_peer_verification)

    @property
    @pulumi.getter(name="accessKeyId")
    def access_key_id(self) -> Any:
        """
        The access key id used to access data.
        """
        return pulumi.get(self, "access_key_id")

    @property
    @pulumi.getter
    def endpoint(self) -> Any:
        """
        The endpoint of the Amazon MWS server, (i.e. mws.amazonservices.com)
        """
        return pulumi.get(self, "endpoint")

    @property
    @pulumi.getter(name="marketplaceID")
    def marketplace_id(self) -> Any:
        """
        The Amazon Marketplace ID you want to retrieve data from. To retrieve data from multiple Marketplace IDs, separate them with a comma (,). (i.e. A2EUQ1WTGCTBG2)
        """
        return pulumi.get(self, "marketplace_id")

    @property
    @pulumi.getter(name="sellerID")
    def seller_id(self) -> Any:
        """
        The Amazon seller ID.
        """
        return pulumi.get(self, "seller_id")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AmazonMWS'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter(name="mwsAuthToken")
    def mws_auth_token(self) -> Optional[Any]:
        """
        The Amazon MWS authentication token.
        """
        return pulumi.get(self, "mws_auth_token")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="secretKey")
    def secret_key(self) -> Optional[Any]:
        """
        The secret key used to access data.
        """
        return pulumi.get(self, "secret_key")

    @property
    @pulumi.getter(name="useEncryptedEndpoints")
    def use_encrypted_endpoints(self) -> Optional[Any]:
        """
        Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        """
        return pulumi.get(self, "use_encrypted_endpoints")

    @property
    @pulumi.getter(name="useHostVerification")
    def use_host_verification(self) -> Optional[Any]:
        """
        Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_host_verification")

    @property
    @pulumi.getter(name="usePeerVerification")
    def use_peer_verification(self) -> Optional[Any]:
        """
        Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_peer_verification")


@pulumi.output_type
class AmazonMWSObjectDatasetResponse(dict):
    """
    Amazon Marketplace Web Service dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AmazonMWSObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AmazonMWSObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AmazonMWSObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Amazon Marketplace Web Service dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'AmazonMWSObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'AmazonMWSObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'AmazonMWSObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class AmazonMWSSourceResponse(dict):
    """
    A copy activity Amazon Marketplace Web Service source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AmazonMWSSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AmazonMWSSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AmazonMWSSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Amazon Marketplace Web Service source.
        :param str type: Copy source type.
               Expected value is 'AmazonMWSSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'AmazonMWSSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'AmazonMWSSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class AmazonRdsForOracleLinkedServiceResponse(dict):
    """
    AmazonRdsForOracle database.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectionString":
            suggest = "connection_string"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AmazonRdsForOracleLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AmazonRdsForOracleLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AmazonRdsForOracleLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 connection_string: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None):
        """
        AmazonRdsForOracle database.
        :param Any connection_string: The connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str type: Type of linked service.
               Expected value is 'AmazonRdsForOracle'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The Azure key vault secret reference of password in connection string.
        """
        pulumi.set(__self__, "connection_string", connection_string)
        pulumi.set(__self__, "type", 'AmazonRdsForOracle')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Any:
        """
        The connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AmazonRdsForOracle'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        The Azure key vault secret reference of password in connection string.
        """
        return pulumi.get(self, "password")


@pulumi.output_type
class AmazonRdsForOraclePartitionSettingsResponse(dict):
    """
    The settings that will be leveraged for AmazonRdsForOracle source partitioning.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "partitionColumnName":
            suggest = "partition_column_name"
        elif key == "partitionLowerBound":
            suggest = "partition_lower_bound"
        elif key == "partitionNames":
            suggest = "partition_names"
        elif key == "partitionUpperBound":
            suggest = "partition_upper_bound"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AmazonRdsForOraclePartitionSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AmazonRdsForOraclePartitionSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AmazonRdsForOraclePartitionSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 partition_column_name: Optional[Any] = None,
                 partition_lower_bound: Optional[Any] = None,
                 partition_names: Optional[Sequence[Any]] = None,
                 partition_upper_bound: Optional[Any] = None):
        """
        The settings that will be leveraged for AmazonRdsForOracle source partitioning.
        :param Any partition_column_name: The name of the column in integer type that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        :param Any partition_lower_bound: The minimum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        :param Sequence[Any] partition_names: Names of the physical partitions of AmazonRdsForOracle table. 
        :param Any partition_upper_bound: The maximum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        """
        if partition_column_name is not None:
            pulumi.set(__self__, "partition_column_name", partition_column_name)
        if partition_lower_bound is not None:
            pulumi.set(__self__, "partition_lower_bound", partition_lower_bound)
        if partition_names is not None:
            pulumi.set(__self__, "partition_names", partition_names)
        if partition_upper_bound is not None:
            pulumi.set(__self__, "partition_upper_bound", partition_upper_bound)

    @property
    @pulumi.getter(name="partitionColumnName")
    def partition_column_name(self) -> Optional[Any]:
        """
        The name of the column in integer type that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_column_name")

    @property
    @pulumi.getter(name="partitionLowerBound")
    def partition_lower_bound(self) -> Optional[Any]:
        """
        The minimum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_lower_bound")

    @property
    @pulumi.getter(name="partitionNames")
    def partition_names(self) -> Optional[Sequence[Any]]:
        """
        Names of the physical partitions of AmazonRdsForOracle table. 
        """
        return pulumi.get(self, "partition_names")

    @property
    @pulumi.getter(name="partitionUpperBound")
    def partition_upper_bound(self) -> Optional[Any]:
        """
        The maximum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_upper_bound")


@pulumi.output_type
class AmazonRdsForOracleSourceResponse(dict):
    """
    A copy activity AmazonRdsForOracle source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "oracleReaderQuery":
            suggest = "oracle_reader_query"
        elif key == "partitionOption":
            suggest = "partition_option"
        elif key == "partitionSettings":
            suggest = "partition_settings"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AmazonRdsForOracleSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AmazonRdsForOracleSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AmazonRdsForOracleSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 oracle_reader_query: Optional[Any] = None,
                 partition_option: Optional[Any] = None,
                 partition_settings: Optional['outputs.AmazonRdsForOraclePartitionSettingsResponse'] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity AmazonRdsForOracle source.
        :param str type: Copy source type.
               Expected value is 'AmazonRdsForOracleSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any oracle_reader_query: AmazonRdsForOracle reader query. Type: string (or Expression with resultType string).
        :param Any partition_option: The partition mechanism that will be used for AmazonRdsForOracle read in parallel. Type: string (or Expression with resultType string).
        :param 'AmazonRdsForOraclePartitionSettingsResponse' partition_settings: The settings that will be leveraged for AmazonRdsForOracle source partitioning.
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'AmazonRdsForOracleSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if oracle_reader_query is not None:
            pulumi.set(__self__, "oracle_reader_query", oracle_reader_query)
        if partition_option is not None:
            pulumi.set(__self__, "partition_option", partition_option)
        if partition_settings is not None:
            pulumi.set(__self__, "partition_settings", partition_settings)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'AmazonRdsForOracleSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="oracleReaderQuery")
    def oracle_reader_query(self) -> Optional[Any]:
        """
        AmazonRdsForOracle reader query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "oracle_reader_query")

    @property
    @pulumi.getter(name="partitionOption")
    def partition_option(self) -> Optional[Any]:
        """
        The partition mechanism that will be used for AmazonRdsForOracle read in parallel. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_option")

    @property
    @pulumi.getter(name="partitionSettings")
    def partition_settings(self) -> Optional['outputs.AmazonRdsForOraclePartitionSettingsResponse']:
        """
        The settings that will be leveraged for AmazonRdsForOracle source partitioning.
        """
        return pulumi.get(self, "partition_settings")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class AmazonRdsForOracleTableDatasetResponse(dict):
    """
    The AmazonRdsForOracle database dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AmazonRdsForOracleTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AmazonRdsForOracleTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AmazonRdsForOracleTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None):
        """
        The AmazonRdsForOracle database dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'AmazonRdsForOracleTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The table name of the AmazonRdsForOracle database. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'AmazonRdsForOracleTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'AmazonRdsForOracleTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The table name of the AmazonRdsForOracle database. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")


@pulumi.output_type
class AmazonRdsForSqlServerLinkedServiceResponse(dict):
    """
    Amazon RDS for SQL Server linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectionString":
            suggest = "connection_string"
        elif key == "alwaysEncryptedSettings":
            suggest = "always_encrypted_settings"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "userName":
            suggest = "user_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AmazonRdsForSqlServerLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AmazonRdsForSqlServerLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AmazonRdsForSqlServerLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 connection_string: Any,
                 type: str,
                 always_encrypted_settings: Optional['outputs.SqlAlwaysEncryptedPropertiesResponse'] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 user_name: Optional[Any] = None):
        """
        Amazon RDS for SQL Server linked service.
        :param Any connection_string: The connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str type: Type of linked service.
               Expected value is 'AmazonRdsForSqlServer'.
        :param 'SqlAlwaysEncryptedPropertiesResponse' always_encrypted_settings: Sql always encrypted properties.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The on-premises Windows authentication password.
        :param Any user_name: The on-premises Windows authentication user name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "connection_string", connection_string)
        pulumi.set(__self__, "type", 'AmazonRdsForSqlServer')
        if always_encrypted_settings is not None:
            pulumi.set(__self__, "always_encrypted_settings", always_encrypted_settings)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if user_name is not None:
            pulumi.set(__self__, "user_name", user_name)

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Any:
        """
        The connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AmazonRdsForSqlServer'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="alwaysEncryptedSettings")
    def always_encrypted_settings(self) -> Optional['outputs.SqlAlwaysEncryptedPropertiesResponse']:
        """
        Sql always encrypted properties.
        """
        return pulumi.get(self, "always_encrypted_settings")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        The on-premises Windows authentication password.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="userName")
    def user_name(self) -> Optional[Any]:
        """
        The on-premises Windows authentication user name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "user_name")


@pulumi.output_type
class AmazonRdsForSqlServerSourceResponse(dict):
    """
    A copy activity Amazon RDS for SQL Server source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "partitionOption":
            suggest = "partition_option"
        elif key == "partitionSettings":
            suggest = "partition_settings"
        elif key == "produceAdditionalTypes":
            suggest = "produce_additional_types"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"
        elif key == "sqlReaderQuery":
            suggest = "sql_reader_query"
        elif key == "sqlReaderStoredProcedureName":
            suggest = "sql_reader_stored_procedure_name"
        elif key == "storedProcedureParameters":
            suggest = "stored_procedure_parameters"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AmazonRdsForSqlServerSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AmazonRdsForSqlServerSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AmazonRdsForSqlServerSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 partition_option: Optional[Any] = None,
                 partition_settings: Optional['outputs.SqlPartitionSettingsResponse'] = None,
                 produce_additional_types: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None,
                 sql_reader_query: Optional[Any] = None,
                 sql_reader_stored_procedure_name: Optional[Any] = None,
                 stored_procedure_parameters: Optional[Mapping[str, 'outputs.StoredProcedureParameterResponse']] = None):
        """
        A copy activity Amazon RDS for SQL Server source.
        :param str type: Copy source type.
               Expected value is 'AmazonRdsForSqlServerSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any partition_option: The partition mechanism that will be used for Sql read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange".
        :param 'SqlPartitionSettingsResponse' partition_settings: The settings that will be leveraged for Sql source partitioning.
        :param Any produce_additional_types: Which additional types to produce.
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any sql_reader_query: SQL reader query. Type: string (or Expression with resultType string).
        :param Any sql_reader_stored_procedure_name: Name of the stored procedure for a SQL Database source. This cannot be used at the same time as SqlReaderQuery. Type: string (or Expression with resultType string).
        :param Mapping[str, 'StoredProcedureParameterResponse'] stored_procedure_parameters: Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}".
        """
        pulumi.set(__self__, "type", 'AmazonRdsForSqlServerSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if partition_option is not None:
            pulumi.set(__self__, "partition_option", partition_option)
        if partition_settings is not None:
            pulumi.set(__self__, "partition_settings", partition_settings)
        if produce_additional_types is not None:
            pulumi.set(__self__, "produce_additional_types", produce_additional_types)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)
        if sql_reader_query is not None:
            pulumi.set(__self__, "sql_reader_query", sql_reader_query)
        if sql_reader_stored_procedure_name is not None:
            pulumi.set(__self__, "sql_reader_stored_procedure_name", sql_reader_stored_procedure_name)
        if stored_procedure_parameters is not None:
            pulumi.set(__self__, "stored_procedure_parameters", stored_procedure_parameters)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'AmazonRdsForSqlServerSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="partitionOption")
    def partition_option(self) -> Optional[Any]:
        """
        The partition mechanism that will be used for Sql read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange".
        """
        return pulumi.get(self, "partition_option")

    @property
    @pulumi.getter(name="partitionSettings")
    def partition_settings(self) -> Optional['outputs.SqlPartitionSettingsResponse']:
        """
        The settings that will be leveraged for Sql source partitioning.
        """
        return pulumi.get(self, "partition_settings")

    @property
    @pulumi.getter(name="produceAdditionalTypes")
    def produce_additional_types(self) -> Optional[Any]:
        """
        Which additional types to produce.
        """
        return pulumi.get(self, "produce_additional_types")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")

    @property
    @pulumi.getter(name="sqlReaderQuery")
    def sql_reader_query(self) -> Optional[Any]:
        """
        SQL reader query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sql_reader_query")

    @property
    @pulumi.getter(name="sqlReaderStoredProcedureName")
    def sql_reader_stored_procedure_name(self) -> Optional[Any]:
        """
        Name of the stored procedure for a SQL Database source. This cannot be used at the same time as SqlReaderQuery. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sql_reader_stored_procedure_name")

    @property
    @pulumi.getter(name="storedProcedureParameters")
    def stored_procedure_parameters(self) -> Optional[Mapping[str, 'outputs.StoredProcedureParameterResponse']]:
        """
        Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}".
        """
        return pulumi.get(self, "stored_procedure_parameters")


@pulumi.output_type
class AmazonRdsForSqlServerTableDatasetResponse(dict):
    """
    The Amazon RDS for SQL Server dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AmazonRdsForSqlServerTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AmazonRdsForSqlServerTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AmazonRdsForSqlServerTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None):
        """
        The Amazon RDS for SQL Server dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'AmazonRdsForSqlServerTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The table name of the SQL Server dataset. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'AmazonRdsForSqlServerTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'AmazonRdsForSqlServerTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The table name of the SQL Server dataset. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")


@pulumi.output_type
class AmazonRedshiftLinkedServiceResponse(dict):
    """
    Linked service for Amazon Redshift.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AmazonRedshiftLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AmazonRedshiftLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AmazonRedshiftLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 database: Any,
                 server: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 port: Optional[Any] = None,
                 username: Optional[Any] = None):
        """
        Linked service for Amazon Redshift.
        :param Any database: The database name of the Amazon Redshift source. Type: string (or Expression with resultType string).
        :param Any server: The name of the Amazon Redshift server. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'AmazonRedshift'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The password of the Amazon Redshift source.
        :param Any port: The TCP port number that the Amazon Redshift server uses to listen for client connections. The default value is 5439. Type: integer (or Expression with resultType integer).
        :param Any username: The username of the Amazon Redshift source. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "database", database)
        pulumi.set(__self__, "server", server)
        pulumi.set(__self__, "type", 'AmazonRedshift')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter
    def database(self) -> Any:
        """
        The database name of the Amazon Redshift source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "database")

    @property
    @pulumi.getter
    def server(self) -> Any:
        """
        The name of the Amazon Redshift server. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "server")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AmazonRedshift'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        The password of the Amazon Redshift source.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def port(self) -> Optional[Any]:
        """
        The TCP port number that the Amazon Redshift server uses to listen for client connections. The default value is 5439. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "port")

    @property
    @pulumi.getter
    def username(self) -> Optional[Any]:
        """
        The username of the Amazon Redshift source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "username")


@pulumi.output_type
class AmazonRedshiftSourceResponse(dict):
    """
    A copy activity source for Amazon Redshift Source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "redshiftUnloadSettings":
            suggest = "redshift_unload_settings"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AmazonRedshiftSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AmazonRedshiftSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AmazonRedshiftSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 redshift_unload_settings: Optional['outputs.RedshiftUnloadSettingsResponse'] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for Amazon Redshift Source.
        :param str type: Copy source type.
               Expected value is 'AmazonRedshiftSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: Database query. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param 'RedshiftUnloadSettingsResponse' redshift_unload_settings: The Amazon S3 settings needed for the interim Amazon S3 when copying from Amazon Redshift with unload. With this, data from Amazon Redshift source will be unloaded into S3 first and then copied into the targeted sink from the interim S3.
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'AmazonRedshiftSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if redshift_unload_settings is not None:
            pulumi.set(__self__, "redshift_unload_settings", redshift_unload_settings)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'AmazonRedshiftSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        Database query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="redshiftUnloadSettings")
    def redshift_unload_settings(self) -> Optional['outputs.RedshiftUnloadSettingsResponse']:
        """
        The Amazon S3 settings needed for the interim Amazon S3 when copying from Amazon Redshift with unload. With this, data from Amazon Redshift source will be unloaded into S3 first and then copied into the targeted sink from the interim S3.
        """
        return pulumi.get(self, "redshift_unload_settings")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class AmazonRedshiftTableDatasetResponse(dict):
    """
    The Amazon Redshift table dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AmazonRedshiftTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AmazonRedshiftTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AmazonRedshiftTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        The Amazon Redshift table dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'AmazonRedshiftTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The Amazon Redshift table name. Type: string (or Expression with resultType string).
        :param Any table_name: This property will be retired. Please consider using schema + table properties instead.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'AmazonRedshiftTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'AmazonRedshiftTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The Amazon Redshift table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        This property will be retired. Please consider using schema + table properties instead.
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class AmazonS3CompatibleLinkedServiceResponse(dict):
    """
    Linked service for Amazon S3 Compatible.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accessKeyId":
            suggest = "access_key_id"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "forcePathStyle":
            suggest = "force_path_style"
        elif key == "secretAccessKey":
            suggest = "secret_access_key"
        elif key == "serviceUrl":
            suggest = "service_url"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AmazonS3CompatibleLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AmazonS3CompatibleLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AmazonS3CompatibleLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 access_key_id: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 force_path_style: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 secret_access_key: Optional[Any] = None,
                 service_url: Optional[Any] = None):
        """
        Linked service for Amazon S3 Compatible.
        :param str type: Type of linked service.
               Expected value is 'AmazonS3Compatible'.
        :param Any access_key_id: The access key identifier of the Amazon S3 Compatible Identity and Access Management (IAM) user. Type: string (or Expression with resultType string).
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Any force_path_style: If true, use S3 path-style access instead of virtual hosted-style access. Default value is false. Type: boolean (or Expression with resultType boolean).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] secret_access_key: The secret access key of the Amazon S3 Compatible Identity and Access Management (IAM) user.
        :param Any service_url: This value specifies the endpoint to access with the Amazon S3 Compatible Connector. This is an optional property; change it only if you want to try a different service endpoint or want to switch between https and http. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'AmazonS3Compatible')
        if access_key_id is not None:
            pulumi.set(__self__, "access_key_id", access_key_id)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if force_path_style is not None:
            pulumi.set(__self__, "force_path_style", force_path_style)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if secret_access_key is not None:
            pulumi.set(__self__, "secret_access_key", secret_access_key)
        if service_url is not None:
            pulumi.set(__self__, "service_url", service_url)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AmazonS3Compatible'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="accessKeyId")
    def access_key_id(self) -> Optional[Any]:
        """
        The access key identifier of the Amazon S3 Compatible Identity and Access Management (IAM) user. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "access_key_id")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter(name="forcePathStyle")
    def force_path_style(self) -> Optional[Any]:
        """
        If true, use S3 path-style access instead of virtual hosted-style access. Default value is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "force_path_style")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="secretAccessKey")
    def secret_access_key(self) -> Optional[Any]:
        """
        The secret access key of the Amazon S3 Compatible Identity and Access Management (IAM) user.
        """
        return pulumi.get(self, "secret_access_key")

    @property
    @pulumi.getter(name="serviceUrl")
    def service_url(self) -> Optional[Any]:
        """
        This value specifies the endpoint to access with the Amazon S3 Compatible Connector. This is an optional property; change it only if you want to try a different service endpoint or want to switch between https and http. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_url")


@pulumi.output_type
class AmazonS3CompatibleLocationResponse(dict):
    """
    The location of Amazon S3 Compatible dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "bucketName":
            suggest = "bucket_name"
        elif key == "fileName":
            suggest = "file_name"
        elif key == "folderPath":
            suggest = "folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AmazonS3CompatibleLocationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AmazonS3CompatibleLocationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AmazonS3CompatibleLocationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 bucket_name: Optional[Any] = None,
                 file_name: Optional[Any] = None,
                 folder_path: Optional[Any] = None,
                 version: Optional[Any] = None):
        """
        The location of Amazon S3 Compatible dataset.
        :param str type: Type of dataset storage location.
               Expected value is 'AmazonS3CompatibleLocation'.
        :param Any bucket_name: Specify the bucketName of Amazon S3 Compatible. Type: string (or Expression with resultType string)
        :param Any file_name: Specify the file name of dataset. Type: string (or Expression with resultType string).
        :param Any folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string)
        :param Any version: Specify the version of Amazon S3 Compatible. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'AmazonS3CompatibleLocation')
        if bucket_name is not None:
            pulumi.set(__self__, "bucket_name", bucket_name)
        if file_name is not None:
            pulumi.set(__self__, "file_name", file_name)
        if folder_path is not None:
            pulumi.set(__self__, "folder_path", folder_path)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset storage location.
        Expected value is 'AmazonS3CompatibleLocation'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="bucketName")
    def bucket_name(self) -> Optional[Any]:
        """
        Specify the bucketName of Amazon S3 Compatible. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "bucket_name")

    @property
    @pulumi.getter(name="fileName")
    def file_name(self) -> Optional[Any]:
        """
        Specify the file name of dataset. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_name")

    @property
    @pulumi.getter(name="folderPath")
    def folder_path(self) -> Optional[Any]:
        """
        Specify the folder path of dataset. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "folder_path")

    @property
    @pulumi.getter
    def version(self) -> Optional[Any]:
        """
        Specify the version of Amazon S3 Compatible. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "version")


@pulumi.output_type
class AmazonS3CompatibleReadSettingsResponse(dict):
    """
    Amazon S3 Compatible read settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deleteFilesAfterCompletion":
            suggest = "delete_files_after_completion"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "enablePartitionDiscovery":
            suggest = "enable_partition_discovery"
        elif key == "fileListPath":
            suggest = "file_list_path"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "modifiedDatetimeEnd":
            suggest = "modified_datetime_end"
        elif key == "modifiedDatetimeStart":
            suggest = "modified_datetime_start"
        elif key == "partitionRootPath":
            suggest = "partition_root_path"
        elif key == "wildcardFileName":
            suggest = "wildcard_file_name"
        elif key == "wildcardFolderPath":
            suggest = "wildcard_folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AmazonS3CompatibleReadSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AmazonS3CompatibleReadSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AmazonS3CompatibleReadSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 delete_files_after_completion: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 enable_partition_discovery: Optional[bool] = None,
                 file_list_path: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 modified_datetime_end: Optional[Any] = None,
                 modified_datetime_start: Optional[Any] = None,
                 partition_root_path: Optional[Any] = None,
                 prefix: Optional[Any] = None,
                 recursive: Optional[Any] = None,
                 wildcard_file_name: Optional[Any] = None,
                 wildcard_folder_path: Optional[Any] = None):
        """
        Amazon S3 Compatible read settings.
        :param str type: The read setting type.
               Expected value is 'AmazonS3CompatibleReadSettings'.
        :param Any delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param bool enable_partition_discovery: Indicates whether to enable partition discovery.
        :param Any file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string).
        :param Any modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string).
        :param Any partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        :param Any prefix: The prefix filter for the S3 Compatible object name. Type: string (or Expression with resultType string).
        :param Any recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        :param Any wildcard_file_name: Amazon S3 Compatible wildcardFileName. Type: string (or Expression with resultType string).
        :param Any wildcard_folder_path: Amazon S3 Compatible wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'AmazonS3CompatibleReadSettings')
        if delete_files_after_completion is not None:
            pulumi.set(__self__, "delete_files_after_completion", delete_files_after_completion)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if enable_partition_discovery is not None:
            pulumi.set(__self__, "enable_partition_discovery", enable_partition_discovery)
        if file_list_path is not None:
            pulumi.set(__self__, "file_list_path", file_list_path)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if modified_datetime_end is not None:
            pulumi.set(__self__, "modified_datetime_end", modified_datetime_end)
        if modified_datetime_start is not None:
            pulumi.set(__self__, "modified_datetime_start", modified_datetime_start)
        if partition_root_path is not None:
            pulumi.set(__self__, "partition_root_path", partition_root_path)
        if prefix is not None:
            pulumi.set(__self__, "prefix", prefix)
        if recursive is not None:
            pulumi.set(__self__, "recursive", recursive)
        if wildcard_file_name is not None:
            pulumi.set(__self__, "wildcard_file_name", wildcard_file_name)
        if wildcard_folder_path is not None:
            pulumi.set(__self__, "wildcard_folder_path", wildcard_folder_path)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The read setting type.
        Expected value is 'AmazonS3CompatibleReadSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="deleteFilesAfterCompletion")
    def delete_files_after_completion(self) -> Optional[Any]:
        """
        Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "delete_files_after_completion")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="enablePartitionDiscovery")
    def enable_partition_discovery(self) -> Optional[bool]:
        """
        Indicates whether to enable partition discovery.
        """
        return pulumi.get(self, "enable_partition_discovery")

    @property
    @pulumi.getter(name="fileListPath")
    def file_list_path(self) -> Optional[Any]:
        """
        Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_list_path")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="modifiedDatetimeEnd")
    def modified_datetime_end(self) -> Optional[Any]:
        """
        The end of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_end")

    @property
    @pulumi.getter(name="modifiedDatetimeStart")
    def modified_datetime_start(self) -> Optional[Any]:
        """
        The start of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_start")

    @property
    @pulumi.getter(name="partitionRootPath")
    def partition_root_path(self) -> Optional[Any]:
        """
        Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_root_path")

    @property
    @pulumi.getter
    def prefix(self) -> Optional[Any]:
        """
        The prefix filter for the S3 Compatible object name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "prefix")

    @property
    @pulumi.getter
    def recursive(self) -> Optional[Any]:
        """
        If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "recursive")

    @property
    @pulumi.getter(name="wildcardFileName")
    def wildcard_file_name(self) -> Optional[Any]:
        """
        Amazon S3 Compatible wildcardFileName. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_file_name")

    @property
    @pulumi.getter(name="wildcardFolderPath")
    def wildcard_folder_path(self) -> Optional[Any]:
        """
        Amazon S3 Compatible wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_folder_path")


@pulumi.output_type
class AmazonS3DatasetResponse(dict):
    """
    A single Amazon Simple Storage Service (S3) object or a set of S3 objects.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "bucketName":
            suggest = "bucket_name"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "modifiedDatetimeEnd":
            suggest = "modified_datetime_end"
        elif key == "modifiedDatetimeStart":
            suggest = "modified_datetime_start"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AmazonS3DatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AmazonS3DatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AmazonS3DatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 bucket_name: Any,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 compression: Optional['outputs.DatasetCompressionResponse'] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 format: Optional[Any] = None,
                 key: Optional[Any] = None,
                 modified_datetime_end: Optional[Any] = None,
                 modified_datetime_start: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 prefix: Optional[Any] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 version: Optional[Any] = None):
        """
        A single Amazon Simple Storage Service (S3) object or a set of S3 objects.
        :param Any bucket_name: The name of the Amazon S3 bucket. Type: string (or Expression with resultType string).
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'AmazonS3Object'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param 'DatasetCompressionResponse' compression: The data compression method used for the Amazon S3 object.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Union['AvroFormatResponse', 'JsonFormatResponse', 'OrcFormatResponse', 'ParquetFormatResponse', 'TextFormatResponse'] format: The format of files.
        :param Any key: The key of the Amazon S3 object. Type: string (or Expression with resultType string).
        :param Any modified_datetime_end: The end of S3 object's modified datetime. Type: string (or Expression with resultType string).
        :param Any modified_datetime_start: The start of S3 object's modified datetime. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any prefix: The prefix filter for the S3 object name. Type: string (or Expression with resultType string).
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any version: The version for the S3 object. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "bucket_name", bucket_name)
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'AmazonS3Object')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if compression is not None:
            pulumi.set(__self__, "compression", compression)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if format is not None:
            pulumi.set(__self__, "format", format)
        if key is not None:
            pulumi.set(__self__, "key", key)
        if modified_datetime_end is not None:
            pulumi.set(__self__, "modified_datetime_end", modified_datetime_end)
        if modified_datetime_start is not None:
            pulumi.set(__self__, "modified_datetime_start", modified_datetime_start)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if prefix is not None:
            pulumi.set(__self__, "prefix", prefix)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @property
    @pulumi.getter(name="bucketName")
    def bucket_name(self) -> Any:
        """
        The name of the Amazon S3 bucket. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "bucket_name")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'AmazonS3Object'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def compression(self) -> Optional['outputs.DatasetCompressionResponse']:
        """
        The data compression method used for the Amazon S3 object.
        """
        return pulumi.get(self, "compression")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def format(self) -> Optional[Any]:
        """
        The format of files.
        """
        return pulumi.get(self, "format")

    @property
    @pulumi.getter
    def key(self) -> Optional[Any]:
        """
        The key of the Amazon S3 object. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "key")

    @property
    @pulumi.getter(name="modifiedDatetimeEnd")
    def modified_datetime_end(self) -> Optional[Any]:
        """
        The end of S3 object's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_end")

    @property
    @pulumi.getter(name="modifiedDatetimeStart")
    def modified_datetime_start(self) -> Optional[Any]:
        """
        The start of S3 object's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_start")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def prefix(self) -> Optional[Any]:
        """
        The prefix filter for the S3 object name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "prefix")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def version(self) -> Optional[Any]:
        """
        The version for the S3 object. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "version")


@pulumi.output_type
class AmazonS3LinkedServiceResponse(dict):
    """
    Linked service for Amazon S3.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accessKeyId":
            suggest = "access_key_id"
        elif key == "authenticationType":
            suggest = "authentication_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "secretAccessKey":
            suggest = "secret_access_key"
        elif key == "serviceUrl":
            suggest = "service_url"
        elif key == "sessionToken":
            suggest = "session_token"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AmazonS3LinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AmazonS3LinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AmazonS3LinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 access_key_id: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 authentication_type: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 secret_access_key: Optional[Any] = None,
                 service_url: Optional[Any] = None,
                 session_token: Optional[Any] = None):
        """
        Linked service for Amazon S3.
        :param str type: Type of linked service.
               Expected value is 'AmazonS3'.
        :param Any access_key_id: The access key identifier of the Amazon S3 Identity and Access Management (IAM) user. Type: string (or Expression with resultType string).
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any authentication_type: The authentication type of S3. Allowed value: AccessKey (default) or TemporarySecurityCredentials. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] secret_access_key: The secret access key of the Amazon S3 Identity and Access Management (IAM) user.
        :param Any service_url: This value specifies the endpoint to access with the S3 Connector. This is an optional property; change it only if you want to try a different service endpoint or want to switch between https and http. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] session_token: The session token for the S3 temporary security credential.
        """
        pulumi.set(__self__, "type", 'AmazonS3')
        if access_key_id is not None:
            pulumi.set(__self__, "access_key_id", access_key_id)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if authentication_type is not None:
            pulumi.set(__self__, "authentication_type", authentication_type)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if secret_access_key is not None:
            pulumi.set(__self__, "secret_access_key", secret_access_key)
        if service_url is not None:
            pulumi.set(__self__, "service_url", service_url)
        if session_token is not None:
            pulumi.set(__self__, "session_token", session_token)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AmazonS3'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="accessKeyId")
    def access_key_id(self) -> Optional[Any]:
        """
        The access key identifier of the Amazon S3 Identity and Access Management (IAM) user. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "access_key_id")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> Optional[Any]:
        """
        The authentication type of S3. Allowed value: AccessKey (default) or TemporarySecurityCredentials. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="secretAccessKey")
    def secret_access_key(self) -> Optional[Any]:
        """
        The secret access key of the Amazon S3 Identity and Access Management (IAM) user.
        """
        return pulumi.get(self, "secret_access_key")

    @property
    @pulumi.getter(name="serviceUrl")
    def service_url(self) -> Optional[Any]:
        """
        This value specifies the endpoint to access with the S3 Connector. This is an optional property; change it only if you want to try a different service endpoint or want to switch between https and http. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_url")

    @property
    @pulumi.getter(name="sessionToken")
    def session_token(self) -> Optional[Any]:
        """
        The session token for the S3 temporary security credential.
        """
        return pulumi.get(self, "session_token")


@pulumi.output_type
class AmazonS3LocationResponse(dict):
    """
    The location of amazon S3 dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "bucketName":
            suggest = "bucket_name"
        elif key == "fileName":
            suggest = "file_name"
        elif key == "folderPath":
            suggest = "folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AmazonS3LocationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AmazonS3LocationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AmazonS3LocationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 bucket_name: Optional[Any] = None,
                 file_name: Optional[Any] = None,
                 folder_path: Optional[Any] = None,
                 version: Optional[Any] = None):
        """
        The location of amazon S3 dataset.
        :param str type: Type of dataset storage location.
               Expected value is 'AmazonS3Location'.
        :param Any bucket_name: Specify the bucketName of amazon S3. Type: string (or Expression with resultType string)
        :param Any file_name: Specify the file name of dataset. Type: string (or Expression with resultType string).
        :param Any folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string)
        :param Any version: Specify the version of amazon S3. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'AmazonS3Location')
        if bucket_name is not None:
            pulumi.set(__self__, "bucket_name", bucket_name)
        if file_name is not None:
            pulumi.set(__self__, "file_name", file_name)
        if folder_path is not None:
            pulumi.set(__self__, "folder_path", folder_path)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset storage location.
        Expected value is 'AmazonS3Location'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="bucketName")
    def bucket_name(self) -> Optional[Any]:
        """
        Specify the bucketName of amazon S3. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "bucket_name")

    @property
    @pulumi.getter(name="fileName")
    def file_name(self) -> Optional[Any]:
        """
        Specify the file name of dataset. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_name")

    @property
    @pulumi.getter(name="folderPath")
    def folder_path(self) -> Optional[Any]:
        """
        Specify the folder path of dataset. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "folder_path")

    @property
    @pulumi.getter
    def version(self) -> Optional[Any]:
        """
        Specify the version of amazon S3. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "version")


@pulumi.output_type
class AmazonS3ReadSettingsResponse(dict):
    """
    Amazon S3 read settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deleteFilesAfterCompletion":
            suggest = "delete_files_after_completion"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "enablePartitionDiscovery":
            suggest = "enable_partition_discovery"
        elif key == "fileListPath":
            suggest = "file_list_path"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "modifiedDatetimeEnd":
            suggest = "modified_datetime_end"
        elif key == "modifiedDatetimeStart":
            suggest = "modified_datetime_start"
        elif key == "partitionRootPath":
            suggest = "partition_root_path"
        elif key == "wildcardFileName":
            suggest = "wildcard_file_name"
        elif key == "wildcardFolderPath":
            suggest = "wildcard_folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AmazonS3ReadSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AmazonS3ReadSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AmazonS3ReadSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 delete_files_after_completion: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 enable_partition_discovery: Optional[bool] = None,
                 file_list_path: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 modified_datetime_end: Optional[Any] = None,
                 modified_datetime_start: Optional[Any] = None,
                 partition_root_path: Optional[Any] = None,
                 prefix: Optional[Any] = None,
                 recursive: Optional[Any] = None,
                 wildcard_file_name: Optional[Any] = None,
                 wildcard_folder_path: Optional[Any] = None):
        """
        Amazon S3 read settings.
        :param str type: The read setting type.
               Expected value is 'AmazonS3ReadSettings'.
        :param Any delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param bool enable_partition_discovery: Indicates whether to enable partition discovery.
        :param Any file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string).
        :param Any modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string).
        :param Any partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        :param Any prefix: The prefix filter for the S3 object name. Type: string (or Expression with resultType string).
        :param Any recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        :param Any wildcard_file_name: AmazonS3 wildcardFileName. Type: string (or Expression with resultType string).
        :param Any wildcard_folder_path: AmazonS3 wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'AmazonS3ReadSettings')
        if delete_files_after_completion is not None:
            pulumi.set(__self__, "delete_files_after_completion", delete_files_after_completion)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if enable_partition_discovery is not None:
            pulumi.set(__self__, "enable_partition_discovery", enable_partition_discovery)
        if file_list_path is not None:
            pulumi.set(__self__, "file_list_path", file_list_path)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if modified_datetime_end is not None:
            pulumi.set(__self__, "modified_datetime_end", modified_datetime_end)
        if modified_datetime_start is not None:
            pulumi.set(__self__, "modified_datetime_start", modified_datetime_start)
        if partition_root_path is not None:
            pulumi.set(__self__, "partition_root_path", partition_root_path)
        if prefix is not None:
            pulumi.set(__self__, "prefix", prefix)
        if recursive is not None:
            pulumi.set(__self__, "recursive", recursive)
        if wildcard_file_name is not None:
            pulumi.set(__self__, "wildcard_file_name", wildcard_file_name)
        if wildcard_folder_path is not None:
            pulumi.set(__self__, "wildcard_folder_path", wildcard_folder_path)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The read setting type.
        Expected value is 'AmazonS3ReadSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="deleteFilesAfterCompletion")
    def delete_files_after_completion(self) -> Optional[Any]:
        """
        Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "delete_files_after_completion")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="enablePartitionDiscovery")
    def enable_partition_discovery(self) -> Optional[bool]:
        """
        Indicates whether to enable partition discovery.
        """
        return pulumi.get(self, "enable_partition_discovery")

    @property
    @pulumi.getter(name="fileListPath")
    def file_list_path(self) -> Optional[Any]:
        """
        Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_list_path")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="modifiedDatetimeEnd")
    def modified_datetime_end(self) -> Optional[Any]:
        """
        The end of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_end")

    @property
    @pulumi.getter(name="modifiedDatetimeStart")
    def modified_datetime_start(self) -> Optional[Any]:
        """
        The start of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_start")

    @property
    @pulumi.getter(name="partitionRootPath")
    def partition_root_path(self) -> Optional[Any]:
        """
        Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_root_path")

    @property
    @pulumi.getter
    def prefix(self) -> Optional[Any]:
        """
        The prefix filter for the S3 object name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "prefix")

    @property
    @pulumi.getter
    def recursive(self) -> Optional[Any]:
        """
        If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "recursive")

    @property
    @pulumi.getter(name="wildcardFileName")
    def wildcard_file_name(self) -> Optional[Any]:
        """
        AmazonS3 wildcardFileName. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_file_name")

    @property
    @pulumi.getter(name="wildcardFolderPath")
    def wildcard_folder_path(self) -> Optional[Any]:
        """
        AmazonS3 wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_folder_path")


@pulumi.output_type
class AppendVariableActivityResponse(dict):
    """
    Append value for a Variable of type Array.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dependsOn":
            suggest = "depends_on"
        elif key == "userProperties":
            suggest = "user_properties"
        elif key == "variableName":
            suggest = "variable_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AppendVariableActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AppendVariableActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AppendVariableActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 type: str,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None,
                 value: Optional[Any] = None,
                 variable_name: Optional[str] = None):
        """
        Append value for a Variable of type Array.
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'AppendVariable'.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        :param Any value: Value to be appended. Could be a static value or Expression
        :param str variable_name: Name of the variable whose value needs to be appended to.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'AppendVariable')
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)
        if value is not None:
            pulumi.set(__self__, "value", value)
        if variable_name is not None:
            pulumi.set(__self__, "variable_name", variable_name)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'AppendVariable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")

    @property
    @pulumi.getter
    def value(self) -> Optional[Any]:
        """
        Value to be appended. Could be a static value or Expression
        """
        return pulumi.get(self, "value")

    @property
    @pulumi.getter(name="variableName")
    def variable_name(self) -> Optional[str]:
        """
        Name of the variable whose value needs to be appended to.
        """
        return pulumi.get(self, "variable_name")


@pulumi.output_type
class ArmIdWrapperResponse(dict):
    """
    A wrapper for an ARM resource id
    """
    def __init__(__self__, *,
                 id: str):
        """
        A wrapper for an ARM resource id
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> str:
        return pulumi.get(self, "id")


@pulumi.output_type
class AvroDatasetResponse(dict):
    """
    Avro dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "avroCompressionCodec":
            suggest = "avro_compression_codec"
        elif key == "avroCompressionLevel":
            suggest = "avro_compression_level"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AvroDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AvroDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AvroDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 location: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 avro_compression_codec: Optional[Any] = None,
                 avro_compression_level: Optional[int] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        Avro dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param Union['AmazonS3CompatibleLocationResponse', 'AmazonS3LocationResponse', 'AzureBlobFSLocationResponse', 'AzureBlobStorageLocationResponse', 'AzureDataLakeStoreLocationResponse', 'AzureFileStorageLocationResponse', 'FileServerLocationResponse', 'FtpServerLocationResponse', 'GoogleCloudStorageLocationResponse', 'HdfsLocationResponse', 'HttpServerLocationResponse', 'OracleCloudStorageLocationResponse', 'SftpLocationResponse'] location: The location of the avro storage.
        :param str type: Type of dataset.
               Expected value is 'Avro'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param Any avro_compression_codec: The data avroCompressionCodec. Type: string (or Expression with resultType string).
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "location", location)
        pulumi.set(__self__, "type", 'Avro')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if avro_compression_codec is not None:
            pulumi.set(__self__, "avro_compression_codec", avro_compression_codec)
        if avro_compression_level is not None:
            pulumi.set(__self__, "avro_compression_level", avro_compression_level)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def location(self) -> Any:
        """
        The location of the avro storage.
        """
        return pulumi.get(self, "location")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'Avro'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="avroCompressionCodec")
    def avro_compression_codec(self) -> Optional[Any]:
        """
        The data avroCompressionCodec. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "avro_compression_codec")

    @property
    @pulumi.getter(name="avroCompressionLevel")
    def avro_compression_level(self) -> Optional[int]:
        return pulumi.get(self, "avro_compression_level")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class AvroFormatResponse(dict):
    """
    The data stored in Avro format.
    """
    def __init__(__self__, *,
                 type: str,
                 deserializer: Optional[Any] = None,
                 serializer: Optional[Any] = None):
        """
        The data stored in Avro format.
        :param str type: Type of dataset storage format.
               Expected value is 'AvroFormat'.
        :param Any deserializer: Deserializer. Type: string (or Expression with resultType string).
        :param Any serializer: Serializer. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'AvroFormat')
        if deserializer is not None:
            pulumi.set(__self__, "deserializer", deserializer)
        if serializer is not None:
            pulumi.set(__self__, "serializer", serializer)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset storage format.
        Expected value is 'AvroFormat'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def deserializer(self) -> Optional[Any]:
        """
        Deserializer. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "deserializer")

    @property
    @pulumi.getter
    def serializer(self) -> Optional[Any]:
        """
        Serializer. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "serializer")


@pulumi.output_type
class AvroSinkResponse(dict):
    """
    A copy activity Avro sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "formatSettings":
            suggest = "format_settings"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "storeSettings":
            suggest = "store_settings"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AvroSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AvroSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AvroSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 format_settings: Optional['outputs.AvroWriteSettingsResponse'] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 store_settings: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity Avro sink.
        :param str type: Copy sink type.
               Expected value is 'AvroSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param 'AvroWriteSettingsResponse' format_settings: Avro format settings.
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Union['AzureBlobFSWriteSettingsResponse', 'AzureBlobStorageWriteSettingsResponse', 'AzureDataLakeStoreWriteSettingsResponse', 'AzureFileStorageWriteSettingsResponse', 'FileServerWriteSettingsResponse', 'SftpWriteSettingsResponse'] store_settings: Avro store settings.
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'AvroSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if format_settings is not None:
            pulumi.set(__self__, "format_settings", format_settings)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if store_settings is not None:
            pulumi.set(__self__, "store_settings", store_settings)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'AvroSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="formatSettings")
    def format_settings(self) -> Optional['outputs.AvroWriteSettingsResponse']:
        """
        Avro format settings.
        """
        return pulumi.get(self, "format_settings")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="storeSettings")
    def store_settings(self) -> Optional[Any]:
        """
        Avro store settings.
        """
        return pulumi.get(self, "store_settings")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class AvroSourceResponse(dict):
    """
    A copy activity Avro source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"
        elif key == "storeSettings":
            suggest = "store_settings"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AvroSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AvroSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AvroSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None,
                 store_settings: Optional[Any] = None):
        """
        A copy activity Avro source.
        :param str type: Copy source type.
               Expected value is 'AvroSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Union['AmazonS3CompatibleReadSettingsResponse', 'AmazonS3ReadSettingsResponse', 'AzureBlobFSReadSettingsResponse', 'AzureBlobStorageReadSettingsResponse', 'AzureDataLakeStoreReadSettingsResponse', 'AzureFileStorageReadSettingsResponse', 'FileServerReadSettingsResponse', 'FtpReadSettingsResponse', 'GoogleCloudStorageReadSettingsResponse', 'HdfsReadSettingsResponse', 'HttpReadSettingsResponse', 'OracleCloudStorageReadSettingsResponse', 'SftpReadSettingsResponse'] store_settings: Avro store settings.
        """
        pulumi.set(__self__, "type", 'AvroSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)
        if store_settings is not None:
            pulumi.set(__self__, "store_settings", store_settings)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'AvroSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")

    @property
    @pulumi.getter(name="storeSettings")
    def store_settings(self) -> Optional[Any]:
        """
        Avro store settings.
        """
        return pulumi.get(self, "store_settings")


@pulumi.output_type
class AvroWriteSettingsResponse(dict):
    """
    Avro write settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "fileNamePrefix":
            suggest = "file_name_prefix"
        elif key == "maxRowsPerFile":
            suggest = "max_rows_per_file"
        elif key == "recordName":
            suggest = "record_name"
        elif key == "recordNamespace":
            suggest = "record_namespace"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AvroWriteSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AvroWriteSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AvroWriteSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 file_name_prefix: Optional[Any] = None,
                 max_rows_per_file: Optional[Any] = None,
                 record_name: Optional[str] = None,
                 record_namespace: Optional[str] = None):
        """
        Avro write settings.
        :param str type: The write setting type.
               Expected value is 'AvroWriteSettings'.
        :param Any file_name_prefix: Specifies the file name pattern <fileNamePrefix>_<fileIndex>.<fileExtension> when copy from non-file based store without partitionOptions. Type: string (or Expression with resultType string).
        :param Any max_rows_per_file: Limit the written file's row count to be smaller than or equal to the specified count. Type: integer (or Expression with resultType integer).
        :param str record_name: Top level record name in write result, which is required in AVRO spec.
        :param str record_namespace: Record namespace in the write result.
        """
        pulumi.set(__self__, "type", 'AvroWriteSettings')
        if file_name_prefix is not None:
            pulumi.set(__self__, "file_name_prefix", file_name_prefix)
        if max_rows_per_file is not None:
            pulumi.set(__self__, "max_rows_per_file", max_rows_per_file)
        if record_name is not None:
            pulumi.set(__self__, "record_name", record_name)
        if record_namespace is not None:
            pulumi.set(__self__, "record_namespace", record_namespace)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The write setting type.
        Expected value is 'AvroWriteSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="fileNamePrefix")
    def file_name_prefix(self) -> Optional[Any]:
        """
        Specifies the file name pattern <fileNamePrefix>_<fileIndex>.<fileExtension> when copy from non-file based store without partitionOptions. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_name_prefix")

    @property
    @pulumi.getter(name="maxRowsPerFile")
    def max_rows_per_file(self) -> Optional[Any]:
        """
        Limit the written file's row count to be smaller than or equal to the specified count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_rows_per_file")

    @property
    @pulumi.getter(name="recordName")
    def record_name(self) -> Optional[str]:
        """
        Top level record name in write result, which is required in AVRO spec.
        """
        return pulumi.get(self, "record_name")

    @property
    @pulumi.getter(name="recordNamespace")
    def record_namespace(self) -> Optional[str]:
        """
        Record namespace in the write result.
        """
        return pulumi.get(self, "record_namespace")


@pulumi.output_type
class AzPowerShellSetupResponse(dict):
    """
    The express custom setup of installing Azure PowerShell.
    """
    def __init__(__self__, *,
                 type: str,
                 version: str):
        """
        The express custom setup of installing Azure PowerShell.
        :param str type: The type of custom setup.
               Expected value is 'AzPowerShellSetup'.
        :param str version: The required version of Azure PowerShell to install.
        """
        pulumi.set(__self__, "type", 'AzPowerShellSetup')
        pulumi.set(__self__, "version", version)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of custom setup.
        Expected value is 'AzPowerShellSetup'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def version(self) -> str:
        """
        The required version of Azure PowerShell to install.
        """
        return pulumi.get(self, "version")


@pulumi.output_type
class AzureBatchLinkedServiceResponse(dict):
    """
    Azure Batch linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountName":
            suggest = "account_name"
        elif key == "batchUri":
            suggest = "batch_uri"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "poolName":
            suggest = "pool_name"
        elif key == "accessKey":
            suggest = "access_key"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureBatchLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureBatchLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureBatchLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 account_name: Any,
                 batch_uri: Any,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 pool_name: Any,
                 type: str,
                 access_key: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 credential: Optional['outputs.CredentialReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None):
        """
        Azure Batch linked service.
        :param Any account_name: The Azure Batch account name. Type: string (or Expression with resultType string).
        :param Any batch_uri: The Azure Batch URI. Type: string (or Expression with resultType string).
        :param 'LinkedServiceReferenceResponse' linked_service_name: The Azure Storage linked service reference.
        :param Any pool_name: The Azure Batch pool name. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'AzureBatch'.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] access_key: The Azure Batch account access key.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param 'CredentialReferenceResponse' credential: The credential reference containing authentication information.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        """
        pulumi.set(__self__, "account_name", account_name)
        pulumi.set(__self__, "batch_uri", batch_uri)
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "pool_name", pool_name)
        pulumi.set(__self__, "type", 'AzureBatch')
        if access_key is not None:
            pulumi.set(__self__, "access_key", access_key)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if credential is not None:
            pulumi.set(__self__, "credential", credential)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)

    @property
    @pulumi.getter(name="accountName")
    def account_name(self) -> Any:
        """
        The Azure Batch account name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "account_name")

    @property
    @pulumi.getter(name="batchUri")
    def batch_uri(self) -> Any:
        """
        The Azure Batch URI. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "batch_uri")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        The Azure Storage linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter(name="poolName")
    def pool_name(self) -> Any:
        """
        The Azure Batch pool name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "pool_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AzureBatch'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="accessKey")
    def access_key(self) -> Optional[Any]:
        """
        The Azure Batch account access key.
        """
        return pulumi.get(self, "access_key")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def credential(self) -> Optional['outputs.CredentialReferenceResponse']:
        """
        The credential reference containing authentication information.
        """
        return pulumi.get(self, "credential")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")


@pulumi.output_type
class AzureBlobDatasetResponse(dict):
    """
    The Azure Blob storage.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "fileName":
            suggest = "file_name"
        elif key == "folderPath":
            suggest = "folder_path"
        elif key == "modifiedDatetimeEnd":
            suggest = "modified_datetime_end"
        elif key == "modifiedDatetimeStart":
            suggest = "modified_datetime_start"
        elif key == "tableRootLocation":
            suggest = "table_root_location"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureBlobDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureBlobDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureBlobDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 compression: Optional['outputs.DatasetCompressionResponse'] = None,
                 description: Optional[str] = None,
                 file_name: Optional[Any] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 folder_path: Optional[Any] = None,
                 format: Optional[Any] = None,
                 modified_datetime_end: Optional[Any] = None,
                 modified_datetime_start: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_root_location: Optional[Any] = None):
        """
        The Azure Blob storage.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'AzureBlob'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param 'DatasetCompressionResponse' compression: The data compression method used for the blob storage.
        :param str description: Dataset description.
        :param Any file_name: The name of the Azure Blob. Type: string (or Expression with resultType string).
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Any folder_path: The path of the Azure Blob storage. Type: string (or Expression with resultType string).
        :param Union['AvroFormatResponse', 'JsonFormatResponse', 'OrcFormatResponse', 'ParquetFormatResponse', 'TextFormatResponse'] format: The format of the Azure Blob storage.
        :param Any modified_datetime_end: The end of Azure Blob's modified datetime. Type: string (or Expression with resultType string).
        :param Any modified_datetime_start: The start of Azure Blob's modified datetime. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_root_location: The root of blob path. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'AzureBlob')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if compression is not None:
            pulumi.set(__self__, "compression", compression)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if file_name is not None:
            pulumi.set(__self__, "file_name", file_name)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if folder_path is not None:
            pulumi.set(__self__, "folder_path", folder_path)
        if format is not None:
            pulumi.set(__self__, "format", format)
        if modified_datetime_end is not None:
            pulumi.set(__self__, "modified_datetime_end", modified_datetime_end)
        if modified_datetime_start is not None:
            pulumi.set(__self__, "modified_datetime_start", modified_datetime_start)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_root_location is not None:
            pulumi.set(__self__, "table_root_location", table_root_location)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'AzureBlob'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def compression(self) -> Optional['outputs.DatasetCompressionResponse']:
        """
        The data compression method used for the blob storage.
        """
        return pulumi.get(self, "compression")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="fileName")
    def file_name(self) -> Optional[Any]:
        """
        The name of the Azure Blob. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_name")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter(name="folderPath")
    def folder_path(self) -> Optional[Any]:
        """
        The path of the Azure Blob storage. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "folder_path")

    @property
    @pulumi.getter
    def format(self) -> Optional[Any]:
        """
        The format of the Azure Blob storage.
        """
        return pulumi.get(self, "format")

    @property
    @pulumi.getter(name="modifiedDatetimeEnd")
    def modified_datetime_end(self) -> Optional[Any]:
        """
        The end of Azure Blob's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_end")

    @property
    @pulumi.getter(name="modifiedDatetimeStart")
    def modified_datetime_start(self) -> Optional[Any]:
        """
        The start of Azure Blob's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_start")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableRootLocation")
    def table_root_location(self) -> Optional[Any]:
        """
        The root of blob path. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_root_location")


@pulumi.output_type
class AzureBlobFSDatasetResponse(dict):
    """
    The Azure Data Lake Storage Gen2 storage.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "fileName":
            suggest = "file_name"
        elif key == "folderPath":
            suggest = "folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureBlobFSDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureBlobFSDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureBlobFSDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 compression: Optional['outputs.DatasetCompressionResponse'] = None,
                 description: Optional[str] = None,
                 file_name: Optional[Any] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 folder_path: Optional[Any] = None,
                 format: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        The Azure Data Lake Storage Gen2 storage.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'AzureBlobFSFile'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param 'DatasetCompressionResponse' compression: The data compression method used for the blob storage.
        :param str description: Dataset description.
        :param Any file_name: The name of the Azure Data Lake Storage Gen2. Type: string (or Expression with resultType string).
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Any folder_path: The path of the Azure Data Lake Storage Gen2 storage. Type: string (or Expression with resultType string).
        :param Union['AvroFormatResponse', 'JsonFormatResponse', 'OrcFormatResponse', 'ParquetFormatResponse', 'TextFormatResponse'] format: The format of the Azure Data Lake Storage Gen2 storage.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'AzureBlobFSFile')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if compression is not None:
            pulumi.set(__self__, "compression", compression)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if file_name is not None:
            pulumi.set(__self__, "file_name", file_name)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if folder_path is not None:
            pulumi.set(__self__, "folder_path", folder_path)
        if format is not None:
            pulumi.set(__self__, "format", format)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'AzureBlobFSFile'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def compression(self) -> Optional['outputs.DatasetCompressionResponse']:
        """
        The data compression method used for the blob storage.
        """
        return pulumi.get(self, "compression")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="fileName")
    def file_name(self) -> Optional[Any]:
        """
        The name of the Azure Data Lake Storage Gen2. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_name")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter(name="folderPath")
    def folder_path(self) -> Optional[Any]:
        """
        The path of the Azure Data Lake Storage Gen2 storage. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "folder_path")

    @property
    @pulumi.getter
    def format(self) -> Optional[Any]:
        """
        The format of the Azure Data Lake Storage Gen2 storage.
        """
        return pulumi.get(self, "format")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class AzureBlobFSLinkedServiceResponse(dict):
    """
    Azure Data Lake Storage Gen2 linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountKey":
            suggest = "account_key"
        elif key == "azureCloudType":
            suggest = "azure_cloud_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "servicePrincipalCredential":
            suggest = "service_principal_credential"
        elif key == "servicePrincipalCredentialType":
            suggest = "service_principal_credential_type"
        elif key == "servicePrincipalId":
            suggest = "service_principal_id"
        elif key == "servicePrincipalKey":
            suggest = "service_principal_key"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureBlobFSLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureBlobFSLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureBlobFSLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 url: Any,
                 account_key: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 azure_cloud_type: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 credential: Optional['outputs.CredentialReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 service_principal_credential: Optional[Any] = None,
                 service_principal_credential_type: Optional[Any] = None,
                 service_principal_id: Optional[Any] = None,
                 service_principal_key: Optional[Any] = None,
                 tenant: Optional[Any] = None):
        """
        Azure Data Lake Storage Gen2 linked service.
        :param str type: Type of linked service.
               Expected value is 'AzureBlobFS'.
        :param Any url: Endpoint for the Azure Data Lake Storage Gen2 service. Type: string (or Expression with resultType string).
        :param Any account_key: Account key for the Azure Data Lake Storage Gen2 service. Type: string (or Expression with resultType string).
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param 'CredentialReferenceResponse' credential: The credential reference containing authentication information.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_credential: The credential of the service principal object in Azure Active Directory. If servicePrincipalCredentialType is 'ServicePrincipalKey', servicePrincipalCredential can be SecureString or AzureKeyVaultSecretReference. If servicePrincipalCredentialType is 'ServicePrincipalCert', servicePrincipalCredential can only be AzureKeyVaultSecretReference.
        :param Any service_principal_credential_type: The service principal credential type to use in Server-To-Server authentication. 'ServicePrincipalKey' for key/secret, 'ServicePrincipalCert' for certificate. Type: string (or Expression with resultType string).
        :param Any service_principal_id: The ID of the application used to authenticate against the Azure Data Lake Storage Gen2 account. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_key: The Key of the application used to authenticate against the Azure Data Lake Storage Gen2 account.
        :param Any tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'AzureBlobFS')
        pulumi.set(__self__, "url", url)
        if account_key is not None:
            pulumi.set(__self__, "account_key", account_key)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if azure_cloud_type is not None:
            pulumi.set(__self__, "azure_cloud_type", azure_cloud_type)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if credential is not None:
            pulumi.set(__self__, "credential", credential)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if service_principal_credential is not None:
            pulumi.set(__self__, "service_principal_credential", service_principal_credential)
        if service_principal_credential_type is not None:
            pulumi.set(__self__, "service_principal_credential_type", service_principal_credential_type)
        if service_principal_id is not None:
            pulumi.set(__self__, "service_principal_id", service_principal_id)
        if service_principal_key is not None:
            pulumi.set(__self__, "service_principal_key", service_principal_key)
        if tenant is not None:
            pulumi.set(__self__, "tenant", tenant)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AzureBlobFS'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def url(self) -> Any:
        """
        Endpoint for the Azure Data Lake Storage Gen2 service. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "url")

    @property
    @pulumi.getter(name="accountKey")
    def account_key(self) -> Optional[Any]:
        """
        Account key for the Azure Data Lake Storage Gen2 service. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "account_key")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="azureCloudType")
    def azure_cloud_type(self) -> Optional[Any]:
        """
        Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "azure_cloud_type")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def credential(self) -> Optional['outputs.CredentialReferenceResponse']:
        """
        The credential reference containing authentication information.
        """
        return pulumi.get(self, "credential")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="servicePrincipalCredential")
    def service_principal_credential(self) -> Optional[Any]:
        """
        The credential of the service principal object in Azure Active Directory. If servicePrincipalCredentialType is 'ServicePrincipalKey', servicePrincipalCredential can be SecureString or AzureKeyVaultSecretReference. If servicePrincipalCredentialType is 'ServicePrincipalCert', servicePrincipalCredential can only be AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "service_principal_credential")

    @property
    @pulumi.getter(name="servicePrincipalCredentialType")
    def service_principal_credential_type(self) -> Optional[Any]:
        """
        The service principal credential type to use in Server-To-Server authentication. 'ServicePrincipalKey' for key/secret, 'ServicePrincipalCert' for certificate. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_credential_type")

    @property
    @pulumi.getter(name="servicePrincipalId")
    def service_principal_id(self) -> Optional[Any]:
        """
        The ID of the application used to authenticate against the Azure Data Lake Storage Gen2 account. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_id")

    @property
    @pulumi.getter(name="servicePrincipalKey")
    def service_principal_key(self) -> Optional[Any]:
        """
        The Key of the application used to authenticate against the Azure Data Lake Storage Gen2 account.
        """
        return pulumi.get(self, "service_principal_key")

    @property
    @pulumi.getter
    def tenant(self) -> Optional[Any]:
        """
        The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "tenant")


@pulumi.output_type
class AzureBlobFSLocationResponse(dict):
    """
    The location of azure blobFS dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "fileName":
            suggest = "file_name"
        elif key == "fileSystem":
            suggest = "file_system"
        elif key == "folderPath":
            suggest = "folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureBlobFSLocationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureBlobFSLocationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureBlobFSLocationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 file_name: Optional[Any] = None,
                 file_system: Optional[Any] = None,
                 folder_path: Optional[Any] = None):
        """
        The location of azure blobFS dataset.
        :param str type: Type of dataset storage location.
               Expected value is 'AzureBlobFSLocation'.
        :param Any file_name: Specify the file name of dataset. Type: string (or Expression with resultType string).
        :param Any file_system: Specify the fileSystem of azure blobFS. Type: string (or Expression with resultType string).
        :param Any folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string)
        """
        pulumi.set(__self__, "type", 'AzureBlobFSLocation')
        if file_name is not None:
            pulumi.set(__self__, "file_name", file_name)
        if file_system is not None:
            pulumi.set(__self__, "file_system", file_system)
        if folder_path is not None:
            pulumi.set(__self__, "folder_path", folder_path)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset storage location.
        Expected value is 'AzureBlobFSLocation'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="fileName")
    def file_name(self) -> Optional[Any]:
        """
        Specify the file name of dataset. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_name")

    @property
    @pulumi.getter(name="fileSystem")
    def file_system(self) -> Optional[Any]:
        """
        Specify the fileSystem of azure blobFS. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_system")

    @property
    @pulumi.getter(name="folderPath")
    def folder_path(self) -> Optional[Any]:
        """
        Specify the folder path of dataset. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "folder_path")


@pulumi.output_type
class AzureBlobFSReadSettingsResponse(dict):
    """
    Azure blobFS read settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deleteFilesAfterCompletion":
            suggest = "delete_files_after_completion"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "enablePartitionDiscovery":
            suggest = "enable_partition_discovery"
        elif key == "fileListPath":
            suggest = "file_list_path"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "modifiedDatetimeEnd":
            suggest = "modified_datetime_end"
        elif key == "modifiedDatetimeStart":
            suggest = "modified_datetime_start"
        elif key == "partitionRootPath":
            suggest = "partition_root_path"
        elif key == "wildcardFileName":
            suggest = "wildcard_file_name"
        elif key == "wildcardFolderPath":
            suggest = "wildcard_folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureBlobFSReadSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureBlobFSReadSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureBlobFSReadSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 delete_files_after_completion: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 enable_partition_discovery: Optional[bool] = None,
                 file_list_path: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 modified_datetime_end: Optional[Any] = None,
                 modified_datetime_start: Optional[Any] = None,
                 partition_root_path: Optional[Any] = None,
                 recursive: Optional[Any] = None,
                 wildcard_file_name: Optional[Any] = None,
                 wildcard_folder_path: Optional[Any] = None):
        """
        Azure blobFS read settings.
        :param str type: The read setting type.
               Expected value is 'AzureBlobFSReadSettings'.
        :param Any delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param bool enable_partition_discovery: Indicates whether to enable partition discovery.
        :param Any file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string).
        :param Any modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string).
        :param Any partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        :param Any recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        :param Any wildcard_file_name: Azure blobFS wildcardFileName. Type: string (or Expression with resultType string).
        :param Any wildcard_folder_path: Azure blobFS wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'AzureBlobFSReadSettings')
        if delete_files_after_completion is not None:
            pulumi.set(__self__, "delete_files_after_completion", delete_files_after_completion)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if enable_partition_discovery is not None:
            pulumi.set(__self__, "enable_partition_discovery", enable_partition_discovery)
        if file_list_path is not None:
            pulumi.set(__self__, "file_list_path", file_list_path)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if modified_datetime_end is not None:
            pulumi.set(__self__, "modified_datetime_end", modified_datetime_end)
        if modified_datetime_start is not None:
            pulumi.set(__self__, "modified_datetime_start", modified_datetime_start)
        if partition_root_path is not None:
            pulumi.set(__self__, "partition_root_path", partition_root_path)
        if recursive is not None:
            pulumi.set(__self__, "recursive", recursive)
        if wildcard_file_name is not None:
            pulumi.set(__self__, "wildcard_file_name", wildcard_file_name)
        if wildcard_folder_path is not None:
            pulumi.set(__self__, "wildcard_folder_path", wildcard_folder_path)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The read setting type.
        Expected value is 'AzureBlobFSReadSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="deleteFilesAfterCompletion")
    def delete_files_after_completion(self) -> Optional[Any]:
        """
        Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "delete_files_after_completion")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="enablePartitionDiscovery")
    def enable_partition_discovery(self) -> Optional[bool]:
        """
        Indicates whether to enable partition discovery.
        """
        return pulumi.get(self, "enable_partition_discovery")

    @property
    @pulumi.getter(name="fileListPath")
    def file_list_path(self) -> Optional[Any]:
        """
        Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_list_path")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="modifiedDatetimeEnd")
    def modified_datetime_end(self) -> Optional[Any]:
        """
        The end of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_end")

    @property
    @pulumi.getter(name="modifiedDatetimeStart")
    def modified_datetime_start(self) -> Optional[Any]:
        """
        The start of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_start")

    @property
    @pulumi.getter(name="partitionRootPath")
    def partition_root_path(self) -> Optional[Any]:
        """
        Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_root_path")

    @property
    @pulumi.getter
    def recursive(self) -> Optional[Any]:
        """
        If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "recursive")

    @property
    @pulumi.getter(name="wildcardFileName")
    def wildcard_file_name(self) -> Optional[Any]:
        """
        Azure blobFS wildcardFileName. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_file_name")

    @property
    @pulumi.getter(name="wildcardFolderPath")
    def wildcard_folder_path(self) -> Optional[Any]:
        """
        Azure blobFS wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_folder_path")


@pulumi.output_type
class AzureBlobFSSinkResponse(dict):
    """
    A copy activity Azure Data Lake Storage Gen2 sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "copyBehavior":
            suggest = "copy_behavior"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureBlobFSSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureBlobFSSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureBlobFSSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 copy_behavior: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 metadata: Optional[Sequence['outputs.MetadataItemResponse']] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity Azure Data Lake Storage Gen2 sink.
        :param str type: Copy sink type.
               Expected value is 'AzureBlobFSSink'.
        :param Any copy_behavior: The type of copy behavior for copy sink.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Sequence['MetadataItemResponse'] metadata: Specify the custom metadata to be added to sink data. Type: array of objects (or Expression with resultType array of objects).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'AzureBlobFSSink')
        if copy_behavior is not None:
            pulumi.set(__self__, "copy_behavior", copy_behavior)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'AzureBlobFSSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="copyBehavior")
    def copy_behavior(self) -> Optional[Any]:
        """
        The type of copy behavior for copy sink.
        """
        return pulumi.get(self, "copy_behavior")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def metadata(self) -> Optional[Sequence['outputs.MetadataItemResponse']]:
        """
        Specify the custom metadata to be added to sink data. Type: array of objects (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "metadata")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class AzureBlobFSSourceResponse(dict):
    """
    A copy activity Azure BlobFS source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "skipHeaderLineCount":
            suggest = "skip_header_line_count"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"
        elif key == "treatEmptyAsNull":
            suggest = "treat_empty_as_null"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureBlobFSSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureBlobFSSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureBlobFSSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 recursive: Optional[Any] = None,
                 skip_header_line_count: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None,
                 treat_empty_as_null: Optional[Any] = None):
        """
        A copy activity Azure BlobFS source.
        :param str type: Copy source type.
               Expected value is 'AzureBlobFSSource'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        :param Any skip_header_line_count: Number of header lines to skip from each blob. Type: integer (or Expression with resultType integer).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any treat_empty_as_null: Treat empty as null. Type: boolean (or Expression with resultType boolean).
        """
        pulumi.set(__self__, "type", 'AzureBlobFSSource')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if recursive is not None:
            pulumi.set(__self__, "recursive", recursive)
        if skip_header_line_count is not None:
            pulumi.set(__self__, "skip_header_line_count", skip_header_line_count)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)
        if treat_empty_as_null is not None:
            pulumi.set(__self__, "treat_empty_as_null", treat_empty_as_null)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'AzureBlobFSSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def recursive(self) -> Optional[Any]:
        """
        If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "recursive")

    @property
    @pulumi.getter(name="skipHeaderLineCount")
    def skip_header_line_count(self) -> Optional[Any]:
        """
        Number of header lines to skip from each blob. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "skip_header_line_count")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")

    @property
    @pulumi.getter(name="treatEmptyAsNull")
    def treat_empty_as_null(self) -> Optional[Any]:
        """
        Treat empty as null. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "treat_empty_as_null")


@pulumi.output_type
class AzureBlobFSWriteSettingsResponse(dict):
    """
    Azure blobFS write settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "blockSizeInMB":
            suggest = "block_size_in_mb"
        elif key == "copyBehavior":
            suggest = "copy_behavior"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureBlobFSWriteSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureBlobFSWriteSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureBlobFSWriteSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 block_size_in_mb: Optional[Any] = None,
                 copy_behavior: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None):
        """
        Azure blobFS write settings.
        :param str type: The write setting type.
               Expected value is 'AzureBlobFSWriteSettings'.
        :param Any block_size_in_mb: Indicates the block size(MB) when writing data to blob. Type: integer (or Expression with resultType integer).
        :param Any copy_behavior: The type of copy behavior for copy sink.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        pulumi.set(__self__, "type", 'AzureBlobFSWriteSettings')
        if block_size_in_mb is not None:
            pulumi.set(__self__, "block_size_in_mb", block_size_in_mb)
        if copy_behavior is not None:
            pulumi.set(__self__, "copy_behavior", copy_behavior)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The write setting type.
        Expected value is 'AzureBlobFSWriteSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="blockSizeInMB")
    def block_size_in_mb(self) -> Optional[Any]:
        """
        Indicates the block size(MB) when writing data to blob. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "block_size_in_mb")

    @property
    @pulumi.getter(name="copyBehavior")
    def copy_behavior(self) -> Optional[Any]:
        """
        The type of copy behavior for copy sink.
        """
        return pulumi.get(self, "copy_behavior")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")


@pulumi.output_type
class AzureBlobStorageLinkedServiceResponse(dict):
    """
    The azure blob storage linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountKey":
            suggest = "account_key"
        elif key == "accountKind":
            suggest = "account_kind"
        elif key == "azureCloudType":
            suggest = "azure_cloud_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "connectionString":
            suggest = "connection_string"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "sasToken":
            suggest = "sas_token"
        elif key == "sasUri":
            suggest = "sas_uri"
        elif key == "serviceEndpoint":
            suggest = "service_endpoint"
        elif key == "servicePrincipalId":
            suggest = "service_principal_id"
        elif key == "servicePrincipalKey":
            suggest = "service_principal_key"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureBlobStorageLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureBlobStorageLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureBlobStorageLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 account_key: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None,
                 account_kind: Optional[str] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 azure_cloud_type: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 connection_string: Optional[Any] = None,
                 credential: Optional['outputs.CredentialReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[str] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 sas_token: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None,
                 sas_uri: Optional[Any] = None,
                 service_endpoint: Optional[str] = None,
                 service_principal_id: Optional[Any] = None,
                 service_principal_key: Optional[Any] = None,
                 tenant: Optional[Any] = None):
        """
        The azure blob storage linked service.
        :param str type: Type of linked service.
               Expected value is 'AzureBlobStorage'.
        :param 'AzureKeyVaultSecretReferenceResponse' account_key: The Azure key vault secret reference of accountKey in connection string.
        :param str account_kind: Specify the kind of your storage account. Allowed values are: Storage (general purpose v1), StorageV2 (general purpose v2), BlobStorage, or BlockBlobStorage. Type: string (or Expression with resultType string).
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any connection_string: The connection string. It is mutually exclusive with sasUri, serviceEndpoint property. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param 'CredentialReferenceResponse' credential: The credential reference containing authentication information.
        :param str description: Linked service description.
        :param str encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param 'AzureKeyVaultSecretReferenceResponse' sas_token: The Azure key vault secret reference of sasToken in sas uri.
        :param Any sas_uri: SAS URI of the Azure Blob Storage resource. It is mutually exclusive with connectionString, serviceEndpoint property. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str service_endpoint: Blob service endpoint of the Azure Blob Storage resource. It is mutually exclusive with connectionString, sasUri property.
        :param Any service_principal_id: The ID of the service principal used to authenticate against Azure SQL Data Warehouse. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_key: The key of the service principal used to authenticate against Azure SQL Data Warehouse.
        :param Any tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'AzureBlobStorage')
        if account_key is not None:
            pulumi.set(__self__, "account_key", account_key)
        if account_kind is not None:
            pulumi.set(__self__, "account_kind", account_kind)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if azure_cloud_type is not None:
            pulumi.set(__self__, "azure_cloud_type", azure_cloud_type)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if connection_string is not None:
            pulumi.set(__self__, "connection_string", connection_string)
        if credential is not None:
            pulumi.set(__self__, "credential", credential)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if sas_token is not None:
            pulumi.set(__self__, "sas_token", sas_token)
        if sas_uri is not None:
            pulumi.set(__self__, "sas_uri", sas_uri)
        if service_endpoint is not None:
            pulumi.set(__self__, "service_endpoint", service_endpoint)
        if service_principal_id is not None:
            pulumi.set(__self__, "service_principal_id", service_principal_id)
        if service_principal_key is not None:
            pulumi.set(__self__, "service_principal_key", service_principal_key)
        if tenant is not None:
            pulumi.set(__self__, "tenant", tenant)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AzureBlobStorage'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="accountKey")
    def account_key(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of accountKey in connection string.
        """
        return pulumi.get(self, "account_key")

    @property
    @pulumi.getter(name="accountKind")
    def account_kind(self) -> Optional[str]:
        """
        Specify the kind of your storage account. Allowed values are: Storage (general purpose v1), StorageV2 (general purpose v2), BlobStorage, or BlockBlobStorage. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "account_kind")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="azureCloudType")
    def azure_cloud_type(self) -> Optional[Any]:
        """
        Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "azure_cloud_type")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Optional[Any]:
        """
        The connection string. It is mutually exclusive with sasUri, serviceEndpoint property. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def credential(self) -> Optional['outputs.CredentialReferenceResponse']:
        """
        The credential reference containing authentication information.
        """
        return pulumi.get(self, "credential")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[str]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="sasToken")
    def sas_token(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of sasToken in sas uri.
        """
        return pulumi.get(self, "sas_token")

    @property
    @pulumi.getter(name="sasUri")
    def sas_uri(self) -> Optional[Any]:
        """
        SAS URI of the Azure Blob Storage resource. It is mutually exclusive with connectionString, serviceEndpoint property. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "sas_uri")

    @property
    @pulumi.getter(name="serviceEndpoint")
    def service_endpoint(self) -> Optional[str]:
        """
        Blob service endpoint of the Azure Blob Storage resource. It is mutually exclusive with connectionString, sasUri property.
        """
        return pulumi.get(self, "service_endpoint")

    @property
    @pulumi.getter(name="servicePrincipalId")
    def service_principal_id(self) -> Optional[Any]:
        """
        The ID of the service principal used to authenticate against Azure SQL Data Warehouse. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_id")

    @property
    @pulumi.getter(name="servicePrincipalKey")
    def service_principal_key(self) -> Optional[Any]:
        """
        The key of the service principal used to authenticate against Azure SQL Data Warehouse.
        """
        return pulumi.get(self, "service_principal_key")

    @property
    @pulumi.getter
    def tenant(self) -> Optional[Any]:
        """
        The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "tenant")


@pulumi.output_type
class AzureBlobStorageLocationResponse(dict):
    """
    The location of azure blob dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "fileName":
            suggest = "file_name"
        elif key == "folderPath":
            suggest = "folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureBlobStorageLocationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureBlobStorageLocationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureBlobStorageLocationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 container: Optional[Any] = None,
                 file_name: Optional[Any] = None,
                 folder_path: Optional[Any] = None):
        """
        The location of azure blob dataset.
        :param str type: Type of dataset storage location.
               Expected value is 'AzureBlobStorageLocation'.
        :param Any container: Specify the container of azure blob. Type: string (or Expression with resultType string).
        :param Any file_name: Specify the file name of dataset. Type: string (or Expression with resultType string).
        :param Any folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string)
        """
        pulumi.set(__self__, "type", 'AzureBlobStorageLocation')
        if container is not None:
            pulumi.set(__self__, "container", container)
        if file_name is not None:
            pulumi.set(__self__, "file_name", file_name)
        if folder_path is not None:
            pulumi.set(__self__, "folder_path", folder_path)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset storage location.
        Expected value is 'AzureBlobStorageLocation'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def container(self) -> Optional[Any]:
        """
        Specify the container of azure blob. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "container")

    @property
    @pulumi.getter(name="fileName")
    def file_name(self) -> Optional[Any]:
        """
        Specify the file name of dataset. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_name")

    @property
    @pulumi.getter(name="folderPath")
    def folder_path(self) -> Optional[Any]:
        """
        Specify the folder path of dataset. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "folder_path")


@pulumi.output_type
class AzureBlobStorageReadSettingsResponse(dict):
    """
    Azure blob read settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deleteFilesAfterCompletion":
            suggest = "delete_files_after_completion"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "enablePartitionDiscovery":
            suggest = "enable_partition_discovery"
        elif key == "fileListPath":
            suggest = "file_list_path"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "modifiedDatetimeEnd":
            suggest = "modified_datetime_end"
        elif key == "modifiedDatetimeStart":
            suggest = "modified_datetime_start"
        elif key == "partitionRootPath":
            suggest = "partition_root_path"
        elif key == "wildcardFileName":
            suggest = "wildcard_file_name"
        elif key == "wildcardFolderPath":
            suggest = "wildcard_folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureBlobStorageReadSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureBlobStorageReadSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureBlobStorageReadSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 delete_files_after_completion: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 enable_partition_discovery: Optional[bool] = None,
                 file_list_path: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 modified_datetime_end: Optional[Any] = None,
                 modified_datetime_start: Optional[Any] = None,
                 partition_root_path: Optional[Any] = None,
                 prefix: Optional[Any] = None,
                 recursive: Optional[Any] = None,
                 wildcard_file_name: Optional[Any] = None,
                 wildcard_folder_path: Optional[Any] = None):
        """
        Azure blob read settings.
        :param str type: The read setting type.
               Expected value is 'AzureBlobStorageReadSettings'.
        :param Any delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param bool enable_partition_discovery: Indicates whether to enable partition discovery.
        :param Any file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string).
        :param Any modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string).
        :param Any partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        :param Any prefix: The prefix filter for the Azure Blob name. Type: string (or Expression with resultType string).
        :param Any recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        :param Any wildcard_file_name: Azure blob wildcardFileName. Type: string (or Expression with resultType string).
        :param Any wildcard_folder_path: Azure blob wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'AzureBlobStorageReadSettings')
        if delete_files_after_completion is not None:
            pulumi.set(__self__, "delete_files_after_completion", delete_files_after_completion)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if enable_partition_discovery is not None:
            pulumi.set(__self__, "enable_partition_discovery", enable_partition_discovery)
        if file_list_path is not None:
            pulumi.set(__self__, "file_list_path", file_list_path)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if modified_datetime_end is not None:
            pulumi.set(__self__, "modified_datetime_end", modified_datetime_end)
        if modified_datetime_start is not None:
            pulumi.set(__self__, "modified_datetime_start", modified_datetime_start)
        if partition_root_path is not None:
            pulumi.set(__self__, "partition_root_path", partition_root_path)
        if prefix is not None:
            pulumi.set(__self__, "prefix", prefix)
        if recursive is not None:
            pulumi.set(__self__, "recursive", recursive)
        if wildcard_file_name is not None:
            pulumi.set(__self__, "wildcard_file_name", wildcard_file_name)
        if wildcard_folder_path is not None:
            pulumi.set(__self__, "wildcard_folder_path", wildcard_folder_path)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The read setting type.
        Expected value is 'AzureBlobStorageReadSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="deleteFilesAfterCompletion")
    def delete_files_after_completion(self) -> Optional[Any]:
        """
        Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "delete_files_after_completion")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="enablePartitionDiscovery")
    def enable_partition_discovery(self) -> Optional[bool]:
        """
        Indicates whether to enable partition discovery.
        """
        return pulumi.get(self, "enable_partition_discovery")

    @property
    @pulumi.getter(name="fileListPath")
    def file_list_path(self) -> Optional[Any]:
        """
        Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_list_path")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="modifiedDatetimeEnd")
    def modified_datetime_end(self) -> Optional[Any]:
        """
        The end of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_end")

    @property
    @pulumi.getter(name="modifiedDatetimeStart")
    def modified_datetime_start(self) -> Optional[Any]:
        """
        The start of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_start")

    @property
    @pulumi.getter(name="partitionRootPath")
    def partition_root_path(self) -> Optional[Any]:
        """
        Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_root_path")

    @property
    @pulumi.getter
    def prefix(self) -> Optional[Any]:
        """
        The prefix filter for the Azure Blob name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "prefix")

    @property
    @pulumi.getter
    def recursive(self) -> Optional[Any]:
        """
        If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "recursive")

    @property
    @pulumi.getter(name="wildcardFileName")
    def wildcard_file_name(self) -> Optional[Any]:
        """
        Azure blob wildcardFileName. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_file_name")

    @property
    @pulumi.getter(name="wildcardFolderPath")
    def wildcard_folder_path(self) -> Optional[Any]:
        """
        Azure blob wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_folder_path")


@pulumi.output_type
class AzureBlobStorageWriteSettingsResponse(dict):
    """
    Azure blob write settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "blockSizeInMB":
            suggest = "block_size_in_mb"
        elif key == "copyBehavior":
            suggest = "copy_behavior"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureBlobStorageWriteSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureBlobStorageWriteSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureBlobStorageWriteSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 block_size_in_mb: Optional[Any] = None,
                 copy_behavior: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None):
        """
        Azure blob write settings.
        :param str type: The write setting type.
               Expected value is 'AzureBlobStorageWriteSettings'.
        :param Any block_size_in_mb: Indicates the block size(MB) when writing data to blob. Type: integer (or Expression with resultType integer).
        :param Any copy_behavior: The type of copy behavior for copy sink.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        pulumi.set(__self__, "type", 'AzureBlobStorageWriteSettings')
        if block_size_in_mb is not None:
            pulumi.set(__self__, "block_size_in_mb", block_size_in_mb)
        if copy_behavior is not None:
            pulumi.set(__self__, "copy_behavior", copy_behavior)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The write setting type.
        Expected value is 'AzureBlobStorageWriteSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="blockSizeInMB")
    def block_size_in_mb(self) -> Optional[Any]:
        """
        Indicates the block size(MB) when writing data to blob. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "block_size_in_mb")

    @property
    @pulumi.getter(name="copyBehavior")
    def copy_behavior(self) -> Optional[Any]:
        """
        The type of copy behavior for copy sink.
        """
        return pulumi.get(self, "copy_behavior")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")


@pulumi.output_type
class AzureDataExplorerCommandActivityResponse(dict):
    """
    Azure Data Explorer command activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "commandTimeout":
            suggest = "command_timeout"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureDataExplorerCommandActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureDataExplorerCommandActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureDataExplorerCommandActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 command: Any,
                 name: str,
                 type: str,
                 command_timeout: Optional[Any] = None,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        Azure Data Explorer command activity.
        :param Any command: A control command, according to the Azure Data Explorer command syntax. Type: string (or Expression with resultType string).
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'AzureDataExplorerCommand'.
        :param Any command_timeout: Control command timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9]))..)
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "command", command)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'AzureDataExplorerCommand')
        if command_timeout is not None:
            pulumi.set(__self__, "command_timeout", command_timeout)
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter
    def command(self) -> Any:
        """
        A control command, according to the Azure Data Explorer command syntax. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "command")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'AzureDataExplorerCommand'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="commandTimeout")
    def command_timeout(self) -> Optional[Any]:
        """
        Control command timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9]))..)
        """
        return pulumi.get(self, "command_timeout")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class AzureDataExplorerLinkedServiceResponse(dict):
    """
    Azure Data Explorer (Kusto) linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectVia":
            suggest = "connect_via"
        elif key == "servicePrincipalId":
            suggest = "service_principal_id"
        elif key == "servicePrincipalKey":
            suggest = "service_principal_key"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureDataExplorerLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureDataExplorerLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureDataExplorerLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 database: Any,
                 endpoint: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 credential: Optional['outputs.CredentialReferenceResponse'] = None,
                 description: Optional[str] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 service_principal_id: Optional[Any] = None,
                 service_principal_key: Optional[Any] = None,
                 tenant: Optional[Any] = None):
        """
        Azure Data Explorer (Kusto) linked service.
        :param Any database: Database name for connection. Type: string (or Expression with resultType string).
        :param Any endpoint: The endpoint of Azure Data Explorer (the engine's endpoint). URL will be in the format https://<clusterName>.<regionName>.kusto.windows.net. Type: string (or Expression with resultType string)
        :param str type: Type of linked service.
               Expected value is 'AzureDataExplorer'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param 'CredentialReferenceResponse' credential: The credential reference containing authentication information.
        :param str description: Linked service description.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Any service_principal_id: The ID of the service principal used to authenticate against Azure Data Explorer. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_key: The key of the service principal used to authenticate against Kusto.
        :param Any tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "database", database)
        pulumi.set(__self__, "endpoint", endpoint)
        pulumi.set(__self__, "type", 'AzureDataExplorer')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if credential is not None:
            pulumi.set(__self__, "credential", credential)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if service_principal_id is not None:
            pulumi.set(__self__, "service_principal_id", service_principal_id)
        if service_principal_key is not None:
            pulumi.set(__self__, "service_principal_key", service_principal_key)
        if tenant is not None:
            pulumi.set(__self__, "tenant", tenant)

    @property
    @pulumi.getter
    def database(self) -> Any:
        """
        Database name for connection. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "database")

    @property
    @pulumi.getter
    def endpoint(self) -> Any:
        """
        The endpoint of Azure Data Explorer (the engine's endpoint). URL will be in the format https://<clusterName>.<regionName>.kusto.windows.net. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "endpoint")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AzureDataExplorer'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def credential(self) -> Optional['outputs.CredentialReferenceResponse']:
        """
        The credential reference containing authentication information.
        """
        return pulumi.get(self, "credential")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="servicePrincipalId")
    def service_principal_id(self) -> Optional[Any]:
        """
        The ID of the service principal used to authenticate against Azure Data Explorer. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_id")

    @property
    @pulumi.getter(name="servicePrincipalKey")
    def service_principal_key(self) -> Optional[Any]:
        """
        The key of the service principal used to authenticate against Kusto.
        """
        return pulumi.get(self, "service_principal_key")

    @property
    @pulumi.getter
    def tenant(self) -> Optional[Any]:
        """
        The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "tenant")


@pulumi.output_type
class AzureDataExplorerSinkResponse(dict):
    """
    A copy activity Azure Data Explorer sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "flushImmediately":
            suggest = "flush_immediately"
        elif key == "ingestionMappingAsJson":
            suggest = "ingestion_mapping_as_json"
        elif key == "ingestionMappingName":
            suggest = "ingestion_mapping_name"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureDataExplorerSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureDataExplorerSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureDataExplorerSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 flush_immediately: Optional[Any] = None,
                 ingestion_mapping_as_json: Optional[Any] = None,
                 ingestion_mapping_name: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity Azure Data Explorer sink.
        :param str type: Copy sink type.
               Expected value is 'AzureDataExplorerSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any flush_immediately: If set to true, any aggregation will be skipped. Default is false. Type: boolean.
        :param Any ingestion_mapping_as_json: An explicit column mapping description provided in a json format. Type: string.
        :param Any ingestion_mapping_name: A name of a pre-created csv mapping that was defined on the target Kusto table. Type: string.
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'AzureDataExplorerSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if flush_immediately is not None:
            pulumi.set(__self__, "flush_immediately", flush_immediately)
        if ingestion_mapping_as_json is not None:
            pulumi.set(__self__, "ingestion_mapping_as_json", ingestion_mapping_as_json)
        if ingestion_mapping_name is not None:
            pulumi.set(__self__, "ingestion_mapping_name", ingestion_mapping_name)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'AzureDataExplorerSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="flushImmediately")
    def flush_immediately(self) -> Optional[Any]:
        """
        If set to true, any aggregation will be skipped. Default is false. Type: boolean.
        """
        return pulumi.get(self, "flush_immediately")

    @property
    @pulumi.getter(name="ingestionMappingAsJson")
    def ingestion_mapping_as_json(self) -> Optional[Any]:
        """
        An explicit column mapping description provided in a json format. Type: string.
        """
        return pulumi.get(self, "ingestion_mapping_as_json")

    @property
    @pulumi.getter(name="ingestionMappingName")
    def ingestion_mapping_name(self) -> Optional[Any]:
        """
        A name of a pre-created csv mapping that was defined on the target Kusto table. Type: string.
        """
        return pulumi.get(self, "ingestion_mapping_name")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class AzureDataExplorerSourceResponse(dict):
    """
    A copy activity Azure Data Explorer (Kusto) source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "noTruncation":
            suggest = "no_truncation"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureDataExplorerSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureDataExplorerSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureDataExplorerSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 query: Any,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 no_truncation: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Azure Data Explorer (Kusto) source.
        :param Any query: Database query. Should be a Kusto Query Language (KQL) query. Type: string (or Expression with resultType string).
        :param str type: Copy source type.
               Expected value is 'AzureDataExplorerSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any no_truncation: The name of the Boolean option that controls whether truncation is applied to result-sets that go beyond a certain row-count limit.
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9]))..
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "query", query)
        pulumi.set(__self__, "type", 'AzureDataExplorerSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if no_truncation is not None:
            pulumi.set(__self__, "no_truncation", no_truncation)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def query(self) -> Any:
        """
        Database query. Should be a Kusto Query Language (KQL) query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'AzureDataExplorerSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="noTruncation")
    def no_truncation(self) -> Optional[Any]:
        """
        The name of the Boolean option that controls whether truncation is applied to result-sets that go beyond a certain row-count limit.
        """
        return pulumi.get(self, "no_truncation")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9]))..
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class AzureDataExplorerTableDatasetResponse(dict):
    """
    The Azure Data Explorer (Kusto) dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureDataExplorerTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureDataExplorerTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureDataExplorerTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None):
        """
        The Azure Data Explorer (Kusto) dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'AzureDataExplorerTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The table name of the Azure Data Explorer database. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'AzureDataExplorerTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'AzureDataExplorerTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The table name of the Azure Data Explorer database. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")


@pulumi.output_type
class AzureDataLakeAnalyticsLinkedServiceResponse(dict):
    """
    Azure Data Lake Analytics linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountName":
            suggest = "account_name"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "dataLakeAnalyticsUri":
            suggest = "data_lake_analytics_uri"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "resourceGroupName":
            suggest = "resource_group_name"
        elif key == "servicePrincipalId":
            suggest = "service_principal_id"
        elif key == "servicePrincipalKey":
            suggest = "service_principal_key"
        elif key == "subscriptionId":
            suggest = "subscription_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureDataLakeAnalyticsLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureDataLakeAnalyticsLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureDataLakeAnalyticsLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 account_name: Any,
                 tenant: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 data_lake_analytics_uri: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 resource_group_name: Optional[Any] = None,
                 service_principal_id: Optional[Any] = None,
                 service_principal_key: Optional[Any] = None,
                 subscription_id: Optional[Any] = None):
        """
        Azure Data Lake Analytics linked service.
        :param Any account_name: The Azure Data Lake Analytics account name. Type: string (or Expression with resultType string).
        :param Any tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'AzureDataLakeAnalytics'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any data_lake_analytics_uri: Azure Data Lake Analytics URI Type: string (or Expression with resultType string).
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Any resource_group_name: Data Lake Analytics account resource group name (if different from Data Factory account). Type: string (or Expression with resultType string).
        :param Any service_principal_id: The ID of the application used to authenticate against the Azure Data Lake Analytics account. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_key: The Key of the application used to authenticate against the Azure Data Lake Analytics account.
        :param Any subscription_id: Data Lake Analytics account subscription ID (if different from Data Factory account). Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "account_name", account_name)
        pulumi.set(__self__, "tenant", tenant)
        pulumi.set(__self__, "type", 'AzureDataLakeAnalytics')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if data_lake_analytics_uri is not None:
            pulumi.set(__self__, "data_lake_analytics_uri", data_lake_analytics_uri)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if resource_group_name is not None:
            pulumi.set(__self__, "resource_group_name", resource_group_name)
        if service_principal_id is not None:
            pulumi.set(__self__, "service_principal_id", service_principal_id)
        if service_principal_key is not None:
            pulumi.set(__self__, "service_principal_key", service_principal_key)
        if subscription_id is not None:
            pulumi.set(__self__, "subscription_id", subscription_id)

    @property
    @pulumi.getter(name="accountName")
    def account_name(self) -> Any:
        """
        The Azure Data Lake Analytics account name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "account_name")

    @property
    @pulumi.getter
    def tenant(self) -> Any:
        """
        The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "tenant")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AzureDataLakeAnalytics'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="dataLakeAnalyticsUri")
    def data_lake_analytics_uri(self) -> Optional[Any]:
        """
        Azure Data Lake Analytics URI Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "data_lake_analytics_uri")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="resourceGroupName")
    def resource_group_name(self) -> Optional[Any]:
        """
        Data Lake Analytics account resource group name (if different from Data Factory account). Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "resource_group_name")

    @property
    @pulumi.getter(name="servicePrincipalId")
    def service_principal_id(self) -> Optional[Any]:
        """
        The ID of the application used to authenticate against the Azure Data Lake Analytics account. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_id")

    @property
    @pulumi.getter(name="servicePrincipalKey")
    def service_principal_key(self) -> Optional[Any]:
        """
        The Key of the application used to authenticate against the Azure Data Lake Analytics account.
        """
        return pulumi.get(self, "service_principal_key")

    @property
    @pulumi.getter(name="subscriptionId")
    def subscription_id(self) -> Optional[Any]:
        """
        Data Lake Analytics account subscription ID (if different from Data Factory account). Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "subscription_id")


@pulumi.output_type
class AzureDataLakeStoreDatasetResponse(dict):
    """
    Azure Data Lake Store dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "fileName":
            suggest = "file_name"
        elif key == "folderPath":
            suggest = "folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureDataLakeStoreDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureDataLakeStoreDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureDataLakeStoreDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 compression: Optional['outputs.DatasetCompressionResponse'] = None,
                 description: Optional[str] = None,
                 file_name: Optional[Any] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 folder_path: Optional[Any] = None,
                 format: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        Azure Data Lake Store dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'AzureDataLakeStoreFile'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param 'DatasetCompressionResponse' compression: The data compression method used for the item(s) in the Azure Data Lake Store.
        :param str description: Dataset description.
        :param Any file_name: The name of the file in the Azure Data Lake Store. Type: string (or Expression with resultType string).
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Any folder_path: Path to the folder in the Azure Data Lake Store. Type: string (or Expression with resultType string).
        :param Union['AvroFormatResponse', 'JsonFormatResponse', 'OrcFormatResponse', 'ParquetFormatResponse', 'TextFormatResponse'] format: The format of the Data Lake Store.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'AzureDataLakeStoreFile')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if compression is not None:
            pulumi.set(__self__, "compression", compression)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if file_name is not None:
            pulumi.set(__self__, "file_name", file_name)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if folder_path is not None:
            pulumi.set(__self__, "folder_path", folder_path)
        if format is not None:
            pulumi.set(__self__, "format", format)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'AzureDataLakeStoreFile'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def compression(self) -> Optional['outputs.DatasetCompressionResponse']:
        """
        The data compression method used for the item(s) in the Azure Data Lake Store.
        """
        return pulumi.get(self, "compression")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="fileName")
    def file_name(self) -> Optional[Any]:
        """
        The name of the file in the Azure Data Lake Store. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_name")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter(name="folderPath")
    def folder_path(self) -> Optional[Any]:
        """
        Path to the folder in the Azure Data Lake Store. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "folder_path")

    @property
    @pulumi.getter
    def format(self) -> Optional[Any]:
        """
        The format of the Data Lake Store.
        """
        return pulumi.get(self, "format")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class AzureDataLakeStoreLinkedServiceResponse(dict):
    """
    Azure Data Lake Store linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dataLakeStoreUri":
            suggest = "data_lake_store_uri"
        elif key == "accountName":
            suggest = "account_name"
        elif key == "azureCloudType":
            suggest = "azure_cloud_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "resourceGroupName":
            suggest = "resource_group_name"
        elif key == "servicePrincipalId":
            suggest = "service_principal_id"
        elif key == "servicePrincipalKey":
            suggest = "service_principal_key"
        elif key == "subscriptionId":
            suggest = "subscription_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureDataLakeStoreLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureDataLakeStoreLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureDataLakeStoreLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 data_lake_store_uri: Any,
                 type: str,
                 account_name: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 azure_cloud_type: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 credential: Optional['outputs.CredentialReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 resource_group_name: Optional[Any] = None,
                 service_principal_id: Optional[Any] = None,
                 service_principal_key: Optional[Any] = None,
                 subscription_id: Optional[Any] = None,
                 tenant: Optional[Any] = None):
        """
        Azure Data Lake Store linked service.
        :param Any data_lake_store_uri: Data Lake Store service URI. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'AzureDataLakeStore'.
        :param Any account_name: Data Lake Store account name. Type: string (or Expression with resultType string).
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param 'CredentialReferenceResponse' credential: The credential reference containing authentication information.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Any resource_group_name: Data Lake Store account resource group name (if different from Data Factory account). Type: string (or Expression with resultType string).
        :param Any service_principal_id: The ID of the application used to authenticate against the Azure Data Lake Store account. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_key: The Key of the application used to authenticate against the Azure Data Lake Store account.
        :param Any subscription_id: Data Lake Store account subscription ID (if different from Data Factory account). Type: string (or Expression with resultType string).
        :param Any tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "data_lake_store_uri", data_lake_store_uri)
        pulumi.set(__self__, "type", 'AzureDataLakeStore')
        if account_name is not None:
            pulumi.set(__self__, "account_name", account_name)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if azure_cloud_type is not None:
            pulumi.set(__self__, "azure_cloud_type", azure_cloud_type)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if credential is not None:
            pulumi.set(__self__, "credential", credential)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if resource_group_name is not None:
            pulumi.set(__self__, "resource_group_name", resource_group_name)
        if service_principal_id is not None:
            pulumi.set(__self__, "service_principal_id", service_principal_id)
        if service_principal_key is not None:
            pulumi.set(__self__, "service_principal_key", service_principal_key)
        if subscription_id is not None:
            pulumi.set(__self__, "subscription_id", subscription_id)
        if tenant is not None:
            pulumi.set(__self__, "tenant", tenant)

    @property
    @pulumi.getter(name="dataLakeStoreUri")
    def data_lake_store_uri(self) -> Any:
        """
        Data Lake Store service URI. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "data_lake_store_uri")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AzureDataLakeStore'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="accountName")
    def account_name(self) -> Optional[Any]:
        """
        Data Lake Store account name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "account_name")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="azureCloudType")
    def azure_cloud_type(self) -> Optional[Any]:
        """
        Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "azure_cloud_type")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def credential(self) -> Optional['outputs.CredentialReferenceResponse']:
        """
        The credential reference containing authentication information.
        """
        return pulumi.get(self, "credential")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="resourceGroupName")
    def resource_group_name(self) -> Optional[Any]:
        """
        Data Lake Store account resource group name (if different from Data Factory account). Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "resource_group_name")

    @property
    @pulumi.getter(name="servicePrincipalId")
    def service_principal_id(self) -> Optional[Any]:
        """
        The ID of the application used to authenticate against the Azure Data Lake Store account. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_id")

    @property
    @pulumi.getter(name="servicePrincipalKey")
    def service_principal_key(self) -> Optional[Any]:
        """
        The Key of the application used to authenticate against the Azure Data Lake Store account.
        """
        return pulumi.get(self, "service_principal_key")

    @property
    @pulumi.getter(name="subscriptionId")
    def subscription_id(self) -> Optional[Any]:
        """
        Data Lake Store account subscription ID (if different from Data Factory account). Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "subscription_id")

    @property
    @pulumi.getter
    def tenant(self) -> Optional[Any]:
        """
        The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "tenant")


@pulumi.output_type
class AzureDataLakeStoreLocationResponse(dict):
    """
    The location of azure data lake store dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "fileName":
            suggest = "file_name"
        elif key == "folderPath":
            suggest = "folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureDataLakeStoreLocationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureDataLakeStoreLocationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureDataLakeStoreLocationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 file_name: Optional[Any] = None,
                 folder_path: Optional[Any] = None):
        """
        The location of azure data lake store dataset.
        :param str type: Type of dataset storage location.
               Expected value is 'AzureDataLakeStoreLocation'.
        :param Any file_name: Specify the file name of dataset. Type: string (or Expression with resultType string).
        :param Any folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string)
        """
        pulumi.set(__self__, "type", 'AzureDataLakeStoreLocation')
        if file_name is not None:
            pulumi.set(__self__, "file_name", file_name)
        if folder_path is not None:
            pulumi.set(__self__, "folder_path", folder_path)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset storage location.
        Expected value is 'AzureDataLakeStoreLocation'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="fileName")
    def file_name(self) -> Optional[Any]:
        """
        Specify the file name of dataset. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_name")

    @property
    @pulumi.getter(name="folderPath")
    def folder_path(self) -> Optional[Any]:
        """
        Specify the folder path of dataset. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "folder_path")


@pulumi.output_type
class AzureDataLakeStoreReadSettingsResponse(dict):
    """
    Azure data lake store read settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deleteFilesAfterCompletion":
            suggest = "delete_files_after_completion"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "enablePartitionDiscovery":
            suggest = "enable_partition_discovery"
        elif key == "fileListPath":
            suggest = "file_list_path"
        elif key == "listAfter":
            suggest = "list_after"
        elif key == "listBefore":
            suggest = "list_before"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "modifiedDatetimeEnd":
            suggest = "modified_datetime_end"
        elif key == "modifiedDatetimeStart":
            suggest = "modified_datetime_start"
        elif key == "partitionRootPath":
            suggest = "partition_root_path"
        elif key == "wildcardFileName":
            suggest = "wildcard_file_name"
        elif key == "wildcardFolderPath":
            suggest = "wildcard_folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureDataLakeStoreReadSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureDataLakeStoreReadSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureDataLakeStoreReadSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 delete_files_after_completion: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 enable_partition_discovery: Optional[bool] = None,
                 file_list_path: Optional[Any] = None,
                 list_after: Optional[Any] = None,
                 list_before: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 modified_datetime_end: Optional[Any] = None,
                 modified_datetime_start: Optional[Any] = None,
                 partition_root_path: Optional[Any] = None,
                 recursive: Optional[Any] = None,
                 wildcard_file_name: Optional[Any] = None,
                 wildcard_folder_path: Optional[Any] = None):
        """
        Azure data lake store read settings.
        :param str type: The read setting type.
               Expected value is 'AzureDataLakeStoreReadSettings'.
        :param Any delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param bool enable_partition_discovery: Indicates whether to enable partition discovery.
        :param Any file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        :param Any list_after: Lists files after the value (exclusive) based on file/folder names’ lexicographical order. Applies under the folderPath in data set, and filter files/sub-folders under the folderPath. Type: string (or Expression with resultType string).
        :param Any list_before: Lists files before the value (inclusive) based on file/folder names’ lexicographical order. Applies under the folderPath in data set, and filter files/sub-folders under the folderPath. Type: string (or Expression with resultType string).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string).
        :param Any modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string).
        :param Any partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        :param Any recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        :param Any wildcard_file_name: ADLS wildcardFileName. Type: string (or Expression with resultType string).
        :param Any wildcard_folder_path: ADLS wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'AzureDataLakeStoreReadSettings')
        if delete_files_after_completion is not None:
            pulumi.set(__self__, "delete_files_after_completion", delete_files_after_completion)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if enable_partition_discovery is not None:
            pulumi.set(__self__, "enable_partition_discovery", enable_partition_discovery)
        if file_list_path is not None:
            pulumi.set(__self__, "file_list_path", file_list_path)
        if list_after is not None:
            pulumi.set(__self__, "list_after", list_after)
        if list_before is not None:
            pulumi.set(__self__, "list_before", list_before)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if modified_datetime_end is not None:
            pulumi.set(__self__, "modified_datetime_end", modified_datetime_end)
        if modified_datetime_start is not None:
            pulumi.set(__self__, "modified_datetime_start", modified_datetime_start)
        if partition_root_path is not None:
            pulumi.set(__self__, "partition_root_path", partition_root_path)
        if recursive is not None:
            pulumi.set(__self__, "recursive", recursive)
        if wildcard_file_name is not None:
            pulumi.set(__self__, "wildcard_file_name", wildcard_file_name)
        if wildcard_folder_path is not None:
            pulumi.set(__self__, "wildcard_folder_path", wildcard_folder_path)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The read setting type.
        Expected value is 'AzureDataLakeStoreReadSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="deleteFilesAfterCompletion")
    def delete_files_after_completion(self) -> Optional[Any]:
        """
        Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "delete_files_after_completion")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="enablePartitionDiscovery")
    def enable_partition_discovery(self) -> Optional[bool]:
        """
        Indicates whether to enable partition discovery.
        """
        return pulumi.get(self, "enable_partition_discovery")

    @property
    @pulumi.getter(name="fileListPath")
    def file_list_path(self) -> Optional[Any]:
        """
        Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_list_path")

    @property
    @pulumi.getter(name="listAfter")
    def list_after(self) -> Optional[Any]:
        """
        Lists files after the value (exclusive) based on file/folder names’ lexicographical order. Applies under the folderPath in data set, and filter files/sub-folders under the folderPath. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "list_after")

    @property
    @pulumi.getter(name="listBefore")
    def list_before(self) -> Optional[Any]:
        """
        Lists files before the value (inclusive) based on file/folder names’ lexicographical order. Applies under the folderPath in data set, and filter files/sub-folders under the folderPath. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "list_before")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="modifiedDatetimeEnd")
    def modified_datetime_end(self) -> Optional[Any]:
        """
        The end of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_end")

    @property
    @pulumi.getter(name="modifiedDatetimeStart")
    def modified_datetime_start(self) -> Optional[Any]:
        """
        The start of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_start")

    @property
    @pulumi.getter(name="partitionRootPath")
    def partition_root_path(self) -> Optional[Any]:
        """
        Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_root_path")

    @property
    @pulumi.getter
    def recursive(self) -> Optional[Any]:
        """
        If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "recursive")

    @property
    @pulumi.getter(name="wildcardFileName")
    def wildcard_file_name(self) -> Optional[Any]:
        """
        ADLS wildcardFileName. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_file_name")

    @property
    @pulumi.getter(name="wildcardFolderPath")
    def wildcard_folder_path(self) -> Optional[Any]:
        """
        ADLS wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_folder_path")


@pulumi.output_type
class AzureDataLakeStoreSinkResponse(dict):
    """
    A copy activity Azure Data Lake Store sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "copyBehavior":
            suggest = "copy_behavior"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "enableAdlsSingleFileParallel":
            suggest = "enable_adls_single_file_parallel"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureDataLakeStoreSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureDataLakeStoreSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureDataLakeStoreSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 copy_behavior: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 enable_adls_single_file_parallel: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity Azure Data Lake Store sink.
        :param str type: Copy sink type.
               Expected value is 'AzureDataLakeStoreSink'.
        :param Any copy_behavior: The type of copy behavior for copy sink.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any enable_adls_single_file_parallel: Single File Parallel.
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'AzureDataLakeStoreSink')
        if copy_behavior is not None:
            pulumi.set(__self__, "copy_behavior", copy_behavior)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if enable_adls_single_file_parallel is not None:
            pulumi.set(__self__, "enable_adls_single_file_parallel", enable_adls_single_file_parallel)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'AzureDataLakeStoreSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="copyBehavior")
    def copy_behavior(self) -> Optional[Any]:
        """
        The type of copy behavior for copy sink.
        """
        return pulumi.get(self, "copy_behavior")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="enableAdlsSingleFileParallel")
    def enable_adls_single_file_parallel(self) -> Optional[Any]:
        """
        Single File Parallel.
        """
        return pulumi.get(self, "enable_adls_single_file_parallel")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class AzureDataLakeStoreSourceResponse(dict):
    """
    A copy activity Azure Data Lake source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureDataLakeStoreSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureDataLakeStoreSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureDataLakeStoreSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 recursive: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Azure Data Lake source.
        :param str type: Copy source type.
               Expected value is 'AzureDataLakeStoreSource'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'AzureDataLakeStoreSource')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if recursive is not None:
            pulumi.set(__self__, "recursive", recursive)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'AzureDataLakeStoreSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def recursive(self) -> Optional[Any]:
        """
        If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "recursive")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class AzureDataLakeStoreWriteSettingsResponse(dict):
    """
    Azure data lake store write settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "copyBehavior":
            suggest = "copy_behavior"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "expiryDateTime":
            suggest = "expiry_date_time"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureDataLakeStoreWriteSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureDataLakeStoreWriteSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureDataLakeStoreWriteSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 copy_behavior: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 expiry_date_time: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None):
        """
        Azure data lake store write settings.
        :param str type: The write setting type.
               Expected value is 'AzureDataLakeStoreWriteSettings'.
        :param Any copy_behavior: The type of copy behavior for copy sink.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any expiry_date_time: Specifies the expiry time of the written files. The time is applied to the UTC time zone in the format of "2018-12-01T05:00:00Z". Default value is NULL. Type: integer (or Expression with resultType integer).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        pulumi.set(__self__, "type", 'AzureDataLakeStoreWriteSettings')
        if copy_behavior is not None:
            pulumi.set(__self__, "copy_behavior", copy_behavior)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if expiry_date_time is not None:
            pulumi.set(__self__, "expiry_date_time", expiry_date_time)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The write setting type.
        Expected value is 'AzureDataLakeStoreWriteSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="copyBehavior")
    def copy_behavior(self) -> Optional[Any]:
        """
        The type of copy behavior for copy sink.
        """
        return pulumi.get(self, "copy_behavior")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="expiryDateTime")
    def expiry_date_time(self) -> Optional[Any]:
        """
        Specifies the expiry time of the written files. The time is applied to the UTC time zone in the format of "2018-12-01T05:00:00Z". Default value is NULL. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "expiry_date_time")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")


@pulumi.output_type
class AzureDatabricksDeltaLakeDatasetResponse(dict):
    """
    Azure Databricks Delta Lake dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureDatabricksDeltaLakeDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureDatabricksDeltaLakeDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureDatabricksDeltaLakeDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 database: Optional[Any] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None):
        """
        Azure Databricks Delta Lake dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'AzureDatabricksDeltaLakeDataset'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param Any database: The database name of delta table. Type: string (or Expression with resultType string).
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The name of delta table. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'AzureDatabricksDeltaLakeDataset')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if database is not None:
            pulumi.set(__self__, "database", database)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'AzureDatabricksDeltaLakeDataset'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def database(self) -> Optional[Any]:
        """
        The database name of delta table. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "database")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The name of delta table. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")


@pulumi.output_type
class AzureDatabricksDeltaLakeExportCommandResponse(dict):
    """
    Azure Databricks Delta Lake export command settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dateFormat":
            suggest = "date_format"
        elif key == "timestampFormat":
            suggest = "timestamp_format"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureDatabricksDeltaLakeExportCommandResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureDatabricksDeltaLakeExportCommandResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureDatabricksDeltaLakeExportCommandResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 date_format: Optional[Any] = None,
                 timestamp_format: Optional[Any] = None):
        """
        Azure Databricks Delta Lake export command settings.
        :param str type: The export setting type.
               Expected value is 'AzureDatabricksDeltaLakeExportCommand'.
        :param Any date_format: Specify the date format for the csv in Azure Databricks Delta Lake Copy. Type: string (or Expression with resultType string).
        :param Any timestamp_format: Specify the timestamp format for the csv in Azure Databricks Delta Lake Copy. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'AzureDatabricksDeltaLakeExportCommand')
        if date_format is not None:
            pulumi.set(__self__, "date_format", date_format)
        if timestamp_format is not None:
            pulumi.set(__self__, "timestamp_format", timestamp_format)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The export setting type.
        Expected value is 'AzureDatabricksDeltaLakeExportCommand'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="dateFormat")
    def date_format(self) -> Optional[Any]:
        """
        Specify the date format for the csv in Azure Databricks Delta Lake Copy. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "date_format")

    @property
    @pulumi.getter(name="timestampFormat")
    def timestamp_format(self) -> Optional[Any]:
        """
        Specify the timestamp format for the csv in Azure Databricks Delta Lake Copy. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "timestamp_format")


@pulumi.output_type
class AzureDatabricksDeltaLakeImportCommandResponse(dict):
    """
    Azure Databricks Delta Lake import command settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dateFormat":
            suggest = "date_format"
        elif key == "timestampFormat":
            suggest = "timestamp_format"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureDatabricksDeltaLakeImportCommandResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureDatabricksDeltaLakeImportCommandResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureDatabricksDeltaLakeImportCommandResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 date_format: Optional[Any] = None,
                 timestamp_format: Optional[Any] = None):
        """
        Azure Databricks Delta Lake import command settings.
        :param str type: The import setting type.
               Expected value is 'AzureDatabricksDeltaLakeImportCommand'.
        :param Any date_format: Specify the date format for csv in Azure Databricks Delta Lake Copy. Type: string (or Expression with resultType string).
        :param Any timestamp_format: Specify the timestamp format for csv in Azure Databricks Delta Lake Copy. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'AzureDatabricksDeltaLakeImportCommand')
        if date_format is not None:
            pulumi.set(__self__, "date_format", date_format)
        if timestamp_format is not None:
            pulumi.set(__self__, "timestamp_format", timestamp_format)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The import setting type.
        Expected value is 'AzureDatabricksDeltaLakeImportCommand'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="dateFormat")
    def date_format(self) -> Optional[Any]:
        """
        Specify the date format for csv in Azure Databricks Delta Lake Copy. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "date_format")

    @property
    @pulumi.getter(name="timestampFormat")
    def timestamp_format(self) -> Optional[Any]:
        """
        Specify the timestamp format for csv in Azure Databricks Delta Lake Copy. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "timestamp_format")


@pulumi.output_type
class AzureDatabricksDeltaLakeLinkedServiceResponse(dict):
    """
    Azure Databricks Delta Lake linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accessToken":
            suggest = "access_token"
        elif key == "clusterId":
            suggest = "cluster_id"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "workspaceResourceId":
            suggest = "workspace_resource_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureDatabricksDeltaLakeLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureDatabricksDeltaLakeLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureDatabricksDeltaLakeLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 domain: Any,
                 type: str,
                 access_token: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 cluster_id: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 credential: Optional['outputs.CredentialReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 workspace_resource_id: Optional[Any] = None):
        """
        Azure Databricks Delta Lake linked service.
        :param Any domain: <REGION>.azuredatabricks.net, domain name of your Databricks deployment. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'AzureDatabricksDeltaLake'.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] access_token: Access token for databricks REST API. Refer to https://docs.azuredatabricks.net/api/latest/authentication.html. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any cluster_id: The id of an existing interactive cluster that will be used for all runs of this job. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param 'CredentialReferenceResponse' credential: The credential reference containing authentication information.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Any workspace_resource_id: Workspace resource id for databricks REST API. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "domain", domain)
        pulumi.set(__self__, "type", 'AzureDatabricksDeltaLake')
        if access_token is not None:
            pulumi.set(__self__, "access_token", access_token)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if cluster_id is not None:
            pulumi.set(__self__, "cluster_id", cluster_id)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if credential is not None:
            pulumi.set(__self__, "credential", credential)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if workspace_resource_id is not None:
            pulumi.set(__self__, "workspace_resource_id", workspace_resource_id)

    @property
    @pulumi.getter
    def domain(self) -> Any:
        """
        <REGION>.azuredatabricks.net, domain name of your Databricks deployment. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "domain")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AzureDatabricksDeltaLake'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="accessToken")
    def access_token(self) -> Optional[Any]:
        """
        Access token for databricks REST API. Refer to https://docs.azuredatabricks.net/api/latest/authentication.html. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "access_token")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="clusterId")
    def cluster_id(self) -> Optional[Any]:
        """
        The id of an existing interactive cluster that will be used for all runs of this job. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "cluster_id")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def credential(self) -> Optional['outputs.CredentialReferenceResponse']:
        """
        The credential reference containing authentication information.
        """
        return pulumi.get(self, "credential")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="workspaceResourceId")
    def workspace_resource_id(self) -> Optional[Any]:
        """
        Workspace resource id for databricks REST API. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "workspace_resource_id")


@pulumi.output_type
class AzureDatabricksDeltaLakeSinkResponse(dict):
    """
    A copy activity Azure Databricks Delta Lake sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "importSettings":
            suggest = "import_settings"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "preCopyScript":
            suggest = "pre_copy_script"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureDatabricksDeltaLakeSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureDatabricksDeltaLakeSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureDatabricksDeltaLakeSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 import_settings: Optional['outputs.AzureDatabricksDeltaLakeImportCommandResponse'] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 pre_copy_script: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity Azure Databricks Delta Lake sink.
        :param str type: Copy sink type.
               Expected value is 'AzureDatabricksDeltaLakeSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param 'AzureDatabricksDeltaLakeImportCommandResponse' import_settings: Azure Databricks Delta Lake import settings.
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'AzureDatabricksDeltaLakeSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if import_settings is not None:
            pulumi.set(__self__, "import_settings", import_settings)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if pre_copy_script is not None:
            pulumi.set(__self__, "pre_copy_script", pre_copy_script)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'AzureDatabricksDeltaLakeSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="importSettings")
    def import_settings(self) -> Optional['outputs.AzureDatabricksDeltaLakeImportCommandResponse']:
        """
        Azure Databricks Delta Lake import settings.
        """
        return pulumi.get(self, "import_settings")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="preCopyScript")
    def pre_copy_script(self) -> Optional[Any]:
        """
        SQL pre-copy script. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "pre_copy_script")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class AzureDatabricksDeltaLakeSourceResponse(dict):
    """
    A copy activity Azure Databricks Delta Lake source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "exportSettings":
            suggest = "export_settings"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureDatabricksDeltaLakeSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureDatabricksDeltaLakeSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureDatabricksDeltaLakeSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 export_settings: Optional['outputs.AzureDatabricksDeltaLakeExportCommandResponse'] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Azure Databricks Delta Lake source.
        :param str type: Copy source type.
               Expected value is 'AzureDatabricksDeltaLakeSource'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param 'AzureDatabricksDeltaLakeExportCommandResponse' export_settings: Azure Databricks Delta Lake export settings.
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: Azure Databricks Delta Lake Sql query. Type: string (or Expression with resultType string).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'AzureDatabricksDeltaLakeSource')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if export_settings is not None:
            pulumi.set(__self__, "export_settings", export_settings)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'AzureDatabricksDeltaLakeSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="exportSettings")
    def export_settings(self) -> Optional['outputs.AzureDatabricksDeltaLakeExportCommandResponse']:
        """
        Azure Databricks Delta Lake export settings.
        """
        return pulumi.get(self, "export_settings")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        Azure Databricks Delta Lake Sql query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class AzureDatabricksLinkedServiceResponse(dict):
    """
    Azure Databricks linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accessToken":
            suggest = "access_token"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "existingClusterId":
            suggest = "existing_cluster_id"
        elif key == "instancePoolId":
            suggest = "instance_pool_id"
        elif key == "newClusterCustomTags":
            suggest = "new_cluster_custom_tags"
        elif key == "newClusterDriverNodeType":
            suggest = "new_cluster_driver_node_type"
        elif key == "newClusterEnableElasticDisk":
            suggest = "new_cluster_enable_elastic_disk"
        elif key == "newClusterInitScripts":
            suggest = "new_cluster_init_scripts"
        elif key == "newClusterLogDestination":
            suggest = "new_cluster_log_destination"
        elif key == "newClusterNodeType":
            suggest = "new_cluster_node_type"
        elif key == "newClusterNumOfWorker":
            suggest = "new_cluster_num_of_worker"
        elif key == "newClusterSparkConf":
            suggest = "new_cluster_spark_conf"
        elif key == "newClusterSparkEnvVars":
            suggest = "new_cluster_spark_env_vars"
        elif key == "newClusterVersion":
            suggest = "new_cluster_version"
        elif key == "policyId":
            suggest = "policy_id"
        elif key == "workspaceResourceId":
            suggest = "workspace_resource_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureDatabricksLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureDatabricksLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureDatabricksLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 domain: Any,
                 type: str,
                 access_token: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 authentication: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 credential: Optional['outputs.CredentialReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 existing_cluster_id: Optional[Any] = None,
                 instance_pool_id: Optional[Any] = None,
                 new_cluster_custom_tags: Optional[Mapping[str, Any]] = None,
                 new_cluster_driver_node_type: Optional[Any] = None,
                 new_cluster_enable_elastic_disk: Optional[Any] = None,
                 new_cluster_init_scripts: Optional[Any] = None,
                 new_cluster_log_destination: Optional[Any] = None,
                 new_cluster_node_type: Optional[Any] = None,
                 new_cluster_num_of_worker: Optional[Any] = None,
                 new_cluster_spark_conf: Optional[Mapping[str, Any]] = None,
                 new_cluster_spark_env_vars: Optional[Mapping[str, Any]] = None,
                 new_cluster_version: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 policy_id: Optional[Any] = None,
                 workspace_resource_id: Optional[Any] = None):
        """
        Azure Databricks linked service.
        :param Any domain: <REGION>.azuredatabricks.net, domain name of your Databricks deployment. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'AzureDatabricks'.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] access_token: Access token for databricks REST API. Refer to https://docs.azuredatabricks.net/api/latest/authentication.html. Type: string (or Expression with resultType string).
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any authentication: Required to specify MSI, if using Workspace resource id for databricks REST API. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param 'CredentialReferenceResponse' credential: The credential reference containing authentication information.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Any existing_cluster_id: The id of an existing interactive cluster that will be used for all runs of this activity. Type: string (or Expression with resultType string).
        :param Any instance_pool_id: The id of an existing instance pool that will be used for all runs of this activity. Type: string (or Expression with resultType string).
        :param Mapping[str, Any] new_cluster_custom_tags: Additional tags for cluster resources. This property is ignored in instance pool configurations.
        :param Any new_cluster_driver_node_type: The driver node type for the new job cluster. This property is ignored in instance pool configurations. Type: string (or Expression with resultType string).
        :param Any new_cluster_enable_elastic_disk: Enable the elastic disk on the new cluster. This property is now ignored, and takes the default elastic disk behavior in Databricks (elastic disks are always enabled). Type: boolean (or Expression with resultType boolean).
        :param Any new_cluster_init_scripts: User-defined initialization scripts for the new cluster. Type: array of strings (or Expression with resultType array of strings).
        :param Any new_cluster_log_destination: Specify a location to deliver Spark driver, worker, and event logs. Type: string (or Expression with resultType string).
        :param Any new_cluster_node_type: The node type of the new job cluster. This property is required if newClusterVersion is specified and instancePoolId is not specified. If instancePoolId is specified, this property is ignored. Type: string (or Expression with resultType string).
        :param Any new_cluster_num_of_worker: If not using an existing interactive cluster, this specifies the number of worker nodes to use for the new job cluster or instance pool. For new job clusters, this a string-formatted Int32, like '1' means numOfWorker is 1 or '1:10' means auto-scale from 1 (min) to 10 (max). For instance pools, this is a string-formatted Int32, and can only specify a fixed number of worker nodes, such as '2'. Required if newClusterVersion is specified. Type: string (or Expression with resultType string).
        :param Mapping[str, Any] new_cluster_spark_conf: A set of optional, user-specified Spark configuration key-value pairs.
        :param Mapping[str, Any] new_cluster_spark_env_vars: A set of optional, user-specified Spark environment variables key-value pairs.
        :param Any new_cluster_version: If not using an existing interactive cluster, this specifies the Spark version of a new job cluster or instance pool nodes created for each run of this activity. Required if instancePoolId is specified. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Any policy_id: The policy id for limiting the ability to configure clusters based on a user defined set of rules. Type: string (or Expression with resultType string).
        :param Any workspace_resource_id: Workspace resource id for databricks REST API. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "domain", domain)
        pulumi.set(__self__, "type", 'AzureDatabricks')
        if access_token is not None:
            pulumi.set(__self__, "access_token", access_token)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if authentication is not None:
            pulumi.set(__self__, "authentication", authentication)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if credential is not None:
            pulumi.set(__self__, "credential", credential)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if existing_cluster_id is not None:
            pulumi.set(__self__, "existing_cluster_id", existing_cluster_id)
        if instance_pool_id is not None:
            pulumi.set(__self__, "instance_pool_id", instance_pool_id)
        if new_cluster_custom_tags is not None:
            pulumi.set(__self__, "new_cluster_custom_tags", new_cluster_custom_tags)
        if new_cluster_driver_node_type is not None:
            pulumi.set(__self__, "new_cluster_driver_node_type", new_cluster_driver_node_type)
        if new_cluster_enable_elastic_disk is not None:
            pulumi.set(__self__, "new_cluster_enable_elastic_disk", new_cluster_enable_elastic_disk)
        if new_cluster_init_scripts is not None:
            pulumi.set(__self__, "new_cluster_init_scripts", new_cluster_init_scripts)
        if new_cluster_log_destination is not None:
            pulumi.set(__self__, "new_cluster_log_destination", new_cluster_log_destination)
        if new_cluster_node_type is not None:
            pulumi.set(__self__, "new_cluster_node_type", new_cluster_node_type)
        if new_cluster_num_of_worker is not None:
            pulumi.set(__self__, "new_cluster_num_of_worker", new_cluster_num_of_worker)
        if new_cluster_spark_conf is not None:
            pulumi.set(__self__, "new_cluster_spark_conf", new_cluster_spark_conf)
        if new_cluster_spark_env_vars is not None:
            pulumi.set(__self__, "new_cluster_spark_env_vars", new_cluster_spark_env_vars)
        if new_cluster_version is not None:
            pulumi.set(__self__, "new_cluster_version", new_cluster_version)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if policy_id is not None:
            pulumi.set(__self__, "policy_id", policy_id)
        if workspace_resource_id is not None:
            pulumi.set(__self__, "workspace_resource_id", workspace_resource_id)

    @property
    @pulumi.getter
    def domain(self) -> Any:
        """
        <REGION>.azuredatabricks.net, domain name of your Databricks deployment. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "domain")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AzureDatabricks'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="accessToken")
    def access_token(self) -> Optional[Any]:
        """
        Access token for databricks REST API. Refer to https://docs.azuredatabricks.net/api/latest/authentication.html. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "access_token")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def authentication(self) -> Optional[Any]:
        """
        Required to specify MSI, if using Workspace resource id for databricks REST API. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "authentication")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def credential(self) -> Optional['outputs.CredentialReferenceResponse']:
        """
        The credential reference containing authentication information.
        """
        return pulumi.get(self, "credential")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter(name="existingClusterId")
    def existing_cluster_id(self) -> Optional[Any]:
        """
        The id of an existing interactive cluster that will be used for all runs of this activity. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "existing_cluster_id")

    @property
    @pulumi.getter(name="instancePoolId")
    def instance_pool_id(self) -> Optional[Any]:
        """
        The id of an existing instance pool that will be used for all runs of this activity. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "instance_pool_id")

    @property
    @pulumi.getter(name="newClusterCustomTags")
    def new_cluster_custom_tags(self) -> Optional[Mapping[str, Any]]:
        """
        Additional tags for cluster resources. This property is ignored in instance pool configurations.
        """
        return pulumi.get(self, "new_cluster_custom_tags")

    @property
    @pulumi.getter(name="newClusterDriverNodeType")
    def new_cluster_driver_node_type(self) -> Optional[Any]:
        """
        The driver node type for the new job cluster. This property is ignored in instance pool configurations. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "new_cluster_driver_node_type")

    @property
    @pulumi.getter(name="newClusterEnableElasticDisk")
    def new_cluster_enable_elastic_disk(self) -> Optional[Any]:
        """
        Enable the elastic disk on the new cluster. This property is now ignored, and takes the default elastic disk behavior in Databricks (elastic disks are always enabled). Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "new_cluster_enable_elastic_disk")

    @property
    @pulumi.getter(name="newClusterInitScripts")
    def new_cluster_init_scripts(self) -> Optional[Any]:
        """
        User-defined initialization scripts for the new cluster. Type: array of strings (or Expression with resultType array of strings).
        """
        return pulumi.get(self, "new_cluster_init_scripts")

    @property
    @pulumi.getter(name="newClusterLogDestination")
    def new_cluster_log_destination(self) -> Optional[Any]:
        """
        Specify a location to deliver Spark driver, worker, and event logs. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "new_cluster_log_destination")

    @property
    @pulumi.getter(name="newClusterNodeType")
    def new_cluster_node_type(self) -> Optional[Any]:
        """
        The node type of the new job cluster. This property is required if newClusterVersion is specified and instancePoolId is not specified. If instancePoolId is specified, this property is ignored. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "new_cluster_node_type")

    @property
    @pulumi.getter(name="newClusterNumOfWorker")
    def new_cluster_num_of_worker(self) -> Optional[Any]:
        """
        If not using an existing interactive cluster, this specifies the number of worker nodes to use for the new job cluster or instance pool. For new job clusters, this a string-formatted Int32, like '1' means numOfWorker is 1 or '1:10' means auto-scale from 1 (min) to 10 (max). For instance pools, this is a string-formatted Int32, and can only specify a fixed number of worker nodes, such as '2'. Required if newClusterVersion is specified. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "new_cluster_num_of_worker")

    @property
    @pulumi.getter(name="newClusterSparkConf")
    def new_cluster_spark_conf(self) -> Optional[Mapping[str, Any]]:
        """
        A set of optional, user-specified Spark configuration key-value pairs.
        """
        return pulumi.get(self, "new_cluster_spark_conf")

    @property
    @pulumi.getter(name="newClusterSparkEnvVars")
    def new_cluster_spark_env_vars(self) -> Optional[Mapping[str, Any]]:
        """
        A set of optional, user-specified Spark environment variables key-value pairs.
        """
        return pulumi.get(self, "new_cluster_spark_env_vars")

    @property
    @pulumi.getter(name="newClusterVersion")
    def new_cluster_version(self) -> Optional[Any]:
        """
        If not using an existing interactive cluster, this specifies the Spark version of a new job cluster or instance pool nodes created for each run of this activity. Required if instancePoolId is specified. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "new_cluster_version")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="policyId")
    def policy_id(self) -> Optional[Any]:
        """
        The policy id for limiting the ability to configure clusters based on a user defined set of rules. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "policy_id")

    @property
    @pulumi.getter(name="workspaceResourceId")
    def workspace_resource_id(self) -> Optional[Any]:
        """
        Workspace resource id for databricks REST API. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "workspace_resource_id")


@pulumi.output_type
class AzureFileStorageLinkedServiceResponse(dict):
    """
    Azure File Storage linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountKey":
            suggest = "account_key"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "connectionString":
            suggest = "connection_string"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "fileShare":
            suggest = "file_share"
        elif key == "sasToken":
            suggest = "sas_token"
        elif key == "sasUri":
            suggest = "sas_uri"
        elif key == "userId":
            suggest = "user_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureFileStorageLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureFileStorageLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureFileStorageLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 account_key: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 connection_string: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 file_share: Optional[Any] = None,
                 host: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 sas_token: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None,
                 sas_uri: Optional[Any] = None,
                 snapshot: Optional[Any] = None,
                 user_id: Optional[Any] = None):
        """
        Azure File Storage linked service.
        :param str type: Type of linked service.
               Expected value is 'AzureFileStorage'.
        :param 'AzureKeyVaultSecretReferenceResponse' account_key: The Azure key vault secret reference of accountKey in connection string.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any connection_string: The connection string. It is mutually exclusive with sasUri property. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Any file_share: The azure file share name. It is required when auth with accountKey/sasToken. Type: string (or Expression with resultType string).
        :param Any host: Host name of the server. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password to logon the server.
        :param 'AzureKeyVaultSecretReferenceResponse' sas_token: The Azure key vault secret reference of sasToken in sas uri.
        :param Any sas_uri: SAS URI of the Azure File resource. It is mutually exclusive with connectionString property. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param Any snapshot: The azure file share snapshot version. Type: string (or Expression with resultType string).
        :param Any user_id: User ID to logon the server. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'AzureFileStorage')
        if account_key is not None:
            pulumi.set(__self__, "account_key", account_key)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if connection_string is not None:
            pulumi.set(__self__, "connection_string", connection_string)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if file_share is not None:
            pulumi.set(__self__, "file_share", file_share)
        if host is not None:
            pulumi.set(__self__, "host", host)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if sas_token is not None:
            pulumi.set(__self__, "sas_token", sas_token)
        if sas_uri is not None:
            pulumi.set(__self__, "sas_uri", sas_uri)
        if snapshot is not None:
            pulumi.set(__self__, "snapshot", snapshot)
        if user_id is not None:
            pulumi.set(__self__, "user_id", user_id)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AzureFileStorage'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="accountKey")
    def account_key(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of accountKey in connection string.
        """
        return pulumi.get(self, "account_key")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Optional[Any]:
        """
        The connection string. It is mutually exclusive with sasUri property. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter(name="fileShare")
    def file_share(self) -> Optional[Any]:
        """
        The azure file share name. It is required when auth with accountKey/sasToken. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_share")

    @property
    @pulumi.getter
    def host(self) -> Optional[Any]:
        """
        Host name of the server. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "host")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        Password to logon the server.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="sasToken")
    def sas_token(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of sasToken in sas uri.
        """
        return pulumi.get(self, "sas_token")

    @property
    @pulumi.getter(name="sasUri")
    def sas_uri(self) -> Optional[Any]:
        """
        SAS URI of the Azure File resource. It is mutually exclusive with connectionString property. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "sas_uri")

    @property
    @pulumi.getter
    def snapshot(self) -> Optional[Any]:
        """
        The azure file share snapshot version. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "snapshot")

    @property
    @pulumi.getter(name="userId")
    def user_id(self) -> Optional[Any]:
        """
        User ID to logon the server. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "user_id")


@pulumi.output_type
class AzureFileStorageLocationResponse(dict):
    """
    The location of file server dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "fileName":
            suggest = "file_name"
        elif key == "folderPath":
            suggest = "folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureFileStorageLocationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureFileStorageLocationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureFileStorageLocationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 file_name: Optional[Any] = None,
                 folder_path: Optional[Any] = None):
        """
        The location of file server dataset.
        :param str type: Type of dataset storage location.
               Expected value is 'AzureFileStorageLocation'.
        :param Any file_name: Specify the file name of dataset. Type: string (or Expression with resultType string).
        :param Any folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string)
        """
        pulumi.set(__self__, "type", 'AzureFileStorageLocation')
        if file_name is not None:
            pulumi.set(__self__, "file_name", file_name)
        if folder_path is not None:
            pulumi.set(__self__, "folder_path", folder_path)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset storage location.
        Expected value is 'AzureFileStorageLocation'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="fileName")
    def file_name(self) -> Optional[Any]:
        """
        Specify the file name of dataset. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_name")

    @property
    @pulumi.getter(name="folderPath")
    def folder_path(self) -> Optional[Any]:
        """
        Specify the folder path of dataset. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "folder_path")


@pulumi.output_type
class AzureFileStorageReadSettingsResponse(dict):
    """
    Azure File Storage read settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deleteFilesAfterCompletion":
            suggest = "delete_files_after_completion"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "enablePartitionDiscovery":
            suggest = "enable_partition_discovery"
        elif key == "fileListPath":
            suggest = "file_list_path"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "modifiedDatetimeEnd":
            suggest = "modified_datetime_end"
        elif key == "modifiedDatetimeStart":
            suggest = "modified_datetime_start"
        elif key == "partitionRootPath":
            suggest = "partition_root_path"
        elif key == "wildcardFileName":
            suggest = "wildcard_file_name"
        elif key == "wildcardFolderPath":
            suggest = "wildcard_folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureFileStorageReadSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureFileStorageReadSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureFileStorageReadSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 delete_files_after_completion: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 enable_partition_discovery: Optional[bool] = None,
                 file_list_path: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 modified_datetime_end: Optional[Any] = None,
                 modified_datetime_start: Optional[Any] = None,
                 partition_root_path: Optional[Any] = None,
                 prefix: Optional[Any] = None,
                 recursive: Optional[Any] = None,
                 wildcard_file_name: Optional[Any] = None,
                 wildcard_folder_path: Optional[Any] = None):
        """
        Azure File Storage read settings.
        :param str type: The read setting type.
               Expected value is 'AzureFileStorageReadSettings'.
        :param Any delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param bool enable_partition_discovery: Indicates whether to enable partition discovery.
        :param Any file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string).
        :param Any modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string).
        :param Any partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        :param Any prefix: The prefix filter for the Azure File name starting from root path. Type: string (or Expression with resultType string).
        :param Any recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        :param Any wildcard_file_name: Azure File Storage wildcardFileName. Type: string (or Expression with resultType string).
        :param Any wildcard_folder_path: Azure File Storage wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'AzureFileStorageReadSettings')
        if delete_files_after_completion is not None:
            pulumi.set(__self__, "delete_files_after_completion", delete_files_after_completion)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if enable_partition_discovery is not None:
            pulumi.set(__self__, "enable_partition_discovery", enable_partition_discovery)
        if file_list_path is not None:
            pulumi.set(__self__, "file_list_path", file_list_path)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if modified_datetime_end is not None:
            pulumi.set(__self__, "modified_datetime_end", modified_datetime_end)
        if modified_datetime_start is not None:
            pulumi.set(__self__, "modified_datetime_start", modified_datetime_start)
        if partition_root_path is not None:
            pulumi.set(__self__, "partition_root_path", partition_root_path)
        if prefix is not None:
            pulumi.set(__self__, "prefix", prefix)
        if recursive is not None:
            pulumi.set(__self__, "recursive", recursive)
        if wildcard_file_name is not None:
            pulumi.set(__self__, "wildcard_file_name", wildcard_file_name)
        if wildcard_folder_path is not None:
            pulumi.set(__self__, "wildcard_folder_path", wildcard_folder_path)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The read setting type.
        Expected value is 'AzureFileStorageReadSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="deleteFilesAfterCompletion")
    def delete_files_after_completion(self) -> Optional[Any]:
        """
        Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "delete_files_after_completion")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="enablePartitionDiscovery")
    def enable_partition_discovery(self) -> Optional[bool]:
        """
        Indicates whether to enable partition discovery.
        """
        return pulumi.get(self, "enable_partition_discovery")

    @property
    @pulumi.getter(name="fileListPath")
    def file_list_path(self) -> Optional[Any]:
        """
        Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_list_path")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="modifiedDatetimeEnd")
    def modified_datetime_end(self) -> Optional[Any]:
        """
        The end of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_end")

    @property
    @pulumi.getter(name="modifiedDatetimeStart")
    def modified_datetime_start(self) -> Optional[Any]:
        """
        The start of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_start")

    @property
    @pulumi.getter(name="partitionRootPath")
    def partition_root_path(self) -> Optional[Any]:
        """
        Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_root_path")

    @property
    @pulumi.getter
    def prefix(self) -> Optional[Any]:
        """
        The prefix filter for the Azure File name starting from root path. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "prefix")

    @property
    @pulumi.getter
    def recursive(self) -> Optional[Any]:
        """
        If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "recursive")

    @property
    @pulumi.getter(name="wildcardFileName")
    def wildcard_file_name(self) -> Optional[Any]:
        """
        Azure File Storage wildcardFileName. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_file_name")

    @property
    @pulumi.getter(name="wildcardFolderPath")
    def wildcard_folder_path(self) -> Optional[Any]:
        """
        Azure File Storage wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_folder_path")


@pulumi.output_type
class AzureFileStorageWriteSettingsResponse(dict):
    """
    Azure File Storage write settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "copyBehavior":
            suggest = "copy_behavior"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureFileStorageWriteSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureFileStorageWriteSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureFileStorageWriteSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 copy_behavior: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None):
        """
        Azure File Storage write settings.
        :param str type: The write setting type.
               Expected value is 'AzureFileStorageWriteSettings'.
        :param Any copy_behavior: The type of copy behavior for copy sink.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        pulumi.set(__self__, "type", 'AzureFileStorageWriteSettings')
        if copy_behavior is not None:
            pulumi.set(__self__, "copy_behavior", copy_behavior)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The write setting type.
        Expected value is 'AzureFileStorageWriteSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="copyBehavior")
    def copy_behavior(self) -> Optional[Any]:
        """
        The type of copy behavior for copy sink.
        """
        return pulumi.get(self, "copy_behavior")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")


@pulumi.output_type
class AzureFunctionActivityResponse(dict):
    """
    Azure Function activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "functionName":
            suggest = "function_name"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureFunctionActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureFunctionActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureFunctionActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 function_name: Any,
                 method: str,
                 name: str,
                 type: str,
                 body: Optional[Any] = None,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 headers: Optional[Any] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        Azure Function activity.
        :param Any function_name: Name of the Function that the Azure Function Activity will call. Type: string (or Expression with resultType string)
        :param str method: Rest API method for target endpoint.
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'AzureFunctionActivity'.
        :param Any body: Represents the payload that will be sent to the endpoint. Required for POST/PUT method, not allowed for GET method Type: string (or Expression with resultType string).
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Any headers: Represents the headers that will be sent to the request. For example, to set the language and type on a request: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" }. Type: string (or Expression with resultType string).
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "function_name", function_name)
        pulumi.set(__self__, "method", method)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'AzureFunctionActivity')
        if body is not None:
            pulumi.set(__self__, "body", body)
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if headers is not None:
            pulumi.set(__self__, "headers", headers)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter(name="functionName")
    def function_name(self) -> Any:
        """
        Name of the Function that the Azure Function Activity will call. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "function_name")

    @property
    @pulumi.getter
    def method(self) -> str:
        """
        Rest API method for target endpoint.
        """
        return pulumi.get(self, "method")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'AzureFunctionActivity'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def body(self) -> Optional[Any]:
        """
        Represents the payload that will be sent to the endpoint. Required for POST/PUT method, not allowed for GET method Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "body")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def headers(self) -> Optional[Any]:
        """
        Represents the headers that will be sent to the request. For example, to set the language and type on a request: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" }. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "headers")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class AzureFunctionLinkedServiceResponse(dict):
    """
    Azure Function linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "functionAppUrl":
            suggest = "function_app_url"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "functionKey":
            suggest = "function_key"
        elif key == "resourceId":
            suggest = "resource_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureFunctionLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureFunctionLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureFunctionLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 function_app_url: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 authentication: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 credential: Optional['outputs.CredentialReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 function_key: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 resource_id: Optional[Any] = None):
        """
        Azure Function linked service.
        :param Any function_app_url: The endpoint of the Azure Function App. URL will be in the format https://<accountName>.azurewebsites.net.
        :param str type: Type of linked service.
               Expected value is 'AzureFunction'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any authentication: Type of authentication (Required to specify MSI) used to connect to AzureFunction. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param 'CredentialReferenceResponse' credential: The credential reference containing authentication information.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] function_key: Function or Host key for Azure Function App.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Any resource_id: Allowed token audiences for azure function.
        """
        pulumi.set(__self__, "function_app_url", function_app_url)
        pulumi.set(__self__, "type", 'AzureFunction')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if authentication is not None:
            pulumi.set(__self__, "authentication", authentication)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if credential is not None:
            pulumi.set(__self__, "credential", credential)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if function_key is not None:
            pulumi.set(__self__, "function_key", function_key)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if resource_id is not None:
            pulumi.set(__self__, "resource_id", resource_id)

    @property
    @pulumi.getter(name="functionAppUrl")
    def function_app_url(self) -> Any:
        """
        The endpoint of the Azure Function App. URL will be in the format https://<accountName>.azurewebsites.net.
        """
        return pulumi.get(self, "function_app_url")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AzureFunction'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def authentication(self) -> Optional[Any]:
        """
        Type of authentication (Required to specify MSI) used to connect to AzureFunction. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "authentication")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def credential(self) -> Optional['outputs.CredentialReferenceResponse']:
        """
        The credential reference containing authentication information.
        """
        return pulumi.get(self, "credential")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter(name="functionKey")
    def function_key(self) -> Optional[Any]:
        """
        Function or Host key for Azure Function App.
        """
        return pulumi.get(self, "function_key")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="resourceId")
    def resource_id(self) -> Optional[Any]:
        """
        Allowed token audiences for azure function.
        """
        return pulumi.get(self, "resource_id")


@pulumi.output_type
class AzureKeyVaultLinkedServiceResponse(dict):
    """
    Azure Key Vault linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "baseUrl":
            suggest = "base_url"
        elif key == "connectVia":
            suggest = "connect_via"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureKeyVaultLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureKeyVaultLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureKeyVaultLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 base_url: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 credential: Optional['outputs.CredentialReferenceResponse'] = None,
                 description: Optional[str] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None):
        """
        Azure Key Vault linked service.
        :param Any base_url: The base URL of the Azure Key Vault. e.g. https://myakv.vault.azure.net Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'AzureKeyVault'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param 'CredentialReferenceResponse' credential: The credential reference containing authentication information.
        :param str description: Linked service description.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        """
        pulumi.set(__self__, "base_url", base_url)
        pulumi.set(__self__, "type", 'AzureKeyVault')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if credential is not None:
            pulumi.set(__self__, "credential", credential)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)

    @property
    @pulumi.getter(name="baseUrl")
    def base_url(self) -> Any:
        """
        The base URL of the Azure Key Vault. e.g. https://myakv.vault.azure.net Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "base_url")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AzureKeyVault'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def credential(self) -> Optional['outputs.CredentialReferenceResponse']:
        """
        The credential reference containing authentication information.
        """
        return pulumi.get(self, "credential")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")


@pulumi.output_type
class AzureKeyVaultSecretReferenceResponse(dict):
    """
    Azure Key Vault secret reference.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "secretName":
            suggest = "secret_name"
        elif key == "secretVersion":
            suggest = "secret_version"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureKeyVaultSecretReferenceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureKeyVaultSecretReferenceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureKeyVaultSecretReferenceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 secret_name: Any,
                 store: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 secret_version: Optional[Any] = None):
        """
        Azure Key Vault secret reference.
        :param Any secret_name: The name of the secret in Azure Key Vault. Type: string (or Expression with resultType string).
        :param 'LinkedServiceReferenceResponse' store: The Azure Key Vault linked service reference.
        :param str type: Type of the secret.
               Expected value is 'AzureKeyVaultSecret'.
        :param Any secret_version: The version of the secret in Azure Key Vault. The default value is the latest version of the secret. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "secret_name", secret_name)
        pulumi.set(__self__, "store", store)
        pulumi.set(__self__, "type", 'AzureKeyVaultSecret')
        if secret_version is not None:
            pulumi.set(__self__, "secret_version", secret_version)

    @property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> Any:
        """
        The name of the secret in Azure Key Vault. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "secret_name")

    @property
    @pulumi.getter
    def store(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        The Azure Key Vault linked service reference.
        """
        return pulumi.get(self, "store")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of the secret.
        Expected value is 'AzureKeyVaultSecret'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="secretVersion")
    def secret_version(self) -> Optional[Any]:
        """
        The version of the secret in Azure Key Vault. The default value is the latest version of the secret. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "secret_version")


@pulumi.output_type
class AzureMLBatchExecutionActivityResponse(dict):
    """
    Azure ML Batch Execution activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dependsOn":
            suggest = "depends_on"
        elif key == "globalParameters":
            suggest = "global_parameters"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "userProperties":
            suggest = "user_properties"
        elif key == "webServiceInputs":
            suggest = "web_service_inputs"
        elif key == "webServiceOutputs":
            suggest = "web_service_outputs"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureMLBatchExecutionActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureMLBatchExecutionActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureMLBatchExecutionActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 type: str,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 global_parameters: Optional[Mapping[str, Any]] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None,
                 web_service_inputs: Optional[Mapping[str, 'outputs.AzureMLWebServiceFileResponse']] = None,
                 web_service_outputs: Optional[Mapping[str, 'outputs.AzureMLWebServiceFileResponse']] = None):
        """
        Azure ML Batch Execution activity.
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'AzureMLBatchExecution'.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Mapping[str, Any] global_parameters: 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 will be passed in the GlobalParameters property of the Azure ML batch execution request.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        :param Mapping[str, 'AzureMLWebServiceFileResponse'] web_service_inputs: Key,Value pairs, mapping the names of Azure ML endpoint's Web Service Inputs to AzureMLWebServiceFile objects specifying the input Blob locations.. This information will be passed in the WebServiceInputs property of the Azure ML batch execution request.
        :param Mapping[str, 'AzureMLWebServiceFileResponse'] web_service_outputs: Key,Value pairs, mapping the names of Azure ML endpoint's Web Service Outputs to AzureMLWebServiceFile objects specifying the output Blob locations. This information will be passed in the WebServiceOutputs property of the Azure ML batch execution request.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'AzureMLBatchExecution')
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if global_parameters is not None:
            pulumi.set(__self__, "global_parameters", global_parameters)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)
        if web_service_inputs is not None:
            pulumi.set(__self__, "web_service_inputs", web_service_inputs)
        if web_service_outputs is not None:
            pulumi.set(__self__, "web_service_outputs", web_service_outputs)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'AzureMLBatchExecution'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="globalParameters")
    def global_parameters(self) -> Optional[Mapping[str, Any]]:
        """
        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 will be passed in the GlobalParameters property of the Azure ML batch execution request.
        """
        return pulumi.get(self, "global_parameters")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")

    @property
    @pulumi.getter(name="webServiceInputs")
    def web_service_inputs(self) -> Optional[Mapping[str, 'outputs.AzureMLWebServiceFileResponse']]:
        """
        Key,Value pairs, mapping the names of Azure ML endpoint's Web Service Inputs to AzureMLWebServiceFile objects specifying the input Blob locations.. This information will be passed in the WebServiceInputs property of the Azure ML batch execution request.
        """
        return pulumi.get(self, "web_service_inputs")

    @property
    @pulumi.getter(name="webServiceOutputs")
    def web_service_outputs(self) -> Optional[Mapping[str, 'outputs.AzureMLWebServiceFileResponse']]:
        """
        Key,Value pairs, mapping the names of Azure ML endpoint's Web Service Outputs to AzureMLWebServiceFile objects specifying the output Blob locations. This information will be passed in the WebServiceOutputs property of the Azure ML batch execution request.
        """
        return pulumi.get(self, "web_service_outputs")


@pulumi.output_type
class AzureMLExecutePipelineActivityResponse(dict):
    """
    Azure ML Execute Pipeline activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "continueOnStepFailure":
            suggest = "continue_on_step_failure"
        elif key == "dataPathAssignments":
            suggest = "data_path_assignments"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "experimentName":
            suggest = "experiment_name"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "mlParentRunId":
            suggest = "ml_parent_run_id"
        elif key == "mlPipelineEndpointId":
            suggest = "ml_pipeline_endpoint_id"
        elif key == "mlPipelineId":
            suggest = "ml_pipeline_id"
        elif key == "mlPipelineParameters":
            suggest = "ml_pipeline_parameters"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureMLExecutePipelineActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureMLExecutePipelineActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureMLExecutePipelineActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 type: str,
                 continue_on_step_failure: Optional[Any] = None,
                 data_path_assignments: Optional[Any] = None,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 experiment_name: Optional[Any] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 ml_parent_run_id: Optional[Any] = None,
                 ml_pipeline_endpoint_id: Optional[Any] = None,
                 ml_pipeline_id: Optional[Any] = None,
                 ml_pipeline_parameters: Optional[Any] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None,
                 version: Optional[Any] = None):
        """
        Azure ML Execute Pipeline activity.
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'AzureMLExecutePipeline'.
        :param Any continue_on_step_failure: Whether to continue execution of other steps in the PipelineRun if a step fails. This information will be passed in the continueOnStepFailure property of the published pipeline execution request. Type: boolean (or Expression with resultType boolean).
        :param Any data_path_assignments: Dictionary used for changing data path assignments without retraining. Values will be passed in the dataPathAssignments property of the published pipeline execution request. Type: object with key value pairs (or Expression with resultType object).
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Any experiment_name: Run history experiment name of the pipeline run. This information will be passed in the ExperimentName property of the published pipeline execution request. Type: string (or Expression with resultType string).
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param Any ml_parent_run_id: The parent Azure ML Service pipeline run id. This information will be passed in the ParentRunId property of the published pipeline execution request. Type: string (or Expression with resultType string).
        :param Any ml_pipeline_endpoint_id: ID of the published Azure ML pipeline endpoint. Type: string (or Expression with resultType string).
        :param Any ml_pipeline_id: ID of the published Azure ML pipeline. Type: string (or Expression with resultType string).
        :param Any ml_pipeline_parameters: Key,Value pairs to be passed to the published Azure ML pipeline endpoint. Keys must match the names of pipeline parameters defined in the published pipeline. Values will be passed in the ParameterAssignments property of the published pipeline execution request. Type: object with key value pairs (or Expression with resultType object).
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        :param Any version: Version of the published Azure ML pipeline endpoint. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'AzureMLExecutePipeline')
        if continue_on_step_failure is not None:
            pulumi.set(__self__, "continue_on_step_failure", continue_on_step_failure)
        if data_path_assignments is not None:
            pulumi.set(__self__, "data_path_assignments", data_path_assignments)
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if experiment_name is not None:
            pulumi.set(__self__, "experiment_name", experiment_name)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if ml_parent_run_id is not None:
            pulumi.set(__self__, "ml_parent_run_id", ml_parent_run_id)
        if ml_pipeline_endpoint_id is not None:
            pulumi.set(__self__, "ml_pipeline_endpoint_id", ml_pipeline_endpoint_id)
        if ml_pipeline_id is not None:
            pulumi.set(__self__, "ml_pipeline_id", ml_pipeline_id)
        if ml_pipeline_parameters is not None:
            pulumi.set(__self__, "ml_pipeline_parameters", ml_pipeline_parameters)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'AzureMLExecutePipeline'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="continueOnStepFailure")
    def continue_on_step_failure(self) -> Optional[Any]:
        """
        Whether to continue execution of other steps in the PipelineRun if a step fails. This information will be passed in the continueOnStepFailure property of the published pipeline execution request. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "continue_on_step_failure")

    @property
    @pulumi.getter(name="dataPathAssignments")
    def data_path_assignments(self) -> Optional[Any]:
        """
        Dictionary used for changing data path assignments without retraining. Values will be passed in the dataPathAssignments property of the published pipeline execution request. Type: object with key value pairs (or Expression with resultType object).
        """
        return pulumi.get(self, "data_path_assignments")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="experimentName")
    def experiment_name(self) -> Optional[Any]:
        """
        Run history experiment name of the pipeline run. This information will be passed in the ExperimentName property of the published pipeline execution request. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "experiment_name")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter(name="mlParentRunId")
    def ml_parent_run_id(self) -> Optional[Any]:
        """
        The parent Azure ML Service pipeline run id. This information will be passed in the ParentRunId property of the published pipeline execution request. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "ml_parent_run_id")

    @property
    @pulumi.getter(name="mlPipelineEndpointId")
    def ml_pipeline_endpoint_id(self) -> Optional[Any]:
        """
        ID of the published Azure ML pipeline endpoint. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "ml_pipeline_endpoint_id")

    @property
    @pulumi.getter(name="mlPipelineId")
    def ml_pipeline_id(self) -> Optional[Any]:
        """
        ID of the published Azure ML pipeline. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "ml_pipeline_id")

    @property
    @pulumi.getter(name="mlPipelineParameters")
    def ml_pipeline_parameters(self) -> Optional[Any]:
        """
        Key,Value pairs to be passed to the published Azure ML pipeline endpoint. Keys must match the names of pipeline parameters defined in the published pipeline. Values will be passed in the ParameterAssignments property of the published pipeline execution request. Type: object with key value pairs (or Expression with resultType object).
        """
        return pulumi.get(self, "ml_pipeline_parameters")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")

    @property
    @pulumi.getter
    def version(self) -> Optional[Any]:
        """
        Version of the published Azure ML pipeline endpoint. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "version")


@pulumi.output_type
class AzureMLLinkedServiceResponse(dict):
    """
    Azure ML Studio Web Service linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "apiKey":
            suggest = "api_key"
        elif key == "mlEndpoint":
            suggest = "ml_endpoint"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "servicePrincipalId":
            suggest = "service_principal_id"
        elif key == "servicePrincipalKey":
            suggest = "service_principal_key"
        elif key == "updateResourceEndpoint":
            suggest = "update_resource_endpoint"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureMLLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureMLLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureMLLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 api_key: Any,
                 ml_endpoint: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 authentication: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 service_principal_id: Optional[Any] = None,
                 service_principal_key: Optional[Any] = None,
                 tenant: Optional[Any] = None,
                 update_resource_endpoint: Optional[Any] = None):
        """
        Azure ML Studio Web Service linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] api_key: The API key for accessing the Azure ML model endpoint.
        :param Any ml_endpoint: The Batch Execution REST URL for an Azure ML Studio Web Service endpoint. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'AzureML'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any authentication: Type of authentication (Required to specify MSI) used to connect to AzureML. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Any service_principal_id: The ID of the service principal used to authenticate against the ARM-based updateResourceEndpoint of an Azure ML Studio web service. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_key: The key of the service principal used to authenticate against the ARM-based updateResourceEndpoint of an Azure ML Studio web service.
        :param Any tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string).
        :param Any update_resource_endpoint: The Update Resource REST URL for an Azure ML Studio Web Service endpoint. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "api_key", api_key)
        pulumi.set(__self__, "ml_endpoint", ml_endpoint)
        pulumi.set(__self__, "type", 'AzureML')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if authentication is not None:
            pulumi.set(__self__, "authentication", authentication)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if service_principal_id is not None:
            pulumi.set(__self__, "service_principal_id", service_principal_id)
        if service_principal_key is not None:
            pulumi.set(__self__, "service_principal_key", service_principal_key)
        if tenant is not None:
            pulumi.set(__self__, "tenant", tenant)
        if update_resource_endpoint is not None:
            pulumi.set(__self__, "update_resource_endpoint", update_resource_endpoint)

    @property
    @pulumi.getter(name="apiKey")
    def api_key(self) -> Any:
        """
        The API key for accessing the Azure ML model endpoint.
        """
        return pulumi.get(self, "api_key")

    @property
    @pulumi.getter(name="mlEndpoint")
    def ml_endpoint(self) -> Any:
        """
        The Batch Execution REST URL for an Azure ML Studio Web Service endpoint. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "ml_endpoint")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AzureML'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def authentication(self) -> Optional[Any]:
        """
        Type of authentication (Required to specify MSI) used to connect to AzureML. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "authentication")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="servicePrincipalId")
    def service_principal_id(self) -> Optional[Any]:
        """
        The ID of the service principal used to authenticate against the ARM-based updateResourceEndpoint of an Azure ML Studio web service. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_id")

    @property
    @pulumi.getter(name="servicePrincipalKey")
    def service_principal_key(self) -> Optional[Any]:
        """
        The key of the service principal used to authenticate against the ARM-based updateResourceEndpoint of an Azure ML Studio web service.
        """
        return pulumi.get(self, "service_principal_key")

    @property
    @pulumi.getter
    def tenant(self) -> Optional[Any]:
        """
        The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "tenant")

    @property
    @pulumi.getter(name="updateResourceEndpoint")
    def update_resource_endpoint(self) -> Optional[Any]:
        """
        The Update Resource REST URL for an Azure ML Studio Web Service endpoint. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "update_resource_endpoint")


@pulumi.output_type
class AzureMLServiceLinkedServiceResponse(dict):
    """
    Azure ML Service linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "mlWorkspaceName":
            suggest = "ml_workspace_name"
        elif key == "resourceGroupName":
            suggest = "resource_group_name"
        elif key == "subscriptionId":
            suggest = "subscription_id"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "servicePrincipalId":
            suggest = "service_principal_id"
        elif key == "servicePrincipalKey":
            suggest = "service_principal_key"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureMLServiceLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureMLServiceLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureMLServiceLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 ml_workspace_name: Any,
                 resource_group_name: Any,
                 subscription_id: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 service_principal_id: Optional[Any] = None,
                 service_principal_key: Optional[Any] = None,
                 tenant: Optional[Any] = None):
        """
        Azure ML Service linked service.
        :param Any ml_workspace_name: Azure ML Service workspace name. Type: string (or Expression with resultType string).
        :param Any resource_group_name: Azure ML Service workspace resource group name. Type: string (or Expression with resultType string).
        :param Any subscription_id: Azure ML Service workspace subscription ID. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'AzureMLService'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Any service_principal_id: The ID of the service principal used to authenticate against the endpoint of a published Azure ML Service pipeline. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_key: The key of the service principal used to authenticate against the endpoint of a published Azure ML Service pipeline.
        :param Any tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "ml_workspace_name", ml_workspace_name)
        pulumi.set(__self__, "resource_group_name", resource_group_name)
        pulumi.set(__self__, "subscription_id", subscription_id)
        pulumi.set(__self__, "type", 'AzureMLService')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if service_principal_id is not None:
            pulumi.set(__self__, "service_principal_id", service_principal_id)
        if service_principal_key is not None:
            pulumi.set(__self__, "service_principal_key", service_principal_key)
        if tenant is not None:
            pulumi.set(__self__, "tenant", tenant)

    @property
    @pulumi.getter(name="mlWorkspaceName")
    def ml_workspace_name(self) -> Any:
        """
        Azure ML Service workspace name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "ml_workspace_name")

    @property
    @pulumi.getter(name="resourceGroupName")
    def resource_group_name(self) -> Any:
        """
        Azure ML Service workspace resource group name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "resource_group_name")

    @property
    @pulumi.getter(name="subscriptionId")
    def subscription_id(self) -> Any:
        """
        Azure ML Service workspace subscription ID. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "subscription_id")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AzureMLService'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="servicePrincipalId")
    def service_principal_id(self) -> Optional[Any]:
        """
        The ID of the service principal used to authenticate against the endpoint of a published Azure ML Service pipeline. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_id")

    @property
    @pulumi.getter(name="servicePrincipalKey")
    def service_principal_key(self) -> Optional[Any]:
        """
        The key of the service principal used to authenticate against the endpoint of a published Azure ML Service pipeline.
        """
        return pulumi.get(self, "service_principal_key")

    @property
    @pulumi.getter
    def tenant(self) -> Optional[Any]:
        """
        The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "tenant")


@pulumi.output_type
class AzureMLUpdateResourceActivityResponse(dict):
    """
    Azure ML Update Resource management activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "trainedModelFilePath":
            suggest = "trained_model_file_path"
        elif key == "trainedModelLinkedServiceName":
            suggest = "trained_model_linked_service_name"
        elif key == "trainedModelName":
            suggest = "trained_model_name"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureMLUpdateResourceActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureMLUpdateResourceActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureMLUpdateResourceActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 trained_model_file_path: Any,
                 trained_model_linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 trained_model_name: Any,
                 type: str,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        Azure ML Update Resource management activity.
        :param str name: Activity name.
        :param Any trained_model_file_path: The relative file path in trainedModelLinkedService to represent the .ilearner file that will be uploaded by the update operation.  Type: string (or Expression with resultType string).
        :param 'LinkedServiceReferenceResponse' trained_model_linked_service_name: Name of Azure Storage linked service holding the .ilearner file that will be uploaded by the update operation.
        :param Any trained_model_name: Name of the Trained Model module in the Web Service experiment to be updated. Type: string (or Expression with resultType string).
        :param str type: Type of activity.
               Expected value is 'AzureMLUpdateResource'.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "trained_model_file_path", trained_model_file_path)
        pulumi.set(__self__, "trained_model_linked_service_name", trained_model_linked_service_name)
        pulumi.set(__self__, "trained_model_name", trained_model_name)
        pulumi.set(__self__, "type", 'AzureMLUpdateResource')
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="trainedModelFilePath")
    def trained_model_file_path(self) -> Any:
        """
        The relative file path in trainedModelLinkedService to represent the .ilearner file that will be uploaded by the update operation.  Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "trained_model_file_path")

    @property
    @pulumi.getter(name="trainedModelLinkedServiceName")
    def trained_model_linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Name of Azure Storage linked service holding the .ilearner file that will be uploaded by the update operation.
        """
        return pulumi.get(self, "trained_model_linked_service_name")

    @property
    @pulumi.getter(name="trainedModelName")
    def trained_model_name(self) -> Any:
        """
        Name of the Trained Model module in the Web Service experiment to be updated. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "trained_model_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'AzureMLUpdateResource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class AzureMLWebServiceFileResponse(dict):
    """
    Azure ML WebService Input/Output file
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "filePath":
            suggest = "file_path"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureMLWebServiceFileResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureMLWebServiceFileResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureMLWebServiceFileResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 file_path: Any,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse'):
        """
        Azure ML WebService Input/Output file
        :param Any file_path: The relative file path, including container name, in the Azure Blob Storage specified by the LinkedService. Type: string (or Expression with resultType string).
        :param 'LinkedServiceReferenceResponse' linked_service_name: Reference to an Azure Storage LinkedService, where Azure ML WebService Input/Output file located.
        """
        pulumi.set(__self__, "file_path", file_path)
        pulumi.set(__self__, "linked_service_name", linked_service_name)

    @property
    @pulumi.getter(name="filePath")
    def file_path(self) -> Any:
        """
        The relative file path, including container name, in the Azure Blob Storage specified by the LinkedService. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_path")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Reference to an Azure Storage LinkedService, where Azure ML WebService Input/Output file located.
        """
        return pulumi.get(self, "linked_service_name")


@pulumi.output_type
class AzureMariaDBLinkedServiceResponse(dict):
    """
    Azure Database for MariaDB linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectVia":
            suggest = "connect_via"
        elif key == "connectionString":
            suggest = "connection_string"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureMariaDBLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureMariaDBLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureMariaDBLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 connection_string: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 pwd: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None):
        """
        Azure Database for MariaDB linked service.
        :param str type: Type of linked service.
               Expected value is 'AzureMariaDB'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param 'AzureKeyVaultSecretReferenceResponse' pwd: The Azure key vault secret reference of password in connection string.
        """
        pulumi.set(__self__, "type", 'AzureMariaDB')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if connection_string is not None:
            pulumi.set(__self__, "connection_string", connection_string)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pwd is not None:
            pulumi.set(__self__, "pwd", pwd)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AzureMariaDB'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Optional[Any]:
        """
        An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def pwd(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of password in connection string.
        """
        return pulumi.get(self, "pwd")


@pulumi.output_type
class AzureMariaDBSourceResponse(dict):
    """
    A copy activity Azure MariaDB source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureMariaDBSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureMariaDBSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureMariaDBSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Azure MariaDB source.
        :param str type: Copy source type.
               Expected value is 'AzureMariaDBSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'AzureMariaDBSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'AzureMariaDBSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class AzureMariaDBTableDatasetResponse(dict):
    """
    Azure Database for MariaDB dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureMariaDBTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureMariaDBTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureMariaDBTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Azure Database for MariaDB dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'AzureMariaDBTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'AzureMariaDBTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'AzureMariaDBTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class AzureMySqlLinkedServiceResponse(dict):
    """
    Azure MySQL database linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectionString":
            suggest = "connection_string"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureMySqlLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureMySqlLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureMySqlLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 connection_string: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None):
        """
        Azure MySQL database linked service.
        :param Any connection_string: The connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str type: Type of linked service.
               Expected value is 'AzureMySql'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param 'AzureKeyVaultSecretReferenceResponse' password: The Azure key vault secret reference of password in connection string.
        """
        pulumi.set(__self__, "connection_string", connection_string)
        pulumi.set(__self__, "type", 'AzureMySql')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Any:
        """
        The connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AzureMySql'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of password in connection string.
        """
        return pulumi.get(self, "password")


@pulumi.output_type
class AzureMySqlSinkResponse(dict):
    """
    A copy activity Azure MySql sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "preCopyScript":
            suggest = "pre_copy_script"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureMySqlSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureMySqlSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureMySqlSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 pre_copy_script: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity Azure MySql sink.
        :param str type: Copy sink type.
               Expected value is 'AzureMySqlSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any pre_copy_script: A query to execute before starting the copy. Type: string (or Expression with resultType string).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'AzureMySqlSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if pre_copy_script is not None:
            pulumi.set(__self__, "pre_copy_script", pre_copy_script)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'AzureMySqlSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="preCopyScript")
    def pre_copy_script(self) -> Optional[Any]:
        """
        A query to execute before starting the copy. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "pre_copy_script")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class AzureMySqlSourceResponse(dict):
    """
    A copy activity Azure MySQL source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureMySqlSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureMySqlSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureMySqlSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Azure MySQL source.
        :param str type: Copy source type.
               Expected value is 'AzureMySqlSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: Database query. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'AzureMySqlSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'AzureMySqlSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        Database query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class AzureMySqlTableDatasetResponse(dict):
    """
    The Azure MySQL database dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureMySqlTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureMySqlTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureMySqlTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        The Azure MySQL database dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'AzureMySqlTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The name of Azure MySQL database table. Type: string (or Expression with resultType string).
        :param Any table_name: The Azure MySQL database table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'AzureMySqlTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'AzureMySqlTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The name of Azure MySQL database table. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The Azure MySQL database table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class AzurePostgreSqlLinkedServiceResponse(dict):
    """
    Azure PostgreSQL linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectVia":
            suggest = "connect_via"
        elif key == "connectionString":
            suggest = "connection_string"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzurePostgreSqlLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzurePostgreSqlLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzurePostgreSqlLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 connection_string: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None):
        """
        Azure PostgreSQL linked service.
        :param str type: Type of linked service.
               Expected value is 'AzurePostgreSql'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param 'AzureKeyVaultSecretReferenceResponse' password: The Azure key vault secret reference of password in connection string.
        """
        pulumi.set(__self__, "type", 'AzurePostgreSql')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if connection_string is not None:
            pulumi.set(__self__, "connection_string", connection_string)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AzurePostgreSql'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Optional[Any]:
        """
        An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of password in connection string.
        """
        return pulumi.get(self, "password")


@pulumi.output_type
class AzurePostgreSqlSinkResponse(dict):
    """
    A copy activity Azure PostgreSQL sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "preCopyScript":
            suggest = "pre_copy_script"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzurePostgreSqlSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzurePostgreSqlSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzurePostgreSqlSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 pre_copy_script: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity Azure PostgreSQL sink.
        :param str type: Copy sink type.
               Expected value is 'AzurePostgreSqlSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any pre_copy_script: A query to execute before starting the copy. Type: string (or Expression with resultType string).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'AzurePostgreSqlSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if pre_copy_script is not None:
            pulumi.set(__self__, "pre_copy_script", pre_copy_script)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'AzurePostgreSqlSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="preCopyScript")
    def pre_copy_script(self) -> Optional[Any]:
        """
        A query to execute before starting the copy. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "pre_copy_script")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class AzurePostgreSqlSourceResponse(dict):
    """
    A copy activity Azure PostgreSQL source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzurePostgreSqlSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzurePostgreSqlSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzurePostgreSqlSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Azure PostgreSQL source.
        :param str type: Copy source type.
               Expected value is 'AzurePostgreSqlSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'AzurePostgreSqlSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'AzurePostgreSqlSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class AzurePostgreSqlTableDatasetResponse(dict):
    """
    Azure PostgreSQL dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzurePostgreSqlTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzurePostgreSqlTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzurePostgreSqlTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Azure PostgreSQL dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'AzurePostgreSqlTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The table name of the Azure PostgreSQL database. Type: string (or Expression with resultType string).
        :param Any table_name: The table name of the Azure PostgreSQL database which includes both schema and table. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'AzurePostgreSqlTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'AzurePostgreSqlTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The table name of the Azure PostgreSQL database. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name of the Azure PostgreSQL database which includes both schema and table. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class AzureQueueSinkResponse(dict):
    """
    A copy activity Azure Queue sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureQueueSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureQueueSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureQueueSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity Azure Queue sink.
        :param str type: Copy sink type.
               Expected value is 'AzureQueueSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'AzureQueueSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'AzureQueueSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class AzureSearchIndexDatasetResponse(dict):
    """
    The Azure Search Index.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "indexName":
            suggest = "index_name"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureSearchIndexDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureSearchIndexDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureSearchIndexDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 index_name: Any,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        The Azure Search Index.
        :param Any index_name: The name of the Azure Search Index. Type: string (or Expression with resultType string).
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'AzureSearchIndex'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "index_name", index_name)
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'AzureSearchIndex')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="indexName")
    def index_name(self) -> Any:
        """
        The name of the Azure Search Index. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "index_name")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'AzureSearchIndex'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class AzureSearchIndexSinkResponse(dict):
    """
    A copy activity Azure Search Index sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"
        elif key == "writeBehavior":
            suggest = "write_behavior"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureSearchIndexSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureSearchIndexSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureSearchIndexSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None,
                 write_behavior: Optional[str] = None):
        """
        A copy activity Azure Search Index sink.
        :param str type: Copy sink type.
               Expected value is 'AzureSearchIndexSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param str write_behavior: Specify the write behavior when upserting documents into Azure Search Index.
        """
        pulumi.set(__self__, "type", 'AzureSearchIndexSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)
        if write_behavior is not None:
            pulumi.set(__self__, "write_behavior", write_behavior)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'AzureSearchIndexSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")

    @property
    @pulumi.getter(name="writeBehavior")
    def write_behavior(self) -> Optional[str]:
        """
        Specify the write behavior when upserting documents into Azure Search Index.
        """
        return pulumi.get(self, "write_behavior")


@pulumi.output_type
class AzureSearchLinkedServiceResponse(dict):
    """
    Linked service for Windows Azure Search Service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureSearchLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureSearchLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureSearchLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 url: Any,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 key: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None):
        """
        Linked service for Windows Azure Search Service.
        :param str type: Type of linked service.
               Expected value is 'AzureSearch'.
        :param Any url: URL for Azure Search service. Type: string (or Expression with resultType string).
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] key: Admin Key for Azure Search service
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        """
        pulumi.set(__self__, "type", 'AzureSearch')
        pulumi.set(__self__, "url", url)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if key is not None:
            pulumi.set(__self__, "key", key)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AzureSearch'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def url(self) -> Any:
        """
        URL for Azure Search service. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "url")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def key(self) -> Optional[Any]:
        """
        Admin Key for Azure Search service
        """
        return pulumi.get(self, "key")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")


@pulumi.output_type
class AzureSqlDWLinkedServiceResponse(dict):
    """
    Azure SQL Data Warehouse linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectionString":
            suggest = "connection_string"
        elif key == "azureCloudType":
            suggest = "azure_cloud_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "servicePrincipalId":
            suggest = "service_principal_id"
        elif key == "servicePrincipalKey":
            suggest = "service_principal_key"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureSqlDWLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureSqlDWLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureSqlDWLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 connection_string: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 azure_cloud_type: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 credential: Optional['outputs.CredentialReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None,
                 service_principal_id: Optional[Any] = None,
                 service_principal_key: Optional[Any] = None,
                 tenant: Optional[Any] = None):
        """
        Azure SQL Data Warehouse linked service.
        :param Any connection_string: The connection string. Type: string, SecureString or AzureKeyVaultSecretReference. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str type: Type of linked service.
               Expected value is 'AzureSqlDW'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param 'CredentialReferenceResponse' credential: The credential reference containing authentication information.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param 'AzureKeyVaultSecretReferenceResponse' password: The Azure key vault secret reference of password in connection string.
        :param Any service_principal_id: The ID of the service principal used to authenticate against Azure SQL Data Warehouse. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_key: The key of the service principal used to authenticate against Azure SQL Data Warehouse.
        :param Any tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "connection_string", connection_string)
        pulumi.set(__self__, "type", 'AzureSqlDW')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if azure_cloud_type is not None:
            pulumi.set(__self__, "azure_cloud_type", azure_cloud_type)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if credential is not None:
            pulumi.set(__self__, "credential", credential)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if service_principal_id is not None:
            pulumi.set(__self__, "service_principal_id", service_principal_id)
        if service_principal_key is not None:
            pulumi.set(__self__, "service_principal_key", service_principal_key)
        if tenant is not None:
            pulumi.set(__self__, "tenant", tenant)

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Any:
        """
        The connection string. Type: string, SecureString or AzureKeyVaultSecretReference. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AzureSqlDW'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="azureCloudType")
    def azure_cloud_type(self) -> Optional[Any]:
        """
        Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "azure_cloud_type")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def credential(self) -> Optional['outputs.CredentialReferenceResponse']:
        """
        The credential reference containing authentication information.
        """
        return pulumi.get(self, "credential")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of password in connection string.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="servicePrincipalId")
    def service_principal_id(self) -> Optional[Any]:
        """
        The ID of the service principal used to authenticate against Azure SQL Data Warehouse. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_id")

    @property
    @pulumi.getter(name="servicePrincipalKey")
    def service_principal_key(self) -> Optional[Any]:
        """
        The key of the service principal used to authenticate against Azure SQL Data Warehouse.
        """
        return pulumi.get(self, "service_principal_key")

    @property
    @pulumi.getter
    def tenant(self) -> Optional[Any]:
        """
        The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "tenant")


@pulumi.output_type
class AzureSqlDWTableDatasetResponse(dict):
    """
    The Azure SQL Data Warehouse dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureSqlDWTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureSqlDWTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureSqlDWTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        The Azure SQL Data Warehouse dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'AzureSqlDWTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The table name of the Azure SQL Data Warehouse. Type: string (or Expression with resultType string).
        :param Any table_name: This property will be retired. Please consider using schema + table properties instead.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'AzureSqlDWTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'AzureSqlDWTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The table name of the Azure SQL Data Warehouse. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        This property will be retired. Please consider using schema + table properties instead.
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class AzureSqlDatabaseLinkedServiceResponse(dict):
    """
    Microsoft Azure SQL Database linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectionString":
            suggest = "connection_string"
        elif key == "alwaysEncryptedSettings":
            suggest = "always_encrypted_settings"
        elif key == "azureCloudType":
            suggest = "azure_cloud_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "servicePrincipalId":
            suggest = "service_principal_id"
        elif key == "servicePrincipalKey":
            suggest = "service_principal_key"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureSqlDatabaseLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureSqlDatabaseLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureSqlDatabaseLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 connection_string: Any,
                 type: str,
                 always_encrypted_settings: Optional['outputs.SqlAlwaysEncryptedPropertiesResponse'] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 azure_cloud_type: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 credential: Optional['outputs.CredentialReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None,
                 service_principal_id: Optional[Any] = None,
                 service_principal_key: Optional[Any] = None,
                 tenant: Optional[Any] = None):
        """
        Microsoft Azure SQL Database linked service.
        :param Any connection_string: The connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str type: Type of linked service.
               Expected value is 'AzureSqlDatabase'.
        :param 'SqlAlwaysEncryptedPropertiesResponse' always_encrypted_settings: Sql always encrypted properties.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param 'CredentialReferenceResponse' credential: The credential reference containing authentication information.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param 'AzureKeyVaultSecretReferenceResponse' password: The Azure key vault secret reference of password in connection string.
        :param Any service_principal_id: The ID of the service principal used to authenticate against Azure SQL Database. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_key: The key of the service principal used to authenticate against Azure SQL Database.
        :param Any tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "connection_string", connection_string)
        pulumi.set(__self__, "type", 'AzureSqlDatabase')
        if always_encrypted_settings is not None:
            pulumi.set(__self__, "always_encrypted_settings", always_encrypted_settings)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if azure_cloud_type is not None:
            pulumi.set(__self__, "azure_cloud_type", azure_cloud_type)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if credential is not None:
            pulumi.set(__self__, "credential", credential)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if service_principal_id is not None:
            pulumi.set(__self__, "service_principal_id", service_principal_id)
        if service_principal_key is not None:
            pulumi.set(__self__, "service_principal_key", service_principal_key)
        if tenant is not None:
            pulumi.set(__self__, "tenant", tenant)

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Any:
        """
        The connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AzureSqlDatabase'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="alwaysEncryptedSettings")
    def always_encrypted_settings(self) -> Optional['outputs.SqlAlwaysEncryptedPropertiesResponse']:
        """
        Sql always encrypted properties.
        """
        return pulumi.get(self, "always_encrypted_settings")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="azureCloudType")
    def azure_cloud_type(self) -> Optional[Any]:
        """
        Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "azure_cloud_type")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def credential(self) -> Optional['outputs.CredentialReferenceResponse']:
        """
        The credential reference containing authentication information.
        """
        return pulumi.get(self, "credential")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of password in connection string.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="servicePrincipalId")
    def service_principal_id(self) -> Optional[Any]:
        """
        The ID of the service principal used to authenticate against Azure SQL Database. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_id")

    @property
    @pulumi.getter(name="servicePrincipalKey")
    def service_principal_key(self) -> Optional[Any]:
        """
        The key of the service principal used to authenticate against Azure SQL Database.
        """
        return pulumi.get(self, "service_principal_key")

    @property
    @pulumi.getter
    def tenant(self) -> Optional[Any]:
        """
        The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "tenant")


@pulumi.output_type
class AzureSqlMILinkedServiceResponse(dict):
    """
    Azure SQL Managed Instance linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectionString":
            suggest = "connection_string"
        elif key == "alwaysEncryptedSettings":
            suggest = "always_encrypted_settings"
        elif key == "azureCloudType":
            suggest = "azure_cloud_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "servicePrincipalId":
            suggest = "service_principal_id"
        elif key == "servicePrincipalKey":
            suggest = "service_principal_key"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureSqlMILinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureSqlMILinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureSqlMILinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 connection_string: Any,
                 type: str,
                 always_encrypted_settings: Optional['outputs.SqlAlwaysEncryptedPropertiesResponse'] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 azure_cloud_type: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 credential: Optional['outputs.CredentialReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None,
                 service_principal_id: Optional[Any] = None,
                 service_principal_key: Optional[Any] = None,
                 tenant: Optional[Any] = None):
        """
        Azure SQL Managed Instance linked service.
        :param Any connection_string: The connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str type: Type of linked service.
               Expected value is 'AzureSqlMI'.
        :param 'SqlAlwaysEncryptedPropertiesResponse' always_encrypted_settings: Sql always encrypted properties.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param 'CredentialReferenceResponse' credential: The credential reference containing authentication information.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param 'AzureKeyVaultSecretReferenceResponse' password: The Azure key vault secret reference of password in connection string.
        :param Any service_principal_id: The ID of the service principal used to authenticate against Azure SQL Managed Instance. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_key: The key of the service principal used to authenticate against Azure SQL Managed Instance.
        :param Any tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "connection_string", connection_string)
        pulumi.set(__self__, "type", 'AzureSqlMI')
        if always_encrypted_settings is not None:
            pulumi.set(__self__, "always_encrypted_settings", always_encrypted_settings)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if azure_cloud_type is not None:
            pulumi.set(__self__, "azure_cloud_type", azure_cloud_type)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if credential is not None:
            pulumi.set(__self__, "credential", credential)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if service_principal_id is not None:
            pulumi.set(__self__, "service_principal_id", service_principal_id)
        if service_principal_key is not None:
            pulumi.set(__self__, "service_principal_key", service_principal_key)
        if tenant is not None:
            pulumi.set(__self__, "tenant", tenant)

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Any:
        """
        The connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AzureSqlMI'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="alwaysEncryptedSettings")
    def always_encrypted_settings(self) -> Optional['outputs.SqlAlwaysEncryptedPropertiesResponse']:
        """
        Sql always encrypted properties.
        """
        return pulumi.get(self, "always_encrypted_settings")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="azureCloudType")
    def azure_cloud_type(self) -> Optional[Any]:
        """
        Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "azure_cloud_type")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def credential(self) -> Optional['outputs.CredentialReferenceResponse']:
        """
        The credential reference containing authentication information.
        """
        return pulumi.get(self, "credential")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of password in connection string.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="servicePrincipalId")
    def service_principal_id(self) -> Optional[Any]:
        """
        The ID of the service principal used to authenticate against Azure SQL Managed Instance. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_id")

    @property
    @pulumi.getter(name="servicePrincipalKey")
    def service_principal_key(self) -> Optional[Any]:
        """
        The key of the service principal used to authenticate against Azure SQL Managed Instance.
        """
        return pulumi.get(self, "service_principal_key")

    @property
    @pulumi.getter
    def tenant(self) -> Optional[Any]:
        """
        The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "tenant")


@pulumi.output_type
class AzureSqlMITableDatasetResponse(dict):
    """
    The Azure SQL Managed Instance dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureSqlMITableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureSqlMITableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureSqlMITableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        The Azure SQL Managed Instance dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'AzureSqlMITable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The table name of the Azure SQL Managed Instance dataset. Type: string (or Expression with resultType string).
        :param Any table_name: This property will be retired. Please consider using schema + table properties instead.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'AzureSqlMITable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'AzureSqlMITable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The table name of the Azure SQL Managed Instance dataset. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        This property will be retired. Please consider using schema + table properties instead.
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class AzureSqlSinkResponse(dict):
    """
    A copy activity Azure SQL sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "preCopyScript":
            suggest = "pre_copy_script"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "sqlWriterStoredProcedureName":
            suggest = "sql_writer_stored_procedure_name"
        elif key == "sqlWriterTableType":
            suggest = "sql_writer_table_type"
        elif key == "sqlWriterUseTableLock":
            suggest = "sql_writer_use_table_lock"
        elif key == "storedProcedureParameters":
            suggest = "stored_procedure_parameters"
        elif key == "storedProcedureTableTypeParameterName":
            suggest = "stored_procedure_table_type_parameter_name"
        elif key == "tableOption":
            suggest = "table_option"
        elif key == "upsertSettings":
            suggest = "upsert_settings"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"
        elif key == "writeBehavior":
            suggest = "write_behavior"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureSqlSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureSqlSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureSqlSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 pre_copy_script: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 sql_writer_stored_procedure_name: Optional[Any] = None,
                 sql_writer_table_type: Optional[Any] = None,
                 sql_writer_use_table_lock: Optional[Any] = None,
                 stored_procedure_parameters: Optional[Mapping[str, 'outputs.StoredProcedureParameterResponse']] = None,
                 stored_procedure_table_type_parameter_name: Optional[Any] = None,
                 table_option: Optional[Any] = None,
                 upsert_settings: Optional['outputs.SqlUpsertSettingsResponse'] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None,
                 write_behavior: Optional[Any] = None):
        """
        A copy activity Azure SQL sink.
        :param str type: Copy sink type.
               Expected value is 'AzureSqlSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any sql_writer_stored_procedure_name: SQL writer stored procedure name. Type: string (or Expression with resultType string).
        :param Any sql_writer_table_type: SQL writer table type. Type: string (or Expression with resultType string).
        :param Any sql_writer_use_table_lock: Whether to use table lock during bulk copy. Type: boolean (or Expression with resultType boolean).
        :param Mapping[str, 'StoredProcedureParameterResponse'] stored_procedure_parameters: SQL stored procedure parameters.
        :param Any stored_procedure_table_type_parameter_name: The stored procedure parameter name of the table type. Type: string (or Expression with resultType string).
        :param Any table_option: The option to handle sink table, such as autoCreate. For now only 'autoCreate' value is supported. Type: string (or Expression with resultType string).
        :param 'SqlUpsertSettingsResponse' upsert_settings: SQL upsert settings.
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_behavior: Write behavior when copying data into Azure SQL. Type: SqlWriteBehaviorEnum (or Expression with resultType SqlWriteBehaviorEnum)
        """
        pulumi.set(__self__, "type", 'AzureSqlSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if pre_copy_script is not None:
            pulumi.set(__self__, "pre_copy_script", pre_copy_script)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if sql_writer_stored_procedure_name is not None:
            pulumi.set(__self__, "sql_writer_stored_procedure_name", sql_writer_stored_procedure_name)
        if sql_writer_table_type is not None:
            pulumi.set(__self__, "sql_writer_table_type", sql_writer_table_type)
        if sql_writer_use_table_lock is not None:
            pulumi.set(__self__, "sql_writer_use_table_lock", sql_writer_use_table_lock)
        if stored_procedure_parameters is not None:
            pulumi.set(__self__, "stored_procedure_parameters", stored_procedure_parameters)
        if stored_procedure_table_type_parameter_name is not None:
            pulumi.set(__self__, "stored_procedure_table_type_parameter_name", stored_procedure_table_type_parameter_name)
        if table_option is not None:
            pulumi.set(__self__, "table_option", table_option)
        if upsert_settings is not None:
            pulumi.set(__self__, "upsert_settings", upsert_settings)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)
        if write_behavior is not None:
            pulumi.set(__self__, "write_behavior", write_behavior)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'AzureSqlSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="preCopyScript")
    def pre_copy_script(self) -> Optional[Any]:
        """
        SQL pre-copy script. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "pre_copy_script")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="sqlWriterStoredProcedureName")
    def sql_writer_stored_procedure_name(self) -> Optional[Any]:
        """
        SQL writer stored procedure name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sql_writer_stored_procedure_name")

    @property
    @pulumi.getter(name="sqlWriterTableType")
    def sql_writer_table_type(self) -> Optional[Any]:
        """
        SQL writer table type. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sql_writer_table_type")

    @property
    @pulumi.getter(name="sqlWriterUseTableLock")
    def sql_writer_use_table_lock(self) -> Optional[Any]:
        """
        Whether to use table lock during bulk copy. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "sql_writer_use_table_lock")

    @property
    @pulumi.getter(name="storedProcedureParameters")
    def stored_procedure_parameters(self) -> Optional[Mapping[str, 'outputs.StoredProcedureParameterResponse']]:
        """
        SQL stored procedure parameters.
        """
        return pulumi.get(self, "stored_procedure_parameters")

    @property
    @pulumi.getter(name="storedProcedureTableTypeParameterName")
    def stored_procedure_table_type_parameter_name(self) -> Optional[Any]:
        """
        The stored procedure parameter name of the table type. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "stored_procedure_table_type_parameter_name")

    @property
    @pulumi.getter(name="tableOption")
    def table_option(self) -> Optional[Any]:
        """
        The option to handle sink table, such as autoCreate. For now only 'autoCreate' value is supported. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_option")

    @property
    @pulumi.getter(name="upsertSettings")
    def upsert_settings(self) -> Optional['outputs.SqlUpsertSettingsResponse']:
        """
        SQL upsert settings.
        """
        return pulumi.get(self, "upsert_settings")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")

    @property
    @pulumi.getter(name="writeBehavior")
    def write_behavior(self) -> Optional[Any]:
        """
        Write behavior when copying data into Azure SQL. Type: SqlWriteBehaviorEnum (or Expression with resultType SqlWriteBehaviorEnum)
        """
        return pulumi.get(self, "write_behavior")


@pulumi.output_type
class AzureSqlSourceResponse(dict):
    """
    A copy activity Azure SQL source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "partitionOption":
            suggest = "partition_option"
        elif key == "partitionSettings":
            suggest = "partition_settings"
        elif key == "produceAdditionalTypes":
            suggest = "produce_additional_types"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"
        elif key == "sqlReaderQuery":
            suggest = "sql_reader_query"
        elif key == "sqlReaderStoredProcedureName":
            suggest = "sql_reader_stored_procedure_name"
        elif key == "storedProcedureParameters":
            suggest = "stored_procedure_parameters"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureSqlSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureSqlSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureSqlSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 partition_option: Optional[Any] = None,
                 partition_settings: Optional['outputs.SqlPartitionSettingsResponse'] = None,
                 produce_additional_types: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None,
                 sql_reader_query: Optional[Any] = None,
                 sql_reader_stored_procedure_name: Optional[Any] = None,
                 stored_procedure_parameters: Optional[Mapping[str, 'outputs.StoredProcedureParameterResponse']] = None):
        """
        A copy activity Azure SQL source.
        :param str type: Copy source type.
               Expected value is 'AzureSqlSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any partition_option: The partition mechanism that will be used for Sql read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange".
        :param 'SqlPartitionSettingsResponse' partition_settings: The settings that will be leveraged for Sql source partitioning.
        :param Any produce_additional_types: Which additional types to produce.
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any sql_reader_query: SQL reader query. Type: string (or Expression with resultType string).
        :param Any sql_reader_stored_procedure_name: Name of the stored procedure for a SQL Database source. This cannot be used at the same time as SqlReaderQuery. Type: string (or Expression with resultType string).
        :param Mapping[str, 'StoredProcedureParameterResponse'] stored_procedure_parameters: Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}".
        """
        pulumi.set(__self__, "type", 'AzureSqlSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if partition_option is not None:
            pulumi.set(__self__, "partition_option", partition_option)
        if partition_settings is not None:
            pulumi.set(__self__, "partition_settings", partition_settings)
        if produce_additional_types is not None:
            pulumi.set(__self__, "produce_additional_types", produce_additional_types)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)
        if sql_reader_query is not None:
            pulumi.set(__self__, "sql_reader_query", sql_reader_query)
        if sql_reader_stored_procedure_name is not None:
            pulumi.set(__self__, "sql_reader_stored_procedure_name", sql_reader_stored_procedure_name)
        if stored_procedure_parameters is not None:
            pulumi.set(__self__, "stored_procedure_parameters", stored_procedure_parameters)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'AzureSqlSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="partitionOption")
    def partition_option(self) -> Optional[Any]:
        """
        The partition mechanism that will be used for Sql read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange".
        """
        return pulumi.get(self, "partition_option")

    @property
    @pulumi.getter(name="partitionSettings")
    def partition_settings(self) -> Optional['outputs.SqlPartitionSettingsResponse']:
        """
        The settings that will be leveraged for Sql source partitioning.
        """
        return pulumi.get(self, "partition_settings")

    @property
    @pulumi.getter(name="produceAdditionalTypes")
    def produce_additional_types(self) -> Optional[Any]:
        """
        Which additional types to produce.
        """
        return pulumi.get(self, "produce_additional_types")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")

    @property
    @pulumi.getter(name="sqlReaderQuery")
    def sql_reader_query(self) -> Optional[Any]:
        """
        SQL reader query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sql_reader_query")

    @property
    @pulumi.getter(name="sqlReaderStoredProcedureName")
    def sql_reader_stored_procedure_name(self) -> Optional[Any]:
        """
        Name of the stored procedure for a SQL Database source. This cannot be used at the same time as SqlReaderQuery. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sql_reader_stored_procedure_name")

    @property
    @pulumi.getter(name="storedProcedureParameters")
    def stored_procedure_parameters(self) -> Optional[Mapping[str, 'outputs.StoredProcedureParameterResponse']]:
        """
        Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}".
        """
        return pulumi.get(self, "stored_procedure_parameters")


@pulumi.output_type
class AzureSqlTableDatasetResponse(dict):
    """
    The Azure SQL Server database dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureSqlTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureSqlTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureSqlTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        The Azure SQL Server database dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'AzureSqlTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The table name of the Azure SQL database. Type: string (or Expression with resultType string).
        :param Any table_name: This property will be retired. Please consider using schema + table properties instead.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'AzureSqlTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'AzureSqlTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The table name of the Azure SQL database. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        This property will be retired. Please consider using schema + table properties instead.
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class AzureStorageLinkedServiceResponse(dict):
    """
    The storage account linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountKey":
            suggest = "account_key"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "connectionString":
            suggest = "connection_string"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "sasToken":
            suggest = "sas_token"
        elif key == "sasUri":
            suggest = "sas_uri"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureStorageLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureStorageLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureStorageLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 account_key: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 connection_string: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[str] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 sas_token: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None,
                 sas_uri: Optional[Any] = None):
        """
        The storage account linked service.
        :param str type: Type of linked service.
               Expected value is 'AzureStorage'.
        :param 'AzureKeyVaultSecretReferenceResponse' account_key: The Azure key vault secret reference of accountKey in connection string.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any connection_string: The connection string. It is mutually exclusive with sasUri property. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str description: Linked service description.
        :param str encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param 'AzureKeyVaultSecretReferenceResponse' sas_token: The Azure key vault secret reference of sasToken in sas uri.
        :param Any sas_uri: SAS URI of the Azure Storage resource. It is mutually exclusive with connectionString property. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        pulumi.set(__self__, "type", 'AzureStorage')
        if account_key is not None:
            pulumi.set(__self__, "account_key", account_key)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if connection_string is not None:
            pulumi.set(__self__, "connection_string", connection_string)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if sas_token is not None:
            pulumi.set(__self__, "sas_token", sas_token)
        if sas_uri is not None:
            pulumi.set(__self__, "sas_uri", sas_uri)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AzureStorage'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="accountKey")
    def account_key(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of accountKey in connection string.
        """
        return pulumi.get(self, "account_key")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Optional[Any]:
        """
        The connection string. It is mutually exclusive with sasUri property. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[str]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="sasToken")
    def sas_token(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of sasToken in sas uri.
        """
        return pulumi.get(self, "sas_token")

    @property
    @pulumi.getter(name="sasUri")
    def sas_uri(self) -> Optional[Any]:
        """
        SAS URI of the Azure Storage resource. It is mutually exclusive with connectionString property. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "sas_uri")


@pulumi.output_type
class AzureTableDatasetResponse(dict):
    """
    The Azure Table storage dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 table_name: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        The Azure Table storage dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param Any table_name: The table name of the Azure Table storage. Type: string (or Expression with resultType string).
        :param str type: Type of dataset.
               Expected value is 'AzureTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "table_name", table_name)
        pulumi.set(__self__, "type", 'AzureTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Any:
        """
        The table name of the Azure Table storage. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'AzureTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class AzureTableSinkResponse(dict):
    """
    A copy activity Azure Table sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "azureTableDefaultPartitionKeyValue":
            suggest = "azure_table_default_partition_key_value"
        elif key == "azureTableInsertType":
            suggest = "azure_table_insert_type"
        elif key == "azureTablePartitionKeyName":
            suggest = "azure_table_partition_key_name"
        elif key == "azureTableRowKeyName":
            suggest = "azure_table_row_key_name"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureTableSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureTableSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureTableSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 azure_table_default_partition_key_value: Optional[Any] = None,
                 azure_table_insert_type: Optional[Any] = None,
                 azure_table_partition_key_name: Optional[Any] = None,
                 azure_table_row_key_name: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity Azure Table sink.
        :param str type: Copy sink type.
               Expected value is 'AzureTableSink'.
        :param Any azure_table_default_partition_key_value: Azure Table default partition key value. Type: string (or Expression with resultType string).
        :param Any azure_table_insert_type: Azure Table insert type. Type: string (or Expression with resultType string).
        :param Any azure_table_partition_key_name: Azure Table partition key name. Type: string (or Expression with resultType string).
        :param Any azure_table_row_key_name: Azure Table row key name. Type: string (or Expression with resultType string).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'AzureTableSink')
        if azure_table_default_partition_key_value is not None:
            pulumi.set(__self__, "azure_table_default_partition_key_value", azure_table_default_partition_key_value)
        if azure_table_insert_type is not None:
            pulumi.set(__self__, "azure_table_insert_type", azure_table_insert_type)
        if azure_table_partition_key_name is not None:
            pulumi.set(__self__, "azure_table_partition_key_name", azure_table_partition_key_name)
        if azure_table_row_key_name is not None:
            pulumi.set(__self__, "azure_table_row_key_name", azure_table_row_key_name)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'AzureTableSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="azureTableDefaultPartitionKeyValue")
    def azure_table_default_partition_key_value(self) -> Optional[Any]:
        """
        Azure Table default partition key value. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "azure_table_default_partition_key_value")

    @property
    @pulumi.getter(name="azureTableInsertType")
    def azure_table_insert_type(self) -> Optional[Any]:
        """
        Azure Table insert type. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "azure_table_insert_type")

    @property
    @pulumi.getter(name="azureTablePartitionKeyName")
    def azure_table_partition_key_name(self) -> Optional[Any]:
        """
        Azure Table partition key name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "azure_table_partition_key_name")

    @property
    @pulumi.getter(name="azureTableRowKeyName")
    def azure_table_row_key_name(self) -> Optional[Any]:
        """
        Azure Table row key name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "azure_table_row_key_name")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class AzureTableSourceResponse(dict):
    """
    A copy activity Azure Table source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "azureTableSourceIgnoreTableNotFound":
            suggest = "azure_table_source_ignore_table_not_found"
        elif key == "azureTableSourceQuery":
            suggest = "azure_table_source_query"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureTableSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureTableSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureTableSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 azure_table_source_ignore_table_not_found: Optional[Any] = None,
                 azure_table_source_query: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Azure Table source.
        :param str type: Copy source type.
               Expected value is 'AzureTableSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any azure_table_source_ignore_table_not_found: Azure Table source ignore table not found. Type: boolean (or Expression with resultType boolean).
        :param Any azure_table_source_query: Azure Table source query. Type: string (or Expression with resultType string).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'AzureTableSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if azure_table_source_ignore_table_not_found is not None:
            pulumi.set(__self__, "azure_table_source_ignore_table_not_found", azure_table_source_ignore_table_not_found)
        if azure_table_source_query is not None:
            pulumi.set(__self__, "azure_table_source_query", azure_table_source_query)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'AzureTableSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="azureTableSourceIgnoreTableNotFound")
    def azure_table_source_ignore_table_not_found(self) -> Optional[Any]:
        """
        Azure Table source ignore table not found. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "azure_table_source_ignore_table_not_found")

    @property
    @pulumi.getter(name="azureTableSourceQuery")
    def azure_table_source_query(self) -> Optional[Any]:
        """
        Azure Table source query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "azure_table_source_query")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class AzureTableStorageLinkedServiceResponse(dict):
    """
    The azure table storage linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountKey":
            suggest = "account_key"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "connectionString":
            suggest = "connection_string"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "sasToken":
            suggest = "sas_token"
        elif key == "sasUri":
            suggest = "sas_uri"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AzureTableStorageLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AzureTableStorageLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AzureTableStorageLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 account_key: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 connection_string: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[str] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 sas_token: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None,
                 sas_uri: Optional[Any] = None):
        """
        The azure table storage linked service.
        :param str type: Type of linked service.
               Expected value is 'AzureTableStorage'.
        :param 'AzureKeyVaultSecretReferenceResponse' account_key: The Azure key vault secret reference of accountKey in connection string.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any connection_string: The connection string. It is mutually exclusive with sasUri property. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str description: Linked service description.
        :param str encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param 'AzureKeyVaultSecretReferenceResponse' sas_token: The Azure key vault secret reference of sasToken in sas uri.
        :param Any sas_uri: SAS URI of the Azure Storage resource. It is mutually exclusive with connectionString property. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        pulumi.set(__self__, "type", 'AzureTableStorage')
        if account_key is not None:
            pulumi.set(__self__, "account_key", account_key)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if connection_string is not None:
            pulumi.set(__self__, "connection_string", connection_string)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if sas_token is not None:
            pulumi.set(__self__, "sas_token", sas_token)
        if sas_uri is not None:
            pulumi.set(__self__, "sas_uri", sas_uri)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'AzureTableStorage'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="accountKey")
    def account_key(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of accountKey in connection string.
        """
        return pulumi.get(self, "account_key")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Optional[Any]:
        """
        The connection string. It is mutually exclusive with sasUri property. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[str]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="sasToken")
    def sas_token(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of sasToken in sas uri.
        """
        return pulumi.get(self, "sas_token")

    @property
    @pulumi.getter(name="sasUri")
    def sas_uri(self) -> Optional[Any]:
        """
        SAS URI of the Azure Storage resource. It is mutually exclusive with connectionString property. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "sas_uri")


@pulumi.output_type
class BinaryDatasetResponse(dict):
    """
    Binary dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BinaryDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BinaryDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BinaryDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 location: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 compression: Optional['outputs.DatasetCompressionResponse'] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        Binary dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param Union['AmazonS3CompatibleLocationResponse', 'AmazonS3LocationResponse', 'AzureBlobFSLocationResponse', 'AzureBlobStorageLocationResponse', 'AzureDataLakeStoreLocationResponse', 'AzureFileStorageLocationResponse', 'FileServerLocationResponse', 'FtpServerLocationResponse', 'GoogleCloudStorageLocationResponse', 'HdfsLocationResponse', 'HttpServerLocationResponse', 'OracleCloudStorageLocationResponse', 'SftpLocationResponse'] location: The location of the Binary storage.
        :param str type: Type of dataset.
               Expected value is 'Binary'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param 'DatasetCompressionResponse' compression: The data compression method used for the binary dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "location", location)
        pulumi.set(__self__, "type", 'Binary')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if compression is not None:
            pulumi.set(__self__, "compression", compression)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def location(self) -> Any:
        """
        The location of the Binary storage.
        """
        return pulumi.get(self, "location")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'Binary'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def compression(self) -> Optional['outputs.DatasetCompressionResponse']:
        """
        The data compression method used for the binary dataset.
        """
        return pulumi.get(self, "compression")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class BinaryReadSettingsResponse(dict):
    """
    Binary read settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "compressionProperties":
            suggest = "compression_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BinaryReadSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BinaryReadSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BinaryReadSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 compression_properties: Optional[Any] = None):
        """
        Binary read settings.
        :param str type: The read setting type.
               Expected value is 'BinaryReadSettings'.
        :param Union['TarGZipReadSettingsResponse', 'TarReadSettingsResponse', 'ZipDeflateReadSettingsResponse'] compression_properties: Compression settings.
        """
        pulumi.set(__self__, "type", 'BinaryReadSettings')
        if compression_properties is not None:
            pulumi.set(__self__, "compression_properties", compression_properties)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The read setting type.
        Expected value is 'BinaryReadSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="compressionProperties")
    def compression_properties(self) -> Optional[Any]:
        """
        Compression settings.
        """
        return pulumi.get(self, "compression_properties")


@pulumi.output_type
class BinarySinkResponse(dict):
    """
    A copy activity Binary sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "storeSettings":
            suggest = "store_settings"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BinarySinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BinarySinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BinarySinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 store_settings: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity Binary sink.
        :param str type: Copy sink type.
               Expected value is 'BinarySink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Union['AzureBlobFSWriteSettingsResponse', 'AzureBlobStorageWriteSettingsResponse', 'AzureDataLakeStoreWriteSettingsResponse', 'AzureFileStorageWriteSettingsResponse', 'FileServerWriteSettingsResponse', 'SftpWriteSettingsResponse'] store_settings: Binary store settings.
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'BinarySink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if store_settings is not None:
            pulumi.set(__self__, "store_settings", store_settings)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'BinarySink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="storeSettings")
    def store_settings(self) -> Optional[Any]:
        """
        Binary store settings.
        """
        return pulumi.get(self, "store_settings")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class BinarySourceResponse(dict):
    """
    A copy activity Binary source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "formatSettings":
            suggest = "format_settings"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"
        elif key == "storeSettings":
            suggest = "store_settings"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BinarySourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BinarySourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BinarySourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 format_settings: Optional['outputs.BinaryReadSettingsResponse'] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None,
                 store_settings: Optional[Any] = None):
        """
        A copy activity Binary source.
        :param str type: Copy source type.
               Expected value is 'BinarySource'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param 'BinaryReadSettingsResponse' format_settings: Binary format settings.
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Union['AmazonS3CompatibleReadSettingsResponse', 'AmazonS3ReadSettingsResponse', 'AzureBlobFSReadSettingsResponse', 'AzureBlobStorageReadSettingsResponse', 'AzureDataLakeStoreReadSettingsResponse', 'AzureFileStorageReadSettingsResponse', 'FileServerReadSettingsResponse', 'FtpReadSettingsResponse', 'GoogleCloudStorageReadSettingsResponse', 'HdfsReadSettingsResponse', 'HttpReadSettingsResponse', 'OracleCloudStorageReadSettingsResponse', 'SftpReadSettingsResponse'] store_settings: Binary store settings.
        """
        pulumi.set(__self__, "type", 'BinarySource')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if format_settings is not None:
            pulumi.set(__self__, "format_settings", format_settings)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)
        if store_settings is not None:
            pulumi.set(__self__, "store_settings", store_settings)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'BinarySource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="formatSettings")
    def format_settings(self) -> Optional['outputs.BinaryReadSettingsResponse']:
        """
        Binary format settings.
        """
        return pulumi.get(self, "format_settings")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")

    @property
    @pulumi.getter(name="storeSettings")
    def store_settings(self) -> Optional[Any]:
        """
        Binary store settings.
        """
        return pulumi.get(self, "store_settings")


@pulumi.output_type
class BlobEventsTriggerResponse(dict):
    """
    Trigger that runs every time a Blob event occurs.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "runtimeState":
            suggest = "runtime_state"
        elif key == "blobPathBeginsWith":
            suggest = "blob_path_begins_with"
        elif key == "blobPathEndsWith":
            suggest = "blob_path_ends_with"
        elif key == "ignoreEmptyBlobs":
            suggest = "ignore_empty_blobs"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BlobEventsTriggerResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BlobEventsTriggerResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BlobEventsTriggerResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 events: Sequence[str],
                 runtime_state: str,
                 scope: str,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 blob_path_begins_with: Optional[str] = None,
                 blob_path_ends_with: Optional[str] = None,
                 description: Optional[str] = None,
                 ignore_empty_blobs: Optional[bool] = None,
                 pipelines: Optional[Sequence['outputs.TriggerPipelineReferenceResponse']] = None):
        """
        Trigger that runs every time a Blob event occurs.
        :param Sequence[str] events: The type of events that cause this trigger to fire.
        :param str runtime_state: Indicates if trigger is running or not. Updated when Start/Stop APIs are called on the Trigger.
        :param str scope: The ARM resource ID of the Storage Account.
        :param str type: Trigger type.
               Expected value is 'BlobEventsTrigger'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the trigger.
        :param str blob_path_begins_with: The blob path must begin with the pattern provided for trigger to fire. For example, '/records/blobs/december/' will only fire the trigger for blobs in the december folder under the records container. At least one of these must be provided: blobPathBeginsWith, blobPathEndsWith.
        :param str blob_path_ends_with: The blob path must end with the pattern provided for trigger to fire. For example, 'december/boxes.csv' will only fire the trigger for blobs named boxes in a december folder. At least one of these must be provided: blobPathBeginsWith, blobPathEndsWith.
        :param str description: Trigger description.
        :param bool ignore_empty_blobs: If set to true, blobs with zero bytes will be ignored.
        :param Sequence['TriggerPipelineReferenceResponse'] pipelines: Pipelines that need to be started.
        """
        pulumi.set(__self__, "events", events)
        pulumi.set(__self__, "runtime_state", runtime_state)
        pulumi.set(__self__, "scope", scope)
        pulumi.set(__self__, "type", 'BlobEventsTrigger')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if blob_path_begins_with is not None:
            pulumi.set(__self__, "blob_path_begins_with", blob_path_begins_with)
        if blob_path_ends_with is not None:
            pulumi.set(__self__, "blob_path_ends_with", blob_path_ends_with)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if ignore_empty_blobs is not None:
            pulumi.set(__self__, "ignore_empty_blobs", ignore_empty_blobs)
        if pipelines is not None:
            pulumi.set(__self__, "pipelines", pipelines)

    @property
    @pulumi.getter
    def events(self) -> Sequence[str]:
        """
        The type of events that cause this trigger to fire.
        """
        return pulumi.get(self, "events")

    @property
    @pulumi.getter(name="runtimeState")
    def runtime_state(self) -> str:
        """
        Indicates if trigger is running or not. Updated when Start/Stop APIs are called on the Trigger.
        """
        return pulumi.get(self, "runtime_state")

    @property
    @pulumi.getter
    def scope(self) -> str:
        """
        The ARM resource ID of the Storage Account.
        """
        return pulumi.get(self, "scope")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Trigger type.
        Expected value is 'BlobEventsTrigger'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the trigger.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="blobPathBeginsWith")
    def blob_path_begins_with(self) -> Optional[str]:
        """
        The blob path must begin with the pattern provided for trigger to fire. For example, '/records/blobs/december/' will only fire the trigger for blobs in the december folder under the records container. At least one of these must be provided: blobPathBeginsWith, blobPathEndsWith.
        """
        return pulumi.get(self, "blob_path_begins_with")

    @property
    @pulumi.getter(name="blobPathEndsWith")
    def blob_path_ends_with(self) -> Optional[str]:
        """
        The blob path must end with the pattern provided for trigger to fire. For example, 'december/boxes.csv' will only fire the trigger for blobs named boxes in a december folder. At least one of these must be provided: blobPathBeginsWith, blobPathEndsWith.
        """
        return pulumi.get(self, "blob_path_ends_with")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Trigger description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="ignoreEmptyBlobs")
    def ignore_empty_blobs(self) -> Optional[bool]:
        """
        If set to true, blobs with zero bytes will be ignored.
        """
        return pulumi.get(self, "ignore_empty_blobs")

    @property
    @pulumi.getter
    def pipelines(self) -> Optional[Sequence['outputs.TriggerPipelineReferenceResponse']]:
        """
        Pipelines that need to be started.
        """
        return pulumi.get(self, "pipelines")


@pulumi.output_type
class BlobSinkResponse(dict):
    """
    A copy activity Azure Blob sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "blobWriterAddHeader":
            suggest = "blob_writer_add_header"
        elif key == "blobWriterDateTimeFormat":
            suggest = "blob_writer_date_time_format"
        elif key == "blobWriterOverwriteFiles":
            suggest = "blob_writer_overwrite_files"
        elif key == "copyBehavior":
            suggest = "copy_behavior"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BlobSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BlobSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BlobSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 blob_writer_add_header: Optional[Any] = None,
                 blob_writer_date_time_format: Optional[Any] = None,
                 blob_writer_overwrite_files: Optional[Any] = None,
                 copy_behavior: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 metadata: Optional[Sequence['outputs.MetadataItemResponse']] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity Azure Blob sink.
        :param str type: Copy sink type.
               Expected value is 'BlobSink'.
        :param Any blob_writer_add_header: Blob writer add header. Type: boolean (or Expression with resultType boolean).
        :param Any blob_writer_date_time_format: Blob writer date time format. Type: string (or Expression with resultType string).
        :param Any blob_writer_overwrite_files: Blob writer overwrite files. Type: boolean (or Expression with resultType boolean).
        :param Any copy_behavior: The type of copy behavior for copy sink.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Sequence['MetadataItemResponse'] metadata: Specify the custom metadata to be added to sink data. Type: array of objects (or Expression with resultType array of objects).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'BlobSink')
        if blob_writer_add_header is not None:
            pulumi.set(__self__, "blob_writer_add_header", blob_writer_add_header)
        if blob_writer_date_time_format is not None:
            pulumi.set(__self__, "blob_writer_date_time_format", blob_writer_date_time_format)
        if blob_writer_overwrite_files is not None:
            pulumi.set(__self__, "blob_writer_overwrite_files", blob_writer_overwrite_files)
        if copy_behavior is not None:
            pulumi.set(__self__, "copy_behavior", copy_behavior)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'BlobSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="blobWriterAddHeader")
    def blob_writer_add_header(self) -> Optional[Any]:
        """
        Blob writer add header. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "blob_writer_add_header")

    @property
    @pulumi.getter(name="blobWriterDateTimeFormat")
    def blob_writer_date_time_format(self) -> Optional[Any]:
        """
        Blob writer date time format. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "blob_writer_date_time_format")

    @property
    @pulumi.getter(name="blobWriterOverwriteFiles")
    def blob_writer_overwrite_files(self) -> Optional[Any]:
        """
        Blob writer overwrite files. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "blob_writer_overwrite_files")

    @property
    @pulumi.getter(name="copyBehavior")
    def copy_behavior(self) -> Optional[Any]:
        """
        The type of copy behavior for copy sink.
        """
        return pulumi.get(self, "copy_behavior")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def metadata(self) -> Optional[Sequence['outputs.MetadataItemResponse']]:
        """
        Specify the custom metadata to be added to sink data. Type: array of objects (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "metadata")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class BlobSourceResponse(dict):
    """
    A copy activity Azure Blob source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "skipHeaderLineCount":
            suggest = "skip_header_line_count"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"
        elif key == "treatEmptyAsNull":
            suggest = "treat_empty_as_null"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BlobSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BlobSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BlobSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 recursive: Optional[Any] = None,
                 skip_header_line_count: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None,
                 treat_empty_as_null: Optional[Any] = None):
        """
        A copy activity Azure Blob source.
        :param str type: Copy source type.
               Expected value is 'BlobSource'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        :param Any skip_header_line_count: Number of header lines to skip from each blob. Type: integer (or Expression with resultType integer).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any treat_empty_as_null: Treat empty as null. Type: boolean (or Expression with resultType boolean).
        """
        pulumi.set(__self__, "type", 'BlobSource')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if recursive is not None:
            pulumi.set(__self__, "recursive", recursive)
        if skip_header_line_count is not None:
            pulumi.set(__self__, "skip_header_line_count", skip_header_line_count)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)
        if treat_empty_as_null is not None:
            pulumi.set(__self__, "treat_empty_as_null", treat_empty_as_null)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'BlobSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def recursive(self) -> Optional[Any]:
        """
        If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "recursive")

    @property
    @pulumi.getter(name="skipHeaderLineCount")
    def skip_header_line_count(self) -> Optional[Any]:
        """
        Number of header lines to skip from each blob. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "skip_header_line_count")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")

    @property
    @pulumi.getter(name="treatEmptyAsNull")
    def treat_empty_as_null(self) -> Optional[Any]:
        """
        Treat empty as null. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "treat_empty_as_null")


@pulumi.output_type
class BlobTriggerResponse(dict):
    """
    Trigger that runs every time the selected Blob container changes.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "folderPath":
            suggest = "folder_path"
        elif key == "linkedService":
            suggest = "linked_service"
        elif key == "maxConcurrency":
            suggest = "max_concurrency"
        elif key == "runtimeState":
            suggest = "runtime_state"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BlobTriggerResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BlobTriggerResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BlobTriggerResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 folder_path: str,
                 linked_service: 'outputs.LinkedServiceReferenceResponse',
                 max_concurrency: int,
                 runtime_state: str,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 pipelines: Optional[Sequence['outputs.TriggerPipelineReferenceResponse']] = None):
        """
        Trigger that runs every time the selected Blob container changes.
        :param str folder_path: The path of the container/folder that will trigger the pipeline.
        :param 'LinkedServiceReferenceResponse' linked_service: The Azure Storage linked service reference.
        :param int max_concurrency: The max number of parallel files to handle when it is triggered.
        :param str runtime_state: Indicates if trigger is running or not. Updated when Start/Stop APIs are called on the Trigger.
        :param str type: Trigger type.
               Expected value is 'BlobTrigger'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the trigger.
        :param str description: Trigger description.
        :param Sequence['TriggerPipelineReferenceResponse'] pipelines: Pipelines that need to be started.
        """
        pulumi.set(__self__, "folder_path", folder_path)
        pulumi.set(__self__, "linked_service", linked_service)
        pulumi.set(__self__, "max_concurrency", max_concurrency)
        pulumi.set(__self__, "runtime_state", runtime_state)
        pulumi.set(__self__, "type", 'BlobTrigger')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if pipelines is not None:
            pulumi.set(__self__, "pipelines", pipelines)

    @property
    @pulumi.getter(name="folderPath")
    def folder_path(self) -> str:
        """
        The path of the container/folder that will trigger the pipeline.
        """
        return pulumi.get(self, "folder_path")

    @property
    @pulumi.getter(name="linkedService")
    def linked_service(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        The Azure Storage linked service reference.
        """
        return pulumi.get(self, "linked_service")

    @property
    @pulumi.getter(name="maxConcurrency")
    def max_concurrency(self) -> int:
        """
        The max number of parallel files to handle when it is triggered.
        """
        return pulumi.get(self, "max_concurrency")

    @property
    @pulumi.getter(name="runtimeState")
    def runtime_state(self) -> str:
        """
        Indicates if trigger is running or not. Updated when Start/Stop APIs are called on the Trigger.
        """
        return pulumi.get(self, "runtime_state")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Trigger type.
        Expected value is 'BlobTrigger'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the trigger.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Trigger description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def pipelines(self) -> Optional[Sequence['outputs.TriggerPipelineReferenceResponse']]:
        """
        Pipelines that need to be started.
        """
        return pulumi.get(self, "pipelines")


@pulumi.output_type
class CMKIdentityDefinitionResponse(dict):
    """
    Managed Identity used for CMK.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "userAssignedIdentity":
            suggest = "user_assigned_identity"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CMKIdentityDefinitionResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CMKIdentityDefinitionResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CMKIdentityDefinitionResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 user_assigned_identity: Optional[str] = None):
        """
        Managed Identity used for CMK.
        :param str user_assigned_identity: The resource id of the user assigned identity to authenticate to customer's key vault.
        """
        if user_assigned_identity is not None:
            pulumi.set(__self__, "user_assigned_identity", user_assigned_identity)

    @property
    @pulumi.getter(name="userAssignedIdentity")
    def user_assigned_identity(self) -> Optional[str]:
        """
        The resource id of the user assigned identity to authenticate to customer's key vault.
        """
        return pulumi.get(self, "user_assigned_identity")


@pulumi.output_type
class CassandraLinkedServiceResponse(dict):
    """
    Linked service for Cassandra data source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CassandraLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CassandraLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CassandraLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 host: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 authentication_type: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 port: Optional[Any] = None,
                 username: Optional[Any] = None):
        """
        Linked service for Cassandra data source.
        :param Any host: Host name for connection. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'Cassandra'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any authentication_type: AuthenticationType to be used for connection. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password for authentication.
        :param Any port: The port for the connection. Type: integer (or Expression with resultType integer).
        :param Any username: Username for authentication. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "host", host)
        pulumi.set(__self__, "type", 'Cassandra')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if authentication_type is not None:
            pulumi.set(__self__, "authentication_type", authentication_type)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter
    def host(self) -> Any:
        """
        Host name for connection. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "host")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Cassandra'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> Optional[Any]:
        """
        AuthenticationType to be used for connection. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        Password for authentication.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def port(self) -> Optional[Any]:
        """
        The port for the connection. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "port")

    @property
    @pulumi.getter
    def username(self) -> Optional[Any]:
        """
        Username for authentication. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "username")


@pulumi.output_type
class CassandraSourceResponse(dict):
    """
    A copy activity source for a Cassandra database.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "consistencyLevel":
            suggest = "consistency_level"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CassandraSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CassandraSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CassandraSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 consistency_level: Optional[str] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for a Cassandra database.
        :param str type: Copy source type.
               Expected value is 'CassandraSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param str consistency_level: 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.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: Database query. Should be a SQL-92 query expression or Cassandra Query Language (CQL) command. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'CassandraSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if consistency_level is not None:
            pulumi.set(__self__, "consistency_level", consistency_level)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'CassandraSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="consistencyLevel")
    def consistency_level(self) -> Optional[str]:
        """
        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.
        """
        return pulumi.get(self, "consistency_level")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        Database query. Should be a SQL-92 query expression or Cassandra Query Language (CQL) command. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class CassandraTableDatasetResponse(dict):
    """
    The Cassandra database dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CassandraTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CassandraTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CassandraTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 keyspace: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        The Cassandra database dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'CassandraTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Any keyspace: The keyspace of the Cassandra database. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The table name of the Cassandra database. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'CassandraTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if keyspace is not None:
            pulumi.set(__self__, "keyspace", keyspace)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'CassandraTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def keyspace(self) -> Optional[Any]:
        """
        The keyspace of the Cassandra database. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "keyspace")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name of the Cassandra database. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class ChainingTriggerResponse(dict):
    """
    Trigger that allows the referenced pipeline to depend on other pipeline runs based on runDimension Name/Value pairs. Upstream pipelines should declare the same runDimension Name and their runs should have the values for those runDimensions. The referenced pipeline run would be triggered if the values for the runDimension match for all upstream pipeline runs.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dependsOn":
            suggest = "depends_on"
        elif key == "runDimension":
            suggest = "run_dimension"
        elif key == "runtimeState":
            suggest = "runtime_state"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ChainingTriggerResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ChainingTriggerResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ChainingTriggerResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 depends_on: Sequence['outputs.PipelineReferenceResponse'],
                 pipeline: 'outputs.TriggerPipelineReferenceResponse',
                 run_dimension: str,
                 runtime_state: str,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None):
        """
        Trigger that allows the referenced pipeline to depend on other pipeline runs based on runDimension Name/Value pairs. Upstream pipelines should declare the same runDimension Name and their runs should have the values for those runDimensions. The referenced pipeline run would be triggered if the values for the runDimension match for all upstream pipeline runs.
        :param Sequence['PipelineReferenceResponse'] depends_on: Upstream Pipelines.
        :param 'TriggerPipelineReferenceResponse' pipeline: Pipeline for which runs are created when all upstream pipelines complete successfully.
        :param str run_dimension: Run Dimension property that needs to be emitted by upstream pipelines.
        :param str runtime_state: Indicates if trigger is running or not. Updated when Start/Stop APIs are called on the Trigger.
        :param str type: Trigger type.
               Expected value is 'ChainingTrigger'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the trigger.
        :param str description: Trigger description.
        """
        pulumi.set(__self__, "depends_on", depends_on)
        pulumi.set(__self__, "pipeline", pipeline)
        pulumi.set(__self__, "run_dimension", run_dimension)
        pulumi.set(__self__, "runtime_state", runtime_state)
        pulumi.set(__self__, "type", 'ChainingTrigger')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Sequence['outputs.PipelineReferenceResponse']:
        """
        Upstream Pipelines.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def pipeline(self) -> 'outputs.TriggerPipelineReferenceResponse':
        """
        Pipeline for which runs are created when all upstream pipelines complete successfully.
        """
        return pulumi.get(self, "pipeline")

    @property
    @pulumi.getter(name="runDimension")
    def run_dimension(self) -> str:
        """
        Run Dimension property that needs to be emitted by upstream pipelines.
        """
        return pulumi.get(self, "run_dimension")

    @property
    @pulumi.getter(name="runtimeState")
    def runtime_state(self) -> str:
        """
        Indicates if trigger is running or not. Updated when Start/Stop APIs are called on the Trigger.
        """
        return pulumi.get(self, "runtime_state")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Trigger type.
        Expected value is 'ChainingTrigger'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the trigger.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Trigger description.
        """
        return pulumi.get(self, "description")


@pulumi.output_type
class CmdkeySetupResponse(dict):
    """
    The custom setup of running cmdkey commands.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "targetName":
            suggest = "target_name"
        elif key == "userName":
            suggest = "user_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CmdkeySetupResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CmdkeySetupResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CmdkeySetupResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 password: Any,
                 target_name: Any,
                 type: str,
                 user_name: Any):
        """
        The custom setup of running cmdkey commands.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The password of data source access.
        :param Any target_name: The server name of data source access.
        :param str type: The type of custom setup.
               Expected value is 'CmdkeySetup'.
        :param Any user_name: The user name of data source access.
        """
        pulumi.set(__self__, "password", password)
        pulumi.set(__self__, "target_name", target_name)
        pulumi.set(__self__, "type", 'CmdkeySetup')
        pulumi.set(__self__, "user_name", user_name)

    @property
    @pulumi.getter
    def password(self) -> Any:
        """
        The password of data source access.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="targetName")
    def target_name(self) -> Any:
        """
        The server name of data source access.
        """
        return pulumi.get(self, "target_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of custom setup.
        Expected value is 'CmdkeySetup'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="userName")
    def user_name(self) -> Any:
        """
        The user name of data source access.
        """
        return pulumi.get(self, "user_name")


@pulumi.output_type
class CommonDataServiceForAppsEntityDatasetResponse(dict):
    """
    The Common Data Service for Apps entity dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "entityName":
            suggest = "entity_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CommonDataServiceForAppsEntityDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CommonDataServiceForAppsEntityDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CommonDataServiceForAppsEntityDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 entity_name: Optional[Any] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        The Common Data Service for Apps entity dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'CommonDataServiceForAppsEntity'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param Any entity_name: The logical name of the entity. Type: string (or Expression with resultType string).
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'CommonDataServiceForAppsEntity')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if entity_name is not None:
            pulumi.set(__self__, "entity_name", entity_name)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'CommonDataServiceForAppsEntity'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="entityName")
    def entity_name(self) -> Optional[Any]:
        """
        The logical name of the entity. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "entity_name")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class CommonDataServiceForAppsLinkedServiceResponse(dict):
    """
    Common Data Service for Apps linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"
        elif key == "deploymentType":
            suggest = "deployment_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "hostName":
            suggest = "host_name"
        elif key == "organizationName":
            suggest = "organization_name"
        elif key == "servicePrincipalCredential":
            suggest = "service_principal_credential"
        elif key == "servicePrincipalCredentialType":
            suggest = "service_principal_credential_type"
        elif key == "servicePrincipalId":
            suggest = "service_principal_id"
        elif key == "serviceUri":
            suggest = "service_uri"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CommonDataServiceForAppsLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CommonDataServiceForAppsLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CommonDataServiceForAppsLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 authentication_type: Any,
                 deployment_type: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 host_name: Optional[Any] = None,
                 organization_name: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 port: Optional[Any] = None,
                 service_principal_credential: Optional[Any] = None,
                 service_principal_credential_type: Optional[Any] = None,
                 service_principal_id: Optional[Any] = None,
                 service_uri: Optional[Any] = None,
                 username: Optional[Any] = None):
        """
        Common Data Service for Apps linked service.
        :param Any authentication_type: The authentication type to connect to Common Data Service for Apps server. 'Office365' for online scenario, 'Ifd' for on-premises with Ifd scenario. 'AADServicePrincipal' for Server-To-Server authentication in online scenario. Type: string (or Expression with resultType string).
        :param Any deployment_type: The deployment type of the Common Data Service for Apps instance. 'Online' for Common Data Service for Apps Online and 'OnPremisesWithIfd' for Common Data Service for Apps on-premises with Ifd. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'CommonDataServiceForApps'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Any host_name: The host name of the on-premises Common Data Service for Apps server. The property is required for on-prem and not allowed for online. Type: string (or Expression with resultType string).
        :param Any organization_name: The organization name of the Common Data Service for Apps instance. The property is required for on-prem and required for online when there are more than one Common Data Service for Apps instances associated with the user. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password to access the Common Data Service for Apps instance.
        :param Any port: The port of on-premises Common Data Service for Apps server. The property is required for on-prem and not allowed for online. Default is 443. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_credential: The credential of the service principal object in Azure Active Directory. If servicePrincipalCredentialType is 'ServicePrincipalKey', servicePrincipalCredential can be SecureString or AzureKeyVaultSecretReference. If servicePrincipalCredentialType is 'ServicePrincipalCert', servicePrincipalCredential can only be AzureKeyVaultSecretReference.
        :param Any service_principal_credential_type: The service principal credential type to use in Server-To-Server authentication. 'ServicePrincipalKey' for key/secret, 'ServicePrincipalCert' for certificate. Type: string (or Expression with resultType string).
        :param Any service_principal_id: The client ID of the application in Azure Active Directory used for Server-To-Server authentication. Type: string (or Expression with resultType string).
        :param Any service_uri: The URL to the Microsoft Common Data Service for Apps server. The property is required for on-line and not allowed for on-prem. Type: string (or Expression with resultType string).
        :param Any username: User name to access the Common Data Service for Apps instance. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "authentication_type", authentication_type)
        pulumi.set(__self__, "deployment_type", deployment_type)
        pulumi.set(__self__, "type", 'CommonDataServiceForApps')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if host_name is not None:
            pulumi.set(__self__, "host_name", host_name)
        if organization_name is not None:
            pulumi.set(__self__, "organization_name", organization_name)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if service_principal_credential is not None:
            pulumi.set(__self__, "service_principal_credential", service_principal_credential)
        if service_principal_credential_type is not None:
            pulumi.set(__self__, "service_principal_credential_type", service_principal_credential_type)
        if service_principal_id is not None:
            pulumi.set(__self__, "service_principal_id", service_principal_id)
        if service_uri is not None:
            pulumi.set(__self__, "service_uri", service_uri)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> Any:
        """
        The authentication type to connect to Common Data Service for Apps server. 'Office365' for online scenario, 'Ifd' for on-premises with Ifd scenario. 'AADServicePrincipal' for Server-To-Server authentication in online scenario. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter(name="deploymentType")
    def deployment_type(self) -> Any:
        """
        The deployment type of the Common Data Service for Apps instance. 'Online' for Common Data Service for Apps Online and 'OnPremisesWithIfd' for Common Data Service for Apps on-premises with Ifd. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "deployment_type")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'CommonDataServiceForApps'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter(name="hostName")
    def host_name(self) -> Optional[Any]:
        """
        The host name of the on-premises Common Data Service for Apps server. The property is required for on-prem and not allowed for online. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "host_name")

    @property
    @pulumi.getter(name="organizationName")
    def organization_name(self) -> Optional[Any]:
        """
        The organization name of the Common Data Service for Apps instance. The property is required for on-prem and required for online when there are more than one Common Data Service for Apps instances associated with the user. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "organization_name")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        Password to access the Common Data Service for Apps instance.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def port(self) -> Optional[Any]:
        """
        The port of on-premises Common Data Service for Apps server. The property is required for on-prem and not allowed for online. Default is 443. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "port")

    @property
    @pulumi.getter(name="servicePrincipalCredential")
    def service_principal_credential(self) -> Optional[Any]:
        """
        The credential of the service principal object in Azure Active Directory. If servicePrincipalCredentialType is 'ServicePrincipalKey', servicePrincipalCredential can be SecureString or AzureKeyVaultSecretReference. If servicePrincipalCredentialType is 'ServicePrincipalCert', servicePrincipalCredential can only be AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "service_principal_credential")

    @property
    @pulumi.getter(name="servicePrincipalCredentialType")
    def service_principal_credential_type(self) -> Optional[Any]:
        """
        The service principal credential type to use in Server-To-Server authentication. 'ServicePrincipalKey' for key/secret, 'ServicePrincipalCert' for certificate. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_credential_type")

    @property
    @pulumi.getter(name="servicePrincipalId")
    def service_principal_id(self) -> Optional[Any]:
        """
        The client ID of the application in Azure Active Directory used for Server-To-Server authentication. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_id")

    @property
    @pulumi.getter(name="serviceUri")
    def service_uri(self) -> Optional[Any]:
        """
        The URL to the Microsoft Common Data Service for Apps server. The property is required for on-line and not allowed for on-prem. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_uri")

    @property
    @pulumi.getter
    def username(self) -> Optional[Any]:
        """
        User name to access the Common Data Service for Apps instance. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "username")


@pulumi.output_type
class CommonDataServiceForAppsSinkResponse(dict):
    """
    A copy activity Common Data Service for Apps sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "writeBehavior":
            suggest = "write_behavior"
        elif key == "alternateKeyName":
            suggest = "alternate_key_name"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "ignoreNullValues":
            suggest = "ignore_null_values"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CommonDataServiceForAppsSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CommonDataServiceForAppsSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CommonDataServiceForAppsSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 write_behavior: str,
                 alternate_key_name: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 ignore_null_values: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity Common Data Service for Apps sink.
        :param str type: Copy sink type.
               Expected value is 'CommonDataServiceForAppsSink'.
        :param str write_behavior: The write behavior for the operation.
        :param Any alternate_key_name: The logical name of the alternate key which will be used when upserting records. Type: string (or Expression with resultType string).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any ignore_null_values: The flag indicating whether to ignore null values from input dataset (except key fields) during write operation. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'CommonDataServiceForAppsSink')
        pulumi.set(__self__, "write_behavior", write_behavior)
        if alternate_key_name is not None:
            pulumi.set(__self__, "alternate_key_name", alternate_key_name)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if ignore_null_values is not None:
            pulumi.set(__self__, "ignore_null_values", ignore_null_values)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'CommonDataServiceForAppsSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="writeBehavior")
    def write_behavior(self) -> str:
        """
        The write behavior for the operation.
        """
        return pulumi.get(self, "write_behavior")

    @property
    @pulumi.getter(name="alternateKeyName")
    def alternate_key_name(self) -> Optional[Any]:
        """
        The logical name of the alternate key which will be used when upserting records. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "alternate_key_name")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="ignoreNullValues")
    def ignore_null_values(self) -> Optional[Any]:
        """
        The flag indicating whether to ignore null values from input dataset (except key fields) during write operation. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "ignore_null_values")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class CommonDataServiceForAppsSourceResponse(dict):
    """
    A copy activity Common Data Service for Apps source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CommonDataServiceForAppsSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CommonDataServiceForAppsSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CommonDataServiceForAppsSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Common Data Service for Apps source.
        :param str type: Copy source type.
               Expected value is 'CommonDataServiceForAppsSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: FetchXML is a proprietary query language that is used in Microsoft Common Data Service for Apps (online & on-premises). Type: string (or Expression with resultType string).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'CommonDataServiceForAppsSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'CommonDataServiceForAppsSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        FetchXML is a proprietary query language that is used in Microsoft Common Data Service for Apps (online & on-premises). Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class ComponentSetupResponse(dict):
    """
    The custom setup of installing 3rd party components.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "componentName":
            suggest = "component_name"
        elif key == "licenseKey":
            suggest = "license_key"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ComponentSetupResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ComponentSetupResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ComponentSetupResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 component_name: str,
                 type: str,
                 license_key: Optional[Any] = None):
        """
        The custom setup of installing 3rd party components.
        :param str component_name: The name of the 3rd party component.
        :param str type: The type of custom setup.
               Expected value is 'ComponentSetup'.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] license_key: The license key to activate the component.
        """
        pulumi.set(__self__, "component_name", component_name)
        pulumi.set(__self__, "type", 'ComponentSetup')
        if license_key is not None:
            pulumi.set(__self__, "license_key", license_key)

    @property
    @pulumi.getter(name="componentName")
    def component_name(self) -> str:
        """
        The name of the 3rd party component.
        """
        return pulumi.get(self, "component_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of custom setup.
        Expected value is 'ComponentSetup'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="licenseKey")
    def license_key(self) -> Optional[Any]:
        """
        The license key to activate the component.
        """
        return pulumi.get(self, "license_key")


@pulumi.output_type
class ConcurLinkedServiceResponse(dict):
    """
    Concur Service linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "clientId":
            suggest = "client_id"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "connectionProperties":
            suggest = "connection_properties"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "useEncryptedEndpoints":
            suggest = "use_encrypted_endpoints"
        elif key == "useHostVerification":
            suggest = "use_host_verification"
        elif key == "usePeerVerification":
            suggest = "use_peer_verification"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ConcurLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ConcurLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ConcurLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 client_id: Any,
                 type: str,
                 username: Any,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 connection_properties: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 use_encrypted_endpoints: Optional[Any] = None,
                 use_host_verification: Optional[Any] = None,
                 use_peer_verification: Optional[Any] = None):
        """
        Concur Service linked service.
        :param Any client_id: Application client_id supplied by Concur App Management.
        :param str type: Type of linked service.
               Expected value is 'Concur'.
        :param Any username: The user name that you use to access Concur Service.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any connection_properties: Properties used to connect to Concur. It is mutually exclusive with any other properties in the linked service. Type: object.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The password corresponding to the user name that you provided in the username field.
        :param Any use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        :param Any use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        :param Any use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        pulumi.set(__self__, "client_id", client_id)
        pulumi.set(__self__, "type", 'Concur')
        pulumi.set(__self__, "username", username)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if connection_properties is not None:
            pulumi.set(__self__, "connection_properties", connection_properties)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if use_encrypted_endpoints is not None:
            pulumi.set(__self__, "use_encrypted_endpoints", use_encrypted_endpoints)
        if use_host_verification is not None:
            pulumi.set(__self__, "use_host_verification", use_host_verification)
        if use_peer_verification is not None:
            pulumi.set(__self__, "use_peer_verification", use_peer_verification)

    @property
    @pulumi.getter(name="clientId")
    def client_id(self) -> Any:
        """
        Application client_id supplied by Concur App Management.
        """
        return pulumi.get(self, "client_id")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Concur'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def username(self) -> Any:
        """
        The user name that you use to access Concur Service.
        """
        return pulumi.get(self, "username")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="connectionProperties")
    def connection_properties(self) -> Optional[Any]:
        """
        Properties used to connect to Concur. It is mutually exclusive with any other properties in the linked service. Type: object.
        """
        return pulumi.get(self, "connection_properties")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        The password corresponding to the user name that you provided in the username field.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="useEncryptedEndpoints")
    def use_encrypted_endpoints(self) -> Optional[Any]:
        """
        Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        """
        return pulumi.get(self, "use_encrypted_endpoints")

    @property
    @pulumi.getter(name="useHostVerification")
    def use_host_verification(self) -> Optional[Any]:
        """
        Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_host_verification")

    @property
    @pulumi.getter(name="usePeerVerification")
    def use_peer_verification(self) -> Optional[Any]:
        """
        Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_peer_verification")


@pulumi.output_type
class ConcurObjectDatasetResponse(dict):
    """
    Concur Service dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ConcurObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ConcurObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ConcurObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Concur Service dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'ConcurObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'ConcurObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'ConcurObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class ConcurSourceResponse(dict):
    """
    A copy activity Concur Service source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ConcurSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ConcurSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ConcurSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Concur Service source.
        :param str type: Copy source type.
               Expected value is 'ConcurSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'ConcurSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'ConcurSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class ConnectionStatePropertiesResponse(dict):
    """
    The connection state of a managed private endpoint
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "actionsRequired":
            suggest = "actions_required"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ConnectionStatePropertiesResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ConnectionStatePropertiesResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ConnectionStatePropertiesResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 actions_required: str,
                 description: str,
                 status: str):
        """
        The connection state of a managed private endpoint
        :param str actions_required: The actions required on the managed private endpoint
        :param str description: The managed private endpoint description
        :param str status: The approval status
        """
        pulumi.set(__self__, "actions_required", actions_required)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "status", status)

    @property
    @pulumi.getter(name="actionsRequired")
    def actions_required(self) -> str:
        """
        The actions required on the managed private endpoint
        """
        return pulumi.get(self, "actions_required")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        The managed private endpoint description
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def status(self) -> str:
        """
        The approval status
        """
        return pulumi.get(self, "status")


@pulumi.output_type
class ControlActivityResponse(dict):
    """
    Base class for all control activities like IfCondition, ForEach , Until.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dependsOn":
            suggest = "depends_on"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ControlActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ControlActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ControlActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 type: str,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        Base class for all control activities like IfCondition, ForEach , Until.
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'Container'.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'Container')
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'Container'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class CopyActivityLogSettingsResponse(dict):
    """
    Settings for copy activity log.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "enableReliableLogging":
            suggest = "enable_reliable_logging"
        elif key == "logLevel":
            suggest = "log_level"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CopyActivityLogSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CopyActivityLogSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CopyActivityLogSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 enable_reliable_logging: Optional[Any] = None,
                 log_level: Optional[Any] = None):
        """
        Settings for copy activity log.
        :param Any enable_reliable_logging: Specifies whether to enable reliable logging. Type: boolean (or Expression with resultType boolean).
        :param Any log_level: Gets or sets the log level, support: Info, Warning. Type: string (or Expression with resultType string).
        """
        if enable_reliable_logging is not None:
            pulumi.set(__self__, "enable_reliable_logging", enable_reliable_logging)
        if log_level is not None:
            pulumi.set(__self__, "log_level", log_level)

    @property
    @pulumi.getter(name="enableReliableLogging")
    def enable_reliable_logging(self) -> Optional[Any]:
        """
        Specifies whether to enable reliable logging. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "enable_reliable_logging")

    @property
    @pulumi.getter(name="logLevel")
    def log_level(self) -> Optional[Any]:
        """
        Gets or sets the log level, support: Info, Warning. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "log_level")


@pulumi.output_type
class CopyActivityResponse(dict):
    """
    Copy activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dataIntegrationUnits":
            suggest = "data_integration_units"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "enableSkipIncompatibleRow":
            suggest = "enable_skip_incompatible_row"
        elif key == "enableStaging":
            suggest = "enable_staging"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "logSettings":
            suggest = "log_settings"
        elif key == "logStorageSettings":
            suggest = "log_storage_settings"
        elif key == "parallelCopies":
            suggest = "parallel_copies"
        elif key == "preserveRules":
            suggest = "preserve_rules"
        elif key == "redirectIncompatibleRowSettings":
            suggest = "redirect_incompatible_row_settings"
        elif key == "skipErrorFile":
            suggest = "skip_error_file"
        elif key == "stagingSettings":
            suggest = "staging_settings"
        elif key == "userProperties":
            suggest = "user_properties"
        elif key == "validateDataConsistency":
            suggest = "validate_data_consistency"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CopyActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CopyActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CopyActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 sink: Any,
                 source: Any,
                 type: str,
                 data_integration_units: Optional[Any] = None,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 enable_skip_incompatible_row: Optional[Any] = None,
                 enable_staging: Optional[Any] = None,
                 inputs: Optional[Sequence['outputs.DatasetReferenceResponse']] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 log_settings: Optional['outputs.LogSettingsResponse'] = None,
                 log_storage_settings: Optional['outputs.LogStorageSettingsResponse'] = None,
                 outputs: Optional[Sequence['outputs.DatasetReferenceResponse']] = None,
                 parallel_copies: Optional[Any] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 preserve: Optional[Sequence[Any]] = None,
                 preserve_rules: Optional[Sequence[Any]] = None,
                 redirect_incompatible_row_settings: Optional['outputs.RedirectIncompatibleRowSettingsResponse'] = None,
                 skip_error_file: Optional['outputs.SkipErrorFileResponse'] = None,
                 staging_settings: Optional['outputs.StagingSettingsResponse'] = None,
                 translator: Optional[Any] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None,
                 validate_data_consistency: Optional[Any] = None):
        """
        Copy activity.
        :param str name: Activity name.
        :param Union['AvroSinkResponse', 'AzureBlobFSSinkResponse', 'AzureDataExplorerSinkResponse', 'AzureDataLakeStoreSinkResponse', 'AzureDatabricksDeltaLakeSinkResponse', 'AzureMySqlSinkResponse', 'AzurePostgreSqlSinkResponse', 'AzureQueueSinkResponse', 'AzureSearchIndexSinkResponse', 'AzureSqlSinkResponse', 'AzureTableSinkResponse', 'BinarySinkResponse', 'BlobSinkResponse', 'CommonDataServiceForAppsSinkResponse', 'CosmosDbMongoDbApiSinkResponse', 'CosmosDbSqlApiSinkResponse', 'DelimitedTextSinkResponse', 'DocumentDbCollectionSinkResponse', 'DynamicsCrmSinkResponse', 'DynamicsSinkResponse', 'FileSystemSinkResponse', 'InformixSinkResponse', 'JsonSinkResponse', 'MicrosoftAccessSinkResponse', 'MongoDbAtlasSinkResponse', 'MongoDbV2SinkResponse', 'OdbcSinkResponse', 'OracleSinkResponse', 'OrcSinkResponse', 'ParquetSinkResponse', 'RestSinkResponse', 'SalesforceServiceCloudSinkResponse', 'SalesforceSinkResponse', 'SapCloudForCustomerSinkResponse', 'SnowflakeSinkResponse', 'SqlDWSinkResponse', 'SqlMISinkResponse', 'SqlServerSinkResponse', 'SqlSinkResponse'] sink: Copy activity sink.
        :param Union['AmazonMWSSourceResponse', 'AmazonRdsForOracleSourceResponse', 'AmazonRdsForSqlServerSourceResponse', 'AmazonRedshiftSourceResponse', 'AvroSourceResponse', 'AzureBlobFSSourceResponse', 'AzureDataExplorerSourceResponse', 'AzureDataLakeStoreSourceResponse', 'AzureDatabricksDeltaLakeSourceResponse', 'AzureMariaDBSourceResponse', 'AzureMySqlSourceResponse', 'AzurePostgreSqlSourceResponse', 'AzureSqlSourceResponse', 'AzureTableSourceResponse', 'BinarySourceResponse', 'BlobSourceResponse', 'CassandraSourceResponse', 'CommonDataServiceForAppsSourceResponse', 'ConcurSourceResponse', 'CosmosDbMongoDbApiSourceResponse', 'CosmosDbSqlApiSourceResponse', 'CouchbaseSourceResponse', 'Db2SourceResponse', 'DelimitedTextSourceResponse', 'DocumentDbCollectionSourceResponse', 'DrillSourceResponse', 'DynamicsAXSourceResponse', 'DynamicsCrmSourceResponse', 'DynamicsSourceResponse', 'EloquaSourceResponse', 'ExcelSourceResponse', 'FileSystemSourceResponse', 'GoogleAdWordsSourceResponse', 'GoogleBigQuerySourceResponse', 'GreenplumSourceResponse', 'HBaseSourceResponse', 'HdfsSourceResponse', 'HiveSourceResponse', 'HttpSourceResponse', 'HubspotSourceResponse', 'ImpalaSourceResponse', 'InformixSourceResponse', 'JiraSourceResponse', 'JsonSourceResponse', 'MagentoSourceResponse', 'MariaDBSourceResponse', 'MarketoSourceResponse', 'MicrosoftAccessSourceResponse', 'MongoDbAtlasSourceResponse', 'MongoDbSourceResponse', 'MongoDbV2SourceResponse', 'MySqlSourceResponse', 'NetezzaSourceResponse', 'ODataSourceResponse', 'OdbcSourceResponse', 'Office365SourceResponse', 'OracleServiceCloudSourceResponse', 'OracleSourceResponse', 'OrcSourceResponse', 'ParquetSourceResponse', 'PaypalSourceResponse', 'PhoenixSourceResponse', 'PostgreSqlSourceResponse', 'PrestoSourceResponse', 'QuickBooksSourceResponse', 'RelationalSourceResponse', 'ResponsysSourceResponse', 'RestSourceResponse', 'SalesforceMarketingCloudSourceResponse', 'SalesforceServiceCloudSourceResponse', 'SalesforceSourceResponse', 'SapBwSourceResponse', 'SapCloudForCustomerSourceResponse', 'SapEccSourceResponse', 'SapHanaSourceResponse', 'SapOpenHubSourceResponse', 'SapTableSourceResponse', 'ServiceNowSourceResponse', 'SharePointOnlineListSourceResponse', 'ShopifySourceResponse', 'SnowflakeSourceResponse', 'SparkSourceResponse', 'SqlDWSourceResponse', 'SqlMISourceResponse', 'SqlServerSourceResponse', 'SqlSourceResponse', 'SquareSourceResponse', 'SybaseSourceResponse', 'TabularSourceResponse', 'TeradataSourceResponse', 'VerticaSourceResponse', 'WebSourceResponse', 'XeroSourceResponse', 'XmlSourceResponse', 'ZohoSourceResponse'] source: Copy activity source.
        :param str type: Type of activity.
               Expected value is 'Copy'.
        :param Any data_integration_units: Maximum number of data integration units that can be used to perform this data movement. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Any enable_skip_incompatible_row: Whether to skip incompatible row. Default value is false. Type: boolean (or Expression with resultType boolean).
        :param Any enable_staging: Specifies whether to copy data via an interim staging. Default value is false. Type: boolean (or Expression with resultType boolean).
        :param Sequence['DatasetReferenceResponse'] inputs: List of inputs for the activity.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param 'LogSettingsResponse' log_settings: Log settings customer needs provide when enabling log.
        :param 'LogStorageSettingsResponse' log_storage_settings: (Deprecated. Please use LogSettings) Log storage settings customer need to provide when enabling session log.
        :param Sequence['DatasetReferenceResponse'] outputs: List of outputs for the activity.
        :param Any parallel_copies: Maximum number of concurrent sessions opened on the source or sink to avoid overloading the data store. Type: integer (or Expression with resultType integer), minimum: 0.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param Sequence[Any] preserve: Preserve rules.
        :param Sequence[Any] preserve_rules: Preserve Rules.
        :param 'RedirectIncompatibleRowSettingsResponse' redirect_incompatible_row_settings: Redirect incompatible row settings when EnableSkipIncompatibleRow is true.
        :param 'SkipErrorFileResponse' skip_error_file: Specify the fault tolerance for data consistency.
        :param 'StagingSettingsResponse' staging_settings: Specifies interim staging settings when EnableStaging is true.
        :param Any translator: Copy activity translator. If not specified, tabular translator is used.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        :param Any validate_data_consistency: Whether to enable Data Consistency validation. Type: boolean (or Expression with resultType boolean).
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "sink", sink)
        pulumi.set(__self__, "source", source)
        pulumi.set(__self__, "type", 'Copy')
        if data_integration_units is not None:
            pulumi.set(__self__, "data_integration_units", data_integration_units)
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if enable_skip_incompatible_row is not None:
            pulumi.set(__self__, "enable_skip_incompatible_row", enable_skip_incompatible_row)
        if enable_staging is not None:
            pulumi.set(__self__, "enable_staging", enable_staging)
        if inputs is not None:
            pulumi.set(__self__, "inputs", inputs)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if log_settings is not None:
            pulumi.set(__self__, "log_settings", log_settings)
        if log_storage_settings is not None:
            pulumi.set(__self__, "log_storage_settings", log_storage_settings)
        if outputs is not None:
            pulumi.set(__self__, "outputs", outputs)
        if parallel_copies is not None:
            pulumi.set(__self__, "parallel_copies", parallel_copies)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if preserve is not None:
            pulumi.set(__self__, "preserve", preserve)
        if preserve_rules is not None:
            pulumi.set(__self__, "preserve_rules", preserve_rules)
        if redirect_incompatible_row_settings is not None:
            pulumi.set(__self__, "redirect_incompatible_row_settings", redirect_incompatible_row_settings)
        if skip_error_file is not None:
            pulumi.set(__self__, "skip_error_file", skip_error_file)
        if staging_settings is not None:
            pulumi.set(__self__, "staging_settings", staging_settings)
        if translator is not None:
            pulumi.set(__self__, "translator", translator)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)
        if validate_data_consistency is not None:
            pulumi.set(__self__, "validate_data_consistency", validate_data_consistency)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def sink(self) -> Any:
        """
        Copy activity sink.
        """
        return pulumi.get(self, "sink")

    @property
    @pulumi.getter
    def source(self) -> Any:
        """
        Copy activity source.
        """
        return pulumi.get(self, "source")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'Copy'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="dataIntegrationUnits")
    def data_integration_units(self) -> Optional[Any]:
        """
        Maximum number of data integration units that can be used to perform this data movement. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "data_integration_units")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="enableSkipIncompatibleRow")
    def enable_skip_incompatible_row(self) -> Optional[Any]:
        """
        Whether to skip incompatible row. Default value is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "enable_skip_incompatible_row")

    @property
    @pulumi.getter(name="enableStaging")
    def enable_staging(self) -> Optional[Any]:
        """
        Specifies whether to copy data via an interim staging. Default value is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "enable_staging")

    @property
    @pulumi.getter
    def inputs(self) -> Optional[Sequence['outputs.DatasetReferenceResponse']]:
        """
        List of inputs for the activity.
        """
        return pulumi.get(self, "inputs")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter(name="logSettings")
    def log_settings(self) -> Optional['outputs.LogSettingsResponse']:
        """
        Log settings customer needs provide when enabling log.
        """
        return pulumi.get(self, "log_settings")

    @property
    @pulumi.getter(name="logStorageSettings")
    def log_storage_settings(self) -> Optional['outputs.LogStorageSettingsResponse']:
        """
        (Deprecated. Please use LogSettings) Log storage settings customer need to provide when enabling session log.
        """
        return pulumi.get(self, "log_storage_settings")

    @property
    @pulumi.getter
    def outputs(self) -> Optional[Sequence['outputs.DatasetReferenceResponse']]:
        """
        List of outputs for the activity.
        """
        return pulumi.get(self, "outputs")

    @property
    @pulumi.getter(name="parallelCopies")
    def parallel_copies(self) -> Optional[Any]:
        """
        Maximum number of concurrent sessions opened on the source or sink to avoid overloading the data store. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "parallel_copies")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter
    def preserve(self) -> Optional[Sequence[Any]]:
        """
        Preserve rules.
        """
        return pulumi.get(self, "preserve")

    @property
    @pulumi.getter(name="preserveRules")
    def preserve_rules(self) -> Optional[Sequence[Any]]:
        """
        Preserve Rules.
        """
        return pulumi.get(self, "preserve_rules")

    @property
    @pulumi.getter(name="redirectIncompatibleRowSettings")
    def redirect_incompatible_row_settings(self) -> Optional['outputs.RedirectIncompatibleRowSettingsResponse']:
        """
        Redirect incompatible row settings when EnableSkipIncompatibleRow is true.
        """
        return pulumi.get(self, "redirect_incompatible_row_settings")

    @property
    @pulumi.getter(name="skipErrorFile")
    def skip_error_file(self) -> Optional['outputs.SkipErrorFileResponse']:
        """
        Specify the fault tolerance for data consistency.
        """
        return pulumi.get(self, "skip_error_file")

    @property
    @pulumi.getter(name="stagingSettings")
    def staging_settings(self) -> Optional['outputs.StagingSettingsResponse']:
        """
        Specifies interim staging settings when EnableStaging is true.
        """
        return pulumi.get(self, "staging_settings")

    @property
    @pulumi.getter
    def translator(self) -> Optional[Any]:
        """
        Copy activity translator. If not specified, tabular translator is used.
        """
        return pulumi.get(self, "translator")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")

    @property
    @pulumi.getter(name="validateDataConsistency")
    def validate_data_consistency(self) -> Optional[Any]:
        """
        Whether to enable Data Consistency validation. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "validate_data_consistency")


@pulumi.output_type
class CosmosDbLinkedServiceResponse(dict):
    """
    Microsoft Azure Cosmos Database (CosmosDB) linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountEndpoint":
            suggest = "account_endpoint"
        elif key == "accountKey":
            suggest = "account_key"
        elif key == "azureCloudType":
            suggest = "azure_cloud_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "connectionMode":
            suggest = "connection_mode"
        elif key == "connectionString":
            suggest = "connection_string"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "servicePrincipalCredential":
            suggest = "service_principal_credential"
        elif key == "servicePrincipalCredentialType":
            suggest = "service_principal_credential_type"
        elif key == "servicePrincipalId":
            suggest = "service_principal_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CosmosDbLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CosmosDbLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CosmosDbLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 account_endpoint: Optional[Any] = None,
                 account_key: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 azure_cloud_type: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 connection_mode: Optional[str] = None,
                 connection_string: Optional[Any] = None,
                 credential: Optional['outputs.CredentialReferenceResponse'] = None,
                 database: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 service_principal_credential: Optional[Any] = None,
                 service_principal_credential_type: Optional[str] = None,
                 service_principal_id: Optional[Any] = None,
                 tenant: Optional[Any] = None):
        """
        Microsoft Azure Cosmos Database (CosmosDB) linked service.
        :param str type: Type of linked service.
               Expected value is 'CosmosDb'.
        :param Any account_endpoint: The endpoint of the Azure CosmosDB account. Type: string (or Expression with resultType string)
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] account_key: The account key of the Azure CosmosDB account. Type: SecureString or AzureKeyVaultSecretReference.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str connection_mode: The connection mode used to access CosmosDB account. Type: string (or Expression with resultType string).
        :param Any connection_string: The connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param 'CredentialReferenceResponse' credential: The credential reference containing authentication information.
        :param Any database: The name of the database. Type: string (or Expression with resultType string)
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_credential: The credential of the service principal object in Azure Active Directory. If servicePrincipalCredentialType is 'ServicePrincipalKey', servicePrincipalCredential can be SecureString or AzureKeyVaultSecretReference. If servicePrincipalCredentialType is 'ServicePrincipalCert', servicePrincipalCredential can only be AzureKeyVaultSecretReference.
        :param str service_principal_credential_type: The service principal credential type to use in Server-To-Server authentication. 'ServicePrincipalKey' for key/secret, 'ServicePrincipalCert' for certificate. Type: string (or Expression with resultType string).
        :param Any service_principal_id: The client ID of the application in Azure Active Directory used for Server-To-Server authentication. Type: string (or Expression with resultType string).
        :param Any tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'CosmosDb')
        if account_endpoint is not None:
            pulumi.set(__self__, "account_endpoint", account_endpoint)
        if account_key is not None:
            pulumi.set(__self__, "account_key", account_key)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if azure_cloud_type is not None:
            pulumi.set(__self__, "azure_cloud_type", azure_cloud_type)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if connection_mode is not None:
            pulumi.set(__self__, "connection_mode", connection_mode)
        if connection_string is not None:
            pulumi.set(__self__, "connection_string", connection_string)
        if credential is not None:
            pulumi.set(__self__, "credential", credential)
        if database is not None:
            pulumi.set(__self__, "database", database)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if service_principal_credential is not None:
            pulumi.set(__self__, "service_principal_credential", service_principal_credential)
        if service_principal_credential_type is not None:
            pulumi.set(__self__, "service_principal_credential_type", service_principal_credential_type)
        if service_principal_id is not None:
            pulumi.set(__self__, "service_principal_id", service_principal_id)
        if tenant is not None:
            pulumi.set(__self__, "tenant", tenant)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'CosmosDb'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="accountEndpoint")
    def account_endpoint(self) -> Optional[Any]:
        """
        The endpoint of the Azure CosmosDB account. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "account_endpoint")

    @property
    @pulumi.getter(name="accountKey")
    def account_key(self) -> Optional[Any]:
        """
        The account key of the Azure CosmosDB account. Type: SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "account_key")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="azureCloudType")
    def azure_cloud_type(self) -> Optional[Any]:
        """
        Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "azure_cloud_type")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="connectionMode")
    def connection_mode(self) -> Optional[str]:
        """
        The connection mode used to access CosmosDB account. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "connection_mode")

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Optional[Any]:
        """
        The connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def credential(self) -> Optional['outputs.CredentialReferenceResponse']:
        """
        The credential reference containing authentication information.
        """
        return pulumi.get(self, "credential")

    @property
    @pulumi.getter
    def database(self) -> Optional[Any]:
        """
        The name of the database. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "database")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="servicePrincipalCredential")
    def service_principal_credential(self) -> Optional[Any]:
        """
        The credential of the service principal object in Azure Active Directory. If servicePrincipalCredentialType is 'ServicePrincipalKey', servicePrincipalCredential can be SecureString or AzureKeyVaultSecretReference. If servicePrincipalCredentialType is 'ServicePrincipalCert', servicePrincipalCredential can only be AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "service_principal_credential")

    @property
    @pulumi.getter(name="servicePrincipalCredentialType")
    def service_principal_credential_type(self) -> Optional[str]:
        """
        The service principal credential type to use in Server-To-Server authentication. 'ServicePrincipalKey' for key/secret, 'ServicePrincipalCert' for certificate. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_credential_type")

    @property
    @pulumi.getter(name="servicePrincipalId")
    def service_principal_id(self) -> Optional[Any]:
        """
        The client ID of the application in Azure Active Directory used for Server-To-Server authentication. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_id")

    @property
    @pulumi.getter
    def tenant(self) -> Optional[Any]:
        """
        The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "tenant")


@pulumi.output_type
class CosmosDbMongoDbApiCollectionDatasetResponse(dict):
    """
    The CosmosDB (MongoDB API) database dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CosmosDbMongoDbApiCollectionDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CosmosDbMongoDbApiCollectionDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CosmosDbMongoDbApiCollectionDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 collection: Any,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        The CosmosDB (MongoDB API) database dataset.
        :param Any collection: The collection name of the CosmosDB (MongoDB API) database. Type: string (or Expression with resultType string).
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'CosmosDbMongoDbApiCollection'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "collection", collection)
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'CosmosDbMongoDbApiCollection')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter
    def collection(self) -> Any:
        """
        The collection name of the CosmosDB (MongoDB API) database. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "collection")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'CosmosDbMongoDbApiCollection'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class CosmosDbMongoDbApiLinkedServiceResponse(dict):
    """
    Linked service for CosmosDB (MongoDB API) data source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectionString":
            suggest = "connection_string"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "isServerVersionAbove32":
            suggest = "is_server_version_above32"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CosmosDbMongoDbApiLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CosmosDbMongoDbApiLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CosmosDbMongoDbApiLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 connection_string: Any,
                 database: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 is_server_version_above32: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None):
        """
        Linked service for CosmosDB (MongoDB API) data source.
        :param Any connection_string: The CosmosDB (MongoDB API) connection string. Type: string, SecureString or AzureKeyVaultSecretReference. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param Any database: The name of the CosmosDB (MongoDB API) database that you want to access. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'CosmosDbMongoDbApi'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any is_server_version_above32: Whether the CosmosDB (MongoDB API) server version is higher than 3.2. The default value is false. Type: boolean (or Expression with resultType boolean).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        """
        pulumi.set(__self__, "connection_string", connection_string)
        pulumi.set(__self__, "database", database)
        pulumi.set(__self__, "type", 'CosmosDbMongoDbApi')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if is_server_version_above32 is not None:
            pulumi.set(__self__, "is_server_version_above32", is_server_version_above32)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Any:
        """
        The CosmosDB (MongoDB API) connection string. Type: string, SecureString or AzureKeyVaultSecretReference. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def database(self) -> Any:
        """
        The name of the CosmosDB (MongoDB API) database that you want to access. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "database")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'CosmosDbMongoDbApi'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="isServerVersionAbove32")
    def is_server_version_above32(self) -> Optional[Any]:
        """
        Whether the CosmosDB (MongoDB API) server version is higher than 3.2. The default value is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "is_server_version_above32")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")


@pulumi.output_type
class CosmosDbMongoDbApiSinkResponse(dict):
    """
    A copy activity sink for a CosmosDB (MongoDB API) database.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"
        elif key == "writeBehavior":
            suggest = "write_behavior"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CosmosDbMongoDbApiSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CosmosDbMongoDbApiSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CosmosDbMongoDbApiSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None,
                 write_behavior: Optional[Any] = None):
        """
        A copy activity sink for a CosmosDB (MongoDB API) database.
        :param str type: Copy sink type.
               Expected value is 'CosmosDbMongoDbApiSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_behavior: Specifies whether the document with same key to be overwritten (upsert) rather than throw exception (insert). The default value is "insert". Type: string (or Expression with resultType string). Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'CosmosDbMongoDbApiSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)
        if write_behavior is not None:
            pulumi.set(__self__, "write_behavior", write_behavior)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'CosmosDbMongoDbApiSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")

    @property
    @pulumi.getter(name="writeBehavior")
    def write_behavior(self) -> Optional[Any]:
        """
        Specifies whether the document with same key to be overwritten (upsert) rather than throw exception (insert). The default value is "insert". Type: string (or Expression with resultType string). Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "write_behavior")


@pulumi.output_type
class CosmosDbMongoDbApiSourceResponse(dict):
    """
    A copy activity source for a CosmosDB (MongoDB API) database.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "batchSize":
            suggest = "batch_size"
        elif key == "cursorMethods":
            suggest = "cursor_methods"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CosmosDbMongoDbApiSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CosmosDbMongoDbApiSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CosmosDbMongoDbApiSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 batch_size: Optional[Any] = None,
                 cursor_methods: Optional['outputs.MongoDbCursorMethodsPropertiesResponse'] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 filter: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for a CosmosDB (MongoDB API) database.
        :param str type: Copy source type.
               Expected value is 'CosmosDbMongoDbApiSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any batch_size: Specifies the number of documents to return in each batch of the response from MongoDB instance. In most cases, modifying the batch size will not affect the user or the application. This property's main purpose is to avoid hit the limitation of response size. Type: integer (or Expression with resultType integer).
        :param 'MongoDbCursorMethodsPropertiesResponse' cursor_methods: Cursor methods for Mongodb query.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any filter: Specifies selection filter using query operators. To return all documents in a collection, omit this parameter or pass an empty document ({}). Type: string (or Expression with resultType string).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'CosmosDbMongoDbApiSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if batch_size is not None:
            pulumi.set(__self__, "batch_size", batch_size)
        if cursor_methods is not None:
            pulumi.set(__self__, "cursor_methods", cursor_methods)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if filter is not None:
            pulumi.set(__self__, "filter", filter)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'CosmosDbMongoDbApiSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="batchSize")
    def batch_size(self) -> Optional[Any]:
        """
        Specifies the number of documents to return in each batch of the response from MongoDB instance. In most cases, modifying the batch size will not affect the user or the application. This property's main purpose is to avoid hit the limitation of response size. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "batch_size")

    @property
    @pulumi.getter(name="cursorMethods")
    def cursor_methods(self) -> Optional['outputs.MongoDbCursorMethodsPropertiesResponse']:
        """
        Cursor methods for Mongodb query.
        """
        return pulumi.get(self, "cursor_methods")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter
    def filter(self) -> Optional[Any]:
        """
        Specifies selection filter using query operators. To return all documents in a collection, omit this parameter or pass an empty document ({}). Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "filter")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class CosmosDbSqlApiCollectionDatasetResponse(dict):
    """
    Microsoft Azure CosmosDB (SQL API) Collection dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "collectionName":
            suggest = "collection_name"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CosmosDbSqlApiCollectionDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CosmosDbSqlApiCollectionDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CosmosDbSqlApiCollectionDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 collection_name: Any,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        Microsoft Azure CosmosDB (SQL API) Collection dataset.
        :param Any collection_name: CosmosDB (SQL API) collection name. Type: string (or Expression with resultType string).
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'CosmosDbSqlApiCollection'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "collection_name", collection_name)
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'CosmosDbSqlApiCollection')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="collectionName")
    def collection_name(self) -> Any:
        """
        CosmosDB (SQL API) collection name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "collection_name")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'CosmosDbSqlApiCollection'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class CosmosDbSqlApiSinkResponse(dict):
    """
    A copy activity Azure CosmosDB (SQL API) Collection sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"
        elif key == "writeBehavior":
            suggest = "write_behavior"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CosmosDbSqlApiSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CosmosDbSqlApiSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CosmosDbSqlApiSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None,
                 write_behavior: Optional[Any] = None):
        """
        A copy activity Azure CosmosDB (SQL API) Collection sink.
        :param str type: Copy sink type.
               Expected value is 'CosmosDbSqlApiSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_behavior: Describes how to write data to Azure Cosmos DB. Type: string (or Expression with resultType string). Allowed values: insert and upsert.
        """
        pulumi.set(__self__, "type", 'CosmosDbSqlApiSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)
        if write_behavior is not None:
            pulumi.set(__self__, "write_behavior", write_behavior)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'CosmosDbSqlApiSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")

    @property
    @pulumi.getter(name="writeBehavior")
    def write_behavior(self) -> Optional[Any]:
        """
        Describes how to write data to Azure Cosmos DB. Type: string (or Expression with resultType string). Allowed values: insert and upsert.
        """
        return pulumi.get(self, "write_behavior")


@pulumi.output_type
class CosmosDbSqlApiSourceResponse(dict):
    """
    A copy activity Azure CosmosDB (SQL API) Collection source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "detectDatetime":
            suggest = "detect_datetime"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "pageSize":
            suggest = "page_size"
        elif key == "preferredRegions":
            suggest = "preferred_regions"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CosmosDbSqlApiSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CosmosDbSqlApiSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CosmosDbSqlApiSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 detect_datetime: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 page_size: Optional[Any] = None,
                 preferred_regions: Optional[Any] = None,
                 query: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Azure CosmosDB (SQL API) Collection source.
        :param str type: Copy source type.
               Expected value is 'CosmosDbSqlApiSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any detect_datetime: Whether detect primitive values as datetime values. Type: boolean (or Expression with resultType boolean).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any page_size: Page size of the result. Type: integer (or Expression with resultType integer).
        :param Any preferred_regions: Preferred regions. Type: array of strings (or Expression with resultType array of strings).
        :param Any query: SQL API query. Type: string (or Expression with resultType string).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'CosmosDbSqlApiSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if detect_datetime is not None:
            pulumi.set(__self__, "detect_datetime", detect_datetime)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if page_size is not None:
            pulumi.set(__self__, "page_size", page_size)
        if preferred_regions is not None:
            pulumi.set(__self__, "preferred_regions", preferred_regions)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'CosmosDbSqlApiSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="detectDatetime")
    def detect_datetime(self) -> Optional[Any]:
        """
        Whether detect primitive values as datetime values. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "detect_datetime")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="pageSize")
    def page_size(self) -> Optional[Any]:
        """
        Page size of the result. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "page_size")

    @property
    @pulumi.getter(name="preferredRegions")
    def preferred_regions(self) -> Optional[Any]:
        """
        Preferred regions. Type: array of strings (or Expression with resultType array of strings).
        """
        return pulumi.get(self, "preferred_regions")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        SQL API query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class CouchbaseLinkedServiceResponse(dict):
    """
    Couchbase server linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectVia":
            suggest = "connect_via"
        elif key == "connectionString":
            suggest = "connection_string"
        elif key == "credString":
            suggest = "cred_string"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CouchbaseLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CouchbaseLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CouchbaseLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 connection_string: Optional[Any] = None,
                 cred_string: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None):
        """
        Couchbase server linked service.
        :param str type: Type of linked service.
               Expected value is 'Couchbase'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param 'AzureKeyVaultSecretReferenceResponse' cred_string: The Azure key vault secret reference of credString in connection string.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        """
        pulumi.set(__self__, "type", 'Couchbase')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if connection_string is not None:
            pulumi.set(__self__, "connection_string", connection_string)
        if cred_string is not None:
            pulumi.set(__self__, "cred_string", cred_string)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Couchbase'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Optional[Any]:
        """
        An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter(name="credString")
    def cred_string(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of credString in connection string.
        """
        return pulumi.get(self, "cred_string")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")


@pulumi.output_type
class CouchbaseSourceResponse(dict):
    """
    A copy activity Couchbase server source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CouchbaseSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CouchbaseSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CouchbaseSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Couchbase server source.
        :param str type: Copy source type.
               Expected value is 'CouchbaseSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'CouchbaseSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'CouchbaseSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class CouchbaseTableDatasetResponse(dict):
    """
    Couchbase server dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CouchbaseTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CouchbaseTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CouchbaseTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Couchbase server dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'CouchbaseTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'CouchbaseTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'CouchbaseTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class CredentialReferenceResponse(dict):
    """
    Credential reference type.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "referenceName":
            suggest = "reference_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CredentialReferenceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CredentialReferenceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CredentialReferenceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 reference_name: str,
                 type: str):
        """
        Credential reference type.
        :param str reference_name: Reference credential name.
        :param str type: Credential reference type.
        """
        pulumi.set(__self__, "reference_name", reference_name)
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="referenceName")
    def reference_name(self) -> str:
        """
        Reference credential name.
        """
        return pulumi.get(self, "reference_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Credential reference type.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class CustomActivityReferenceObjectResponse(dict):
    """
    Reference objects for custom activity
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServices":
            suggest = "linked_services"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CustomActivityReferenceObjectResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CustomActivityReferenceObjectResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CustomActivityReferenceObjectResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 datasets: Optional[Sequence['outputs.DatasetReferenceResponse']] = None,
                 linked_services: Optional[Sequence['outputs.LinkedServiceReferenceResponse']] = None):
        """
        Reference objects for custom activity
        :param Sequence['DatasetReferenceResponse'] datasets: Dataset references.
        :param Sequence['LinkedServiceReferenceResponse'] linked_services: Linked service references.
        """
        if datasets is not None:
            pulumi.set(__self__, "datasets", datasets)
        if linked_services is not None:
            pulumi.set(__self__, "linked_services", linked_services)

    @property
    @pulumi.getter
    def datasets(self) -> Optional[Sequence['outputs.DatasetReferenceResponse']]:
        """
        Dataset references.
        """
        return pulumi.get(self, "datasets")

    @property
    @pulumi.getter(name="linkedServices")
    def linked_services(self) -> Optional[Sequence['outputs.LinkedServiceReferenceResponse']]:
        """
        Linked service references.
        """
        return pulumi.get(self, "linked_services")


@pulumi.output_type
class CustomActivityResponse(dict):
    """
    Custom activity type.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "autoUserSpecification":
            suggest = "auto_user_specification"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "extendedProperties":
            suggest = "extended_properties"
        elif key == "folderPath":
            suggest = "folder_path"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "referenceObjects":
            suggest = "reference_objects"
        elif key == "resourceLinkedService":
            suggest = "resource_linked_service"
        elif key == "retentionTimeInDays":
            suggest = "retention_time_in_days"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CustomActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CustomActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CustomActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 command: Any,
                 name: str,
                 type: str,
                 auto_user_specification: Optional[Any] = None,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 extended_properties: Optional[Mapping[str, Any]] = None,
                 folder_path: Optional[Any] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 reference_objects: Optional['outputs.CustomActivityReferenceObjectResponse'] = None,
                 resource_linked_service: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 retention_time_in_days: Optional[Any] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        Custom activity type.
        :param Any command: Command for custom activity Type: string (or Expression with resultType string).
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'Custom'.
        :param Any auto_user_specification: Elevation level and scope for the user, default is nonadmin task. Type: string (or Expression with resultType double).
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Mapping[str, Any] extended_properties: User defined property bag. There is no restriction on the keys or values that can be used. The user specified custom activity has the full responsibility to consume and interpret the content defined.
        :param Any folder_path: Folder path for resource files Type: string (or Expression with resultType string).
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param 'CustomActivityReferenceObjectResponse' reference_objects: Reference objects
        :param 'LinkedServiceReferenceResponse' resource_linked_service: Resource linked service reference.
        :param Any retention_time_in_days: The retention time for the files submitted for custom activity. Type: double (or Expression with resultType double).
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "command", command)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'Custom')
        if auto_user_specification is not None:
            pulumi.set(__self__, "auto_user_specification", auto_user_specification)
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if extended_properties is not None:
            pulumi.set(__self__, "extended_properties", extended_properties)
        if folder_path is not None:
            pulumi.set(__self__, "folder_path", folder_path)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if reference_objects is not None:
            pulumi.set(__self__, "reference_objects", reference_objects)
        if resource_linked_service is not None:
            pulumi.set(__self__, "resource_linked_service", resource_linked_service)
        if retention_time_in_days is not None:
            pulumi.set(__self__, "retention_time_in_days", retention_time_in_days)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter
    def command(self) -> Any:
        """
        Command for custom activity Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "command")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'Custom'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="autoUserSpecification")
    def auto_user_specification(self) -> Optional[Any]:
        """
        Elevation level and scope for the user, default is nonadmin task. Type: string (or Expression with resultType double).
        """
        return pulumi.get(self, "auto_user_specification")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="extendedProperties")
    def extended_properties(self) -> Optional[Mapping[str, Any]]:
        """
        User defined property bag. There is no restriction on the keys or values that can be used. The user specified custom activity has the full responsibility to consume and interpret the content defined.
        """
        return pulumi.get(self, "extended_properties")

    @property
    @pulumi.getter(name="folderPath")
    def folder_path(self) -> Optional[Any]:
        """
        Folder path for resource files Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "folder_path")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter(name="referenceObjects")
    def reference_objects(self) -> Optional['outputs.CustomActivityReferenceObjectResponse']:
        """
        Reference objects
        """
        return pulumi.get(self, "reference_objects")

    @property
    @pulumi.getter(name="resourceLinkedService")
    def resource_linked_service(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Resource linked service reference.
        """
        return pulumi.get(self, "resource_linked_service")

    @property
    @pulumi.getter(name="retentionTimeInDays")
    def retention_time_in_days(self) -> Optional[Any]:
        """
        The retention time for the files submitted for custom activity. Type: double (or Expression with resultType double).
        """
        return pulumi.get(self, "retention_time_in_days")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class CustomDataSourceLinkedServiceResponse(dict):
    """
    Custom linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectVia":
            suggest = "connect_via"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CustomDataSourceLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CustomDataSourceLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CustomDataSourceLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None):
        """
        Custom linked service.
        :param str type: Type of linked service.
               Expected value is 'CustomDataSource'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        """
        pulumi.set(__self__, "type", 'CustomDataSource')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'CustomDataSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")


@pulumi.output_type
class CustomDatasetResponse(dict):
    """
    The custom dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CustomDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CustomDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CustomDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        The custom dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'CustomDataset'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'CustomDataset')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'CustomDataset'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class CustomEventsTriggerResponse(dict):
    """
    Trigger that runs every time a custom event is received.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "runtimeState":
            suggest = "runtime_state"
        elif key == "subjectBeginsWith":
            suggest = "subject_begins_with"
        elif key == "subjectEndsWith":
            suggest = "subject_ends_with"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CustomEventsTriggerResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CustomEventsTriggerResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CustomEventsTriggerResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 events: Sequence[Any],
                 runtime_state: str,
                 scope: str,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 pipelines: Optional[Sequence['outputs.TriggerPipelineReferenceResponse']] = None,
                 subject_begins_with: Optional[str] = None,
                 subject_ends_with: Optional[str] = None):
        """
        Trigger that runs every time a custom event is received.
        :param Sequence[Any] events: The list of event types that cause this trigger to fire.
        :param str runtime_state: Indicates if trigger is running or not. Updated when Start/Stop APIs are called on the Trigger.
        :param str scope: The ARM resource ID of the Azure Event Grid Topic.
        :param str type: Trigger type.
               Expected value is 'CustomEventsTrigger'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the trigger.
        :param str description: Trigger description.
        :param Sequence['TriggerPipelineReferenceResponse'] pipelines: Pipelines that need to be started.
        :param str subject_begins_with: The event subject must begin with the pattern provided for trigger to fire. At least one of these must be provided: subjectBeginsWith, subjectEndsWith.
        :param str subject_ends_with: The event subject must end with the pattern provided for trigger to fire. At least one of these must be provided: subjectBeginsWith, subjectEndsWith.
        """
        pulumi.set(__self__, "events", events)
        pulumi.set(__self__, "runtime_state", runtime_state)
        pulumi.set(__self__, "scope", scope)
        pulumi.set(__self__, "type", 'CustomEventsTrigger')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if pipelines is not None:
            pulumi.set(__self__, "pipelines", pipelines)
        if subject_begins_with is not None:
            pulumi.set(__self__, "subject_begins_with", subject_begins_with)
        if subject_ends_with is not None:
            pulumi.set(__self__, "subject_ends_with", subject_ends_with)

    @property
    @pulumi.getter
    def events(self) -> Sequence[Any]:
        """
        The list of event types that cause this trigger to fire.
        """
        return pulumi.get(self, "events")

    @property
    @pulumi.getter(name="runtimeState")
    def runtime_state(self) -> str:
        """
        Indicates if trigger is running or not. Updated when Start/Stop APIs are called on the Trigger.
        """
        return pulumi.get(self, "runtime_state")

    @property
    @pulumi.getter
    def scope(self) -> str:
        """
        The ARM resource ID of the Azure Event Grid Topic.
        """
        return pulumi.get(self, "scope")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Trigger type.
        Expected value is 'CustomEventsTrigger'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the trigger.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Trigger description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def pipelines(self) -> Optional[Sequence['outputs.TriggerPipelineReferenceResponse']]:
        """
        Pipelines that need to be started.
        """
        return pulumi.get(self, "pipelines")

    @property
    @pulumi.getter(name="subjectBeginsWith")
    def subject_begins_with(self) -> Optional[str]:
        """
        The event subject must begin with the pattern provided for trigger to fire. At least one of these must be provided: subjectBeginsWith, subjectEndsWith.
        """
        return pulumi.get(self, "subject_begins_with")

    @property
    @pulumi.getter(name="subjectEndsWith")
    def subject_ends_with(self) -> Optional[str]:
        """
        The event subject must end with the pattern provided for trigger to fire. At least one of these must be provided: subjectBeginsWith, subjectEndsWith.
        """
        return pulumi.get(self, "subject_ends_with")


@pulumi.output_type
class DWCopyCommandDefaultValueResponse(dict):
    """
    Default value.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "columnName":
            suggest = "column_name"
        elif key == "defaultValue":
            suggest = "default_value"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DWCopyCommandDefaultValueResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DWCopyCommandDefaultValueResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DWCopyCommandDefaultValueResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 column_name: Optional[Any] = None,
                 default_value: Optional[Any] = None):
        """
        Default value.
        :param Any column_name: Column name. Type: object (or Expression with resultType string).
        :param Any default_value: The default value of the column. Type: object (or Expression with resultType string).
        """
        if column_name is not None:
            pulumi.set(__self__, "column_name", column_name)
        if default_value is not None:
            pulumi.set(__self__, "default_value", default_value)

    @property
    @pulumi.getter(name="columnName")
    def column_name(self) -> Optional[Any]:
        """
        Column name. Type: object (or Expression with resultType string).
        """
        return pulumi.get(self, "column_name")

    @property
    @pulumi.getter(name="defaultValue")
    def default_value(self) -> Optional[Any]:
        """
        The default value of the column. Type: object (or Expression with resultType string).
        """
        return pulumi.get(self, "default_value")


@pulumi.output_type
class DWCopyCommandSettingsResponse(dict):
    """
    DW Copy Command settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalOptions":
            suggest = "additional_options"
        elif key == "defaultValues":
            suggest = "default_values"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DWCopyCommandSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DWCopyCommandSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DWCopyCommandSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 additional_options: Optional[Mapping[str, str]] = None,
                 default_values: Optional[Sequence['outputs.DWCopyCommandDefaultValueResponse']] = None):
        """
        DW Copy Command settings.
        :param Mapping[str, str] additional_options: Additional options directly passed to SQL DW in Copy Command. Type: key value pairs (value should be string type) (or Expression with resultType object). Example: "additionalOptions": { "MAXERRORS": "1000", "DATEFORMAT": "'ymd'" }
        :param Sequence['DWCopyCommandDefaultValueResponse'] default_values: Specifies the default values for each target column in SQL DW. The default values in the property overwrite the DEFAULT constraint set in the DB, and identity column cannot have a default value. Type: array of objects (or Expression with resultType array of objects).
        """
        if additional_options is not None:
            pulumi.set(__self__, "additional_options", additional_options)
        if default_values is not None:
            pulumi.set(__self__, "default_values", default_values)

    @property
    @pulumi.getter(name="additionalOptions")
    def additional_options(self) -> Optional[Mapping[str, str]]:
        """
        Additional options directly passed to SQL DW in Copy Command. Type: key value pairs (value should be string type) (or Expression with resultType object). Example: "additionalOptions": { "MAXERRORS": "1000", "DATEFORMAT": "'ymd'" }
        """
        return pulumi.get(self, "additional_options")

    @property
    @pulumi.getter(name="defaultValues")
    def default_values(self) -> Optional[Sequence['outputs.DWCopyCommandDefaultValueResponse']]:
        """
        Specifies the default values for each target column in SQL DW. The default values in the property overwrite the DEFAULT constraint set in the DB, and identity column cannot have a default value. Type: array of objects (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "default_values")


@pulumi.output_type
class DataFlowReferenceResponse(dict):
    """
    Data flow reference type.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "referenceName":
            suggest = "reference_name"
        elif key == "datasetParameters":
            suggest = "dataset_parameters"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DataFlowReferenceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DataFlowReferenceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DataFlowReferenceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 reference_name: str,
                 type: str,
                 dataset_parameters: Optional[Any] = None,
                 parameters: Optional[Mapping[str, Any]] = None):
        """
        Data flow reference type.
        :param str reference_name: Reference data flow name.
        :param str type: Data flow reference type.
        :param Any dataset_parameters: Reference data flow parameters from dataset.
        :param Mapping[str, Any] parameters: Data flow parameters
        """
        pulumi.set(__self__, "reference_name", reference_name)
        pulumi.set(__self__, "type", type)
        if dataset_parameters is not None:
            pulumi.set(__self__, "dataset_parameters", dataset_parameters)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)

    @property
    @pulumi.getter(name="referenceName")
    def reference_name(self) -> str:
        """
        Reference data flow name.
        """
        return pulumi.get(self, "reference_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Data flow reference type.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="datasetParameters")
    def dataset_parameters(self) -> Optional[Any]:
        """
        Reference data flow parameters from dataset.
        """
        return pulumi.get(self, "dataset_parameters")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, Any]]:
        """
        Data flow parameters
        """
        return pulumi.get(self, "parameters")


@pulumi.output_type
class DataFlowResponseFolder(dict):
    """
    The folder that this data flow is in. If not specified, Data flow will appear at the root level.
    """
    def __init__(__self__, *,
                 name: Optional[str] = None):
        """
        The folder that this data flow is in. If not specified, Data flow will appear at the root level.
        :param str name: The name of the folder that this data flow is in.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter
    def name(self) -> Optional[str]:
        """
        The name of the folder that this data flow is in.
        """
        return pulumi.get(self, "name")


@pulumi.output_type
class DataFlowSinkResponse(dict):
    """
    Transformation for data flow sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedService":
            suggest = "linked_service"
        elif key == "schemaLinkedService":
            suggest = "schema_linked_service"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DataFlowSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DataFlowSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DataFlowSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 dataset: Optional['outputs.DatasetReferenceResponse'] = None,
                 description: Optional[str] = None,
                 flowlet: Optional['outputs.DataFlowReferenceResponse'] = None,
                 linked_service: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 schema_linked_service: Optional['outputs.LinkedServiceReferenceResponse'] = None):
        """
        Transformation for data flow sink.
        :param str name: Transformation name.
        :param 'DatasetReferenceResponse' dataset: Dataset reference.
        :param str description: Transformation description.
        :param 'DataFlowReferenceResponse' flowlet: Flowlet Reference
        :param 'LinkedServiceReferenceResponse' linked_service: Linked service reference.
        :param 'LinkedServiceReferenceResponse' schema_linked_service: Schema linked service reference.
        """
        pulumi.set(__self__, "name", name)
        if dataset is not None:
            pulumi.set(__self__, "dataset", dataset)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if flowlet is not None:
            pulumi.set(__self__, "flowlet", flowlet)
        if linked_service is not None:
            pulumi.set(__self__, "linked_service", linked_service)
        if schema_linked_service is not None:
            pulumi.set(__self__, "schema_linked_service", schema_linked_service)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Transformation name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def dataset(self) -> Optional['outputs.DatasetReferenceResponse']:
        """
        Dataset reference.
        """
        return pulumi.get(self, "dataset")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Transformation description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def flowlet(self) -> Optional['outputs.DataFlowReferenceResponse']:
        """
        Flowlet Reference
        """
        return pulumi.get(self, "flowlet")

    @property
    @pulumi.getter(name="linkedService")
    def linked_service(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service")

    @property
    @pulumi.getter(name="schemaLinkedService")
    def schema_linked_service(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Schema linked service reference.
        """
        return pulumi.get(self, "schema_linked_service")


@pulumi.output_type
class DataFlowSourceResponse(dict):
    """
    Transformation for data flow source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedService":
            suggest = "linked_service"
        elif key == "schemaLinkedService":
            suggest = "schema_linked_service"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DataFlowSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DataFlowSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DataFlowSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 dataset: Optional['outputs.DatasetReferenceResponse'] = None,
                 description: Optional[str] = None,
                 flowlet: Optional['outputs.DataFlowReferenceResponse'] = None,
                 linked_service: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 schema_linked_service: Optional['outputs.LinkedServiceReferenceResponse'] = None):
        """
        Transformation for data flow source.
        :param str name: Transformation name.
        :param 'DatasetReferenceResponse' dataset: Dataset reference.
        :param str description: Transformation description.
        :param 'DataFlowReferenceResponse' flowlet: Flowlet Reference
        :param 'LinkedServiceReferenceResponse' linked_service: Linked service reference.
        :param 'LinkedServiceReferenceResponse' schema_linked_service: Schema linked service reference.
        """
        pulumi.set(__self__, "name", name)
        if dataset is not None:
            pulumi.set(__self__, "dataset", dataset)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if flowlet is not None:
            pulumi.set(__self__, "flowlet", flowlet)
        if linked_service is not None:
            pulumi.set(__self__, "linked_service", linked_service)
        if schema_linked_service is not None:
            pulumi.set(__self__, "schema_linked_service", schema_linked_service)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Transformation name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def dataset(self) -> Optional['outputs.DatasetReferenceResponse']:
        """
        Dataset reference.
        """
        return pulumi.get(self, "dataset")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Transformation description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def flowlet(self) -> Optional['outputs.DataFlowReferenceResponse']:
        """
        Flowlet Reference
        """
        return pulumi.get(self, "flowlet")

    @property
    @pulumi.getter(name="linkedService")
    def linked_service(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service")

    @property
    @pulumi.getter(name="schemaLinkedService")
    def schema_linked_service(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Schema linked service reference.
        """
        return pulumi.get(self, "schema_linked_service")


@pulumi.output_type
class DataFlowStagingInfoResponse(dict):
    """
    Staging info for execute data flow activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "folderPath":
            suggest = "folder_path"
        elif key == "linkedService":
            suggest = "linked_service"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DataFlowStagingInfoResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DataFlowStagingInfoResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DataFlowStagingInfoResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 folder_path: Optional[Any] = None,
                 linked_service: Optional['outputs.LinkedServiceReferenceResponse'] = None):
        """
        Staging info for execute data flow activity.
        :param Any folder_path: Folder path for staging blob. Type: string (or Expression with resultType string)
        :param 'LinkedServiceReferenceResponse' linked_service: Staging linked service reference.
        """
        if folder_path is not None:
            pulumi.set(__self__, "folder_path", folder_path)
        if linked_service is not None:
            pulumi.set(__self__, "linked_service", linked_service)

    @property
    @pulumi.getter(name="folderPath")
    def folder_path(self) -> Optional[Any]:
        """
        Folder path for staging blob. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "folder_path")

    @property
    @pulumi.getter(name="linkedService")
    def linked_service(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Staging linked service reference.
        """
        return pulumi.get(self, "linked_service")


@pulumi.output_type
class DataLakeAnalyticsUSQLActivityResponse(dict):
    """
    Data Lake Analytics U-SQL activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "scriptLinkedService":
            suggest = "script_linked_service"
        elif key == "scriptPath":
            suggest = "script_path"
        elif key == "compilationMode":
            suggest = "compilation_mode"
        elif key == "degreeOfParallelism":
            suggest = "degree_of_parallelism"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "runtimeVersion":
            suggest = "runtime_version"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DataLakeAnalyticsUSQLActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DataLakeAnalyticsUSQLActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DataLakeAnalyticsUSQLActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 script_linked_service: 'outputs.LinkedServiceReferenceResponse',
                 script_path: Any,
                 type: str,
                 compilation_mode: Optional[Any] = None,
                 degree_of_parallelism: Optional[Any] = None,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 parameters: Optional[Mapping[str, Any]] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 priority: Optional[Any] = None,
                 runtime_version: Optional[Any] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        Data Lake Analytics U-SQL activity.
        :param str name: Activity name.
        :param 'LinkedServiceReferenceResponse' script_linked_service: Script linked service reference.
        :param Any script_path: Case-sensitive path to folder that contains the U-SQL script. Type: string (or Expression with resultType string).
        :param str type: Type of activity.
               Expected value is 'DataLakeAnalyticsU-SQL'.
        :param Any compilation_mode: Compilation mode of U-SQL. Must be one of these values : Semantic, Full and SingleBox. Type: string (or Expression with resultType string).
        :param Any degree_of_parallelism: The maximum number of nodes simultaneously used to run the job. Default value is 1. Type: integer (or Expression with resultType integer), minimum: 1.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param Mapping[str, Any] parameters: Parameters for U-SQL job request.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param Any priority: Determines which jobs out of all that are queued should be selected to run first. The lower the number, the higher the priority. Default value is 1000. Type: integer (or Expression with resultType integer), minimum: 1.
        :param Any runtime_version: Runtime version of the U-SQL engine to use. Type: string (or Expression with resultType string).
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "script_linked_service", script_linked_service)
        pulumi.set(__self__, "script_path", script_path)
        pulumi.set(__self__, "type", 'DataLakeAnalyticsU-SQL')
        if compilation_mode is not None:
            pulumi.set(__self__, "compilation_mode", compilation_mode)
        if degree_of_parallelism is not None:
            pulumi.set(__self__, "degree_of_parallelism", degree_of_parallelism)
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if priority is not None:
            pulumi.set(__self__, "priority", priority)
        if runtime_version is not None:
            pulumi.set(__self__, "runtime_version", runtime_version)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="scriptLinkedService")
    def script_linked_service(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Script linked service reference.
        """
        return pulumi.get(self, "script_linked_service")

    @property
    @pulumi.getter(name="scriptPath")
    def script_path(self) -> Any:
        """
        Case-sensitive path to folder that contains the U-SQL script. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "script_path")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'DataLakeAnalyticsU-SQL'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="compilationMode")
    def compilation_mode(self) -> Optional[Any]:
        """
        Compilation mode of U-SQL. Must be one of these values : Semantic, Full and SingleBox. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "compilation_mode")

    @property
    @pulumi.getter(name="degreeOfParallelism")
    def degree_of_parallelism(self) -> Optional[Any]:
        """
        The maximum number of nodes simultaneously used to run the job. Default value is 1. Type: integer (or Expression with resultType integer), minimum: 1.
        """
        return pulumi.get(self, "degree_of_parallelism")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, Any]]:
        """
        Parameters for U-SQL job request.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter
    def priority(self) -> Optional[Any]:
        """
        Determines which jobs out of all that are queued should be selected to run first. The lower the number, the higher the priority. Default value is 1000. Type: integer (or Expression with resultType integer), minimum: 1.
        """
        return pulumi.get(self, "priority")

    @property
    @pulumi.getter(name="runtimeVersion")
    def runtime_version(self) -> Optional[Any]:
        """
        Runtime version of the U-SQL engine to use. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "runtime_version")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class DatabricksNotebookActivityResponse(dict):
    """
    DatabricksNotebook activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "notebookPath":
            suggest = "notebook_path"
        elif key == "baseParameters":
            suggest = "base_parameters"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DatabricksNotebookActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DatabricksNotebookActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DatabricksNotebookActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 notebook_path: Any,
                 type: str,
                 base_parameters: Optional[Mapping[str, Any]] = None,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 libraries: Optional[Sequence[Mapping[str, Any]]] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        DatabricksNotebook activity.
        :param str name: Activity name.
        :param Any notebook_path: The absolute path of the notebook to be run in the Databricks Workspace. This path must begin with a slash. Type: string (or Expression with resultType string).
        :param str type: Type of activity.
               Expected value is 'DatabricksNotebook'.
        :param Mapping[str, Any] base_parameters: Base parameters to be used for each run of this job.If the notebook takes a parameter that is not specified, the default value from the notebook will be used.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Sequence[Mapping[str, Any]] libraries: A list of libraries to be installed on the cluster that will execute the job.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "notebook_path", notebook_path)
        pulumi.set(__self__, "type", 'DatabricksNotebook')
        if base_parameters is not None:
            pulumi.set(__self__, "base_parameters", base_parameters)
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if libraries is not None:
            pulumi.set(__self__, "libraries", libraries)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="notebookPath")
    def notebook_path(self) -> Any:
        """
        The absolute path of the notebook to be run in the Databricks Workspace. This path must begin with a slash. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "notebook_path")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'DatabricksNotebook'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="baseParameters")
    def base_parameters(self) -> Optional[Mapping[str, Any]]:
        """
        Base parameters to be used for each run of this job.If the notebook takes a parameter that is not specified, the default value from the notebook will be used.
        """
        return pulumi.get(self, "base_parameters")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def libraries(self) -> Optional[Sequence[Mapping[str, Any]]]:
        """
        A list of libraries to be installed on the cluster that will execute the job.
        """
        return pulumi.get(self, "libraries")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class DatabricksSparkJarActivityResponse(dict):
    """
    DatabricksSparkJar activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "mainClassName":
            suggest = "main_class_name"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DatabricksSparkJarActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DatabricksSparkJarActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DatabricksSparkJarActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 main_class_name: Any,
                 name: str,
                 type: str,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 libraries: Optional[Sequence[Mapping[str, Any]]] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 parameters: Optional[Sequence[Any]] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        DatabricksSparkJar activity.
        :param Any main_class_name: The full name of the class containing the main method to be executed. This class must be contained in a JAR provided as a library. Type: string (or Expression with resultType string).
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'DatabricksSparkJar'.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Sequence[Mapping[str, Any]] libraries: A list of libraries to be installed on the cluster that will execute the job.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param Sequence[Any] parameters: Parameters that will be passed to the main method.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "main_class_name", main_class_name)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'DatabricksSparkJar')
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if libraries is not None:
            pulumi.set(__self__, "libraries", libraries)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter(name="mainClassName")
    def main_class_name(self) -> Any:
        """
        The full name of the class containing the main method to be executed. This class must be contained in a JAR provided as a library. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "main_class_name")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'DatabricksSparkJar'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def libraries(self) -> Optional[Sequence[Mapping[str, Any]]]:
        """
        A list of libraries to be installed on the cluster that will execute the job.
        """
        return pulumi.get(self, "libraries")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Sequence[Any]]:
        """
        Parameters that will be passed to the main method.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class DatabricksSparkPythonActivityResponse(dict):
    """
    DatabricksSparkPython activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "pythonFile":
            suggest = "python_file"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DatabricksSparkPythonActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DatabricksSparkPythonActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DatabricksSparkPythonActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 python_file: Any,
                 type: str,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 libraries: Optional[Sequence[Mapping[str, Any]]] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 parameters: Optional[Sequence[Any]] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        DatabricksSparkPython activity.
        :param str name: Activity name.
        :param Any python_file: The URI of the Python file to be executed. DBFS paths are supported. Type: string (or Expression with resultType string).
        :param str type: Type of activity.
               Expected value is 'DatabricksSparkPython'.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Sequence[Mapping[str, Any]] libraries: A list of libraries to be installed on the cluster that will execute the job.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param Sequence[Any] parameters: Command line parameters that will be passed to the Python file.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "python_file", python_file)
        pulumi.set(__self__, "type", 'DatabricksSparkPython')
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if libraries is not None:
            pulumi.set(__self__, "libraries", libraries)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="pythonFile")
    def python_file(self) -> Any:
        """
        The URI of the Python file to be executed. DBFS paths are supported. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "python_file")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'DatabricksSparkPython'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def libraries(self) -> Optional[Sequence[Mapping[str, Any]]]:
        """
        A list of libraries to be installed on the cluster that will execute the job.
        """
        return pulumi.get(self, "libraries")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Sequence[Any]]:
        """
        Command line parameters that will be passed to the Python file.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class DatasetCompressionResponse(dict):
    """
    The compression method used on a dataset.
    """
    def __init__(__self__, *,
                 type: Any,
                 level: Optional[Any] = None):
        """
        The compression method used on a dataset.
        :param Any type: Type of dataset compression. Type: string (or Expression with resultType string).
        :param Any level: The dataset compression level. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", type)
        if level is not None:
            pulumi.set(__self__, "level", level)

    @property
    @pulumi.getter
    def type(self) -> Any:
        """
        Type of dataset compression. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def level(self) -> Optional[Any]:
        """
        The dataset compression level. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "level")


@pulumi.output_type
class DatasetReferenceResponse(dict):
    """
    Dataset reference type.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "referenceName":
            suggest = "reference_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DatasetReferenceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DatasetReferenceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DatasetReferenceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 reference_name: str,
                 type: str,
                 parameters: Optional[Mapping[str, Any]] = None):
        """
        Dataset reference type.
        :param str reference_name: Reference dataset name.
        :param str type: Dataset reference type.
        :param Mapping[str, Any] parameters: Arguments for dataset.
        """
        pulumi.set(__self__, "reference_name", reference_name)
        pulumi.set(__self__, "type", type)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)

    @property
    @pulumi.getter(name="referenceName")
    def reference_name(self) -> str:
        """
        Reference dataset name.
        """
        return pulumi.get(self, "reference_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Dataset reference type.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, Any]]:
        """
        Arguments for dataset.
        """
        return pulumi.get(self, "parameters")


@pulumi.output_type
class DatasetResponseFolder(dict):
    """
    The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
    """
    def __init__(__self__, *,
                 name: Optional[str] = None):
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param str name: The name of the folder that this Dataset is in.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter
    def name(self) -> Optional[str]:
        """
        The name of the folder that this Dataset is in.
        """
        return pulumi.get(self, "name")


@pulumi.output_type
class Db2LinkedServiceResponse(dict):
    """
    Linked service for DB2 data source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"
        elif key == "certificateCommonName":
            suggest = "certificate_common_name"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "connectionString":
            suggest = "connection_string"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "packageCollection":
            suggest = "package_collection"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in Db2LinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        Db2LinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        Db2LinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 authentication_type: Optional[str] = None,
                 certificate_common_name: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 connection_string: Optional[Any] = None,
                 database: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 package_collection: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 server: Optional[Any] = None,
                 username: Optional[Any] = None):
        """
        Linked service for DB2 data source.
        :param str type: Type of linked service.
               Expected value is 'Db2'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param str authentication_type: AuthenticationType to be used for connection. It is mutually exclusive with connectionString property.
        :param Any certificate_common_name: Certificate Common Name when TLS is enabled. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any connection_string: The connection string. It is mutually exclusive with server, database, authenticationType, userName, packageCollection and certificateCommonName property. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param Any database: Database name for connection. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string).
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string).
        :param Any package_collection: Under where packages are created when querying database. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password for authentication.
        :param Any server: Server name for connection. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string).
        :param Any username: Username for authentication. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'Db2')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if authentication_type is not None:
            pulumi.set(__self__, "authentication_type", authentication_type)
        if certificate_common_name is not None:
            pulumi.set(__self__, "certificate_common_name", certificate_common_name)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if connection_string is not None:
            pulumi.set(__self__, "connection_string", connection_string)
        if database is not None:
            pulumi.set(__self__, "database", database)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if package_collection is not None:
            pulumi.set(__self__, "package_collection", package_collection)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if server is not None:
            pulumi.set(__self__, "server", server)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Db2'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> Optional[str]:
        """
        AuthenticationType to be used for connection. It is mutually exclusive with connectionString property.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter(name="certificateCommonName")
    def certificate_common_name(self) -> Optional[Any]:
        """
        Certificate Common Name when TLS is enabled. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "certificate_common_name")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Optional[Any]:
        """
        The connection string. It is mutually exclusive with server, database, authenticationType, userName, packageCollection and certificateCommonName property. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def database(self) -> Optional[Any]:
        """
        Database name for connection. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "database")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter(name="packageCollection")
    def package_collection(self) -> Optional[Any]:
        """
        Under where packages are created when querying database. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "package_collection")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        Password for authentication.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def server(self) -> Optional[Any]:
        """
        Server name for connection. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "server")

    @property
    @pulumi.getter
    def username(self) -> Optional[Any]:
        """
        Username for authentication. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "username")


@pulumi.output_type
class Db2SourceResponse(dict):
    """
    A copy activity source for Db2 databases.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in Db2SourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        Db2SourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        Db2SourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for Db2 databases.
        :param str type: Copy source type.
               Expected value is 'Db2Source'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: Database query. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'Db2Source')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'Db2Source'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        Database query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class Db2TableDatasetResponse(dict):
    """
    The Db2 table dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in Db2TableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        Db2TableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        Db2TableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        The Db2 table dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'Db2Table'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The Db2 table name. Type: string (or Expression with resultType string).
        :param Any table_name: This property will be retired. Please consider using schema + table properties instead.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'Db2Table')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'Db2Table'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The Db2 table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        This property will be retired. Please consider using schema + table properties instead.
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class DeleteActivityResponse(dict):
    """
    Delete activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dependsOn":
            suggest = "depends_on"
        elif key == "enableLogging":
            suggest = "enable_logging"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "logStorageSettings":
            suggest = "log_storage_settings"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "storeSettings":
            suggest = "store_settings"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeleteActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeleteActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeleteActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 dataset: 'outputs.DatasetReferenceResponse',
                 name: str,
                 type: str,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 enable_logging: Optional[Any] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 log_storage_settings: Optional['outputs.LogStorageSettingsResponse'] = None,
                 max_concurrent_connections: Optional[int] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 recursive: Optional[Any] = None,
                 store_settings: Optional[Any] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        Delete activity.
        :param 'DatasetReferenceResponse' dataset: Delete activity dataset reference.
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'Delete'.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Any enable_logging: Whether to record detailed logs of delete-activity execution. Default value is false. Type: boolean (or Expression with resultType boolean).
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param 'LogStorageSettingsResponse' log_storage_settings: Log storage settings customer need to provide when enableLogging is true.
        :param int max_concurrent_connections: The max concurrent connections to connect data source at the same time.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param Any recursive: If true, files or sub-folders under current folder path will be deleted recursively. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Union['AmazonS3CompatibleReadSettingsResponse', 'AmazonS3ReadSettingsResponse', 'AzureBlobFSReadSettingsResponse', 'AzureBlobStorageReadSettingsResponse', 'AzureDataLakeStoreReadSettingsResponse', 'AzureFileStorageReadSettingsResponse', 'FileServerReadSettingsResponse', 'FtpReadSettingsResponse', 'GoogleCloudStorageReadSettingsResponse', 'HdfsReadSettingsResponse', 'HttpReadSettingsResponse', 'OracleCloudStorageReadSettingsResponse', 'SftpReadSettingsResponse'] store_settings: Delete activity store settings.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "dataset", dataset)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'Delete')
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if enable_logging is not None:
            pulumi.set(__self__, "enable_logging", enable_logging)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if log_storage_settings is not None:
            pulumi.set(__self__, "log_storage_settings", log_storage_settings)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if recursive is not None:
            pulumi.set(__self__, "recursive", recursive)
        if store_settings is not None:
            pulumi.set(__self__, "store_settings", store_settings)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter
    def dataset(self) -> 'outputs.DatasetReferenceResponse':
        """
        Delete activity dataset reference.
        """
        return pulumi.get(self, "dataset")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'Delete'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="enableLogging")
    def enable_logging(self) -> Optional[Any]:
        """
        Whether to record detailed logs of delete-activity execution. Default value is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "enable_logging")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter(name="logStorageSettings")
    def log_storage_settings(self) -> Optional['outputs.LogStorageSettingsResponse']:
        """
        Log storage settings customer need to provide when enableLogging is true.
        """
        return pulumi.get(self, "log_storage_settings")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[int]:
        """
        The max concurrent connections to connect data source at the same time.
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter
    def recursive(self) -> Optional[Any]:
        """
        If true, files or sub-folders under current folder path will be deleted recursively. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "recursive")

    @property
    @pulumi.getter(name="storeSettings")
    def store_settings(self) -> Optional[Any]:
        """
        Delete activity store settings.
        """
        return pulumi.get(self, "store_settings")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class DelimitedTextDatasetResponse(dict):
    """
    Delimited text dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "columnDelimiter":
            suggest = "column_delimiter"
        elif key == "compressionCodec":
            suggest = "compression_codec"
        elif key == "compressionLevel":
            suggest = "compression_level"
        elif key == "encodingName":
            suggest = "encoding_name"
        elif key == "escapeChar":
            suggest = "escape_char"
        elif key == "firstRowAsHeader":
            suggest = "first_row_as_header"
        elif key == "nullValue":
            suggest = "null_value"
        elif key == "quoteChar":
            suggest = "quote_char"
        elif key == "rowDelimiter":
            suggest = "row_delimiter"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DelimitedTextDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DelimitedTextDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DelimitedTextDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 location: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 column_delimiter: Optional[Any] = None,
                 compression_codec: Optional[Any] = None,
                 compression_level: Optional[Any] = None,
                 description: Optional[str] = None,
                 encoding_name: Optional[Any] = None,
                 escape_char: Optional[Any] = None,
                 first_row_as_header: Optional[Any] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 null_value: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 quote_char: Optional[Any] = None,
                 row_delimiter: Optional[Any] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        Delimited text dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param Union['AmazonS3CompatibleLocationResponse', 'AmazonS3LocationResponse', 'AzureBlobFSLocationResponse', 'AzureBlobStorageLocationResponse', 'AzureDataLakeStoreLocationResponse', 'AzureFileStorageLocationResponse', 'FileServerLocationResponse', 'FtpServerLocationResponse', 'GoogleCloudStorageLocationResponse', 'HdfsLocationResponse', 'HttpServerLocationResponse', 'OracleCloudStorageLocationResponse', 'SftpLocationResponse'] location: The location of the delimited text storage.
        :param str type: Type of dataset.
               Expected value is 'DelimitedText'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param Any column_delimiter: The column delimiter. Type: string (or Expression with resultType string).
        :param Any compression_codec: The data compressionCodec. Type: string (or Expression with resultType string).
        :param Any compression_level: The data compression method used for DelimitedText.
        :param str description: Dataset description.
        :param Any encoding_name: The code page name of the preferred encoding. If miss, the default value is UTF-8, unless BOM denotes another Unicode encoding. Refer to the name column of the table in the following link to set supported values: https://msdn.microsoft.com/library/system.text.encoding.aspx. Type: string (or Expression with resultType string).
        :param Any escape_char: The escape character. Type: string (or Expression with resultType string).
        :param Any first_row_as_header: When used as input, treat the first row of data as headers. When used as output,write the headers into the output as the first row of data. The default value is false. Type: boolean (or Expression with resultType boolean).
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Any null_value: The null value string. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any quote_char: The quote character. Type: string (or Expression with resultType string).
        :param Any row_delimiter: The row delimiter. Type: string (or Expression with resultType string).
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "location", location)
        pulumi.set(__self__, "type", 'DelimitedText')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if column_delimiter is not None:
            pulumi.set(__self__, "column_delimiter", column_delimiter)
        if compression_codec is not None:
            pulumi.set(__self__, "compression_codec", compression_codec)
        if compression_level is not None:
            pulumi.set(__self__, "compression_level", compression_level)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encoding_name is not None:
            pulumi.set(__self__, "encoding_name", encoding_name)
        if escape_char is not None:
            pulumi.set(__self__, "escape_char", escape_char)
        if first_row_as_header is not None:
            pulumi.set(__self__, "first_row_as_header", first_row_as_header)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if quote_char is not None:
            pulumi.set(__self__, "quote_char", quote_char)
        if row_delimiter is not None:
            pulumi.set(__self__, "row_delimiter", row_delimiter)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def location(self) -> Any:
        """
        The location of the delimited text storage.
        """
        return pulumi.get(self, "location")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'DelimitedText'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="columnDelimiter")
    def column_delimiter(self) -> Optional[Any]:
        """
        The column delimiter. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "column_delimiter")

    @property
    @pulumi.getter(name="compressionCodec")
    def compression_codec(self) -> Optional[Any]:
        """
        The data compressionCodec. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "compression_codec")

    @property
    @pulumi.getter(name="compressionLevel")
    def compression_level(self) -> Optional[Any]:
        """
        The data compression method used for DelimitedText.
        """
        return pulumi.get(self, "compression_level")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encodingName")
    def encoding_name(self) -> Optional[Any]:
        """
        The code page name of the preferred encoding. If miss, the default value is UTF-8, unless BOM denotes another Unicode encoding. Refer to the name column of the table in the following link to set supported values: https://msdn.microsoft.com/library/system.text.encoding.aspx. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encoding_name")

    @property
    @pulumi.getter(name="escapeChar")
    def escape_char(self) -> Optional[Any]:
        """
        The escape character. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "escape_char")

    @property
    @pulumi.getter(name="firstRowAsHeader")
    def first_row_as_header(self) -> Optional[Any]:
        """
        When used as input, treat the first row of data as headers. When used as output,write the headers into the output as the first row of data. The default value is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "first_row_as_header")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[Any]:
        """
        The null value string. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "null_value")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="quoteChar")
    def quote_char(self) -> Optional[Any]:
        """
        The quote character. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "quote_char")

    @property
    @pulumi.getter(name="rowDelimiter")
    def row_delimiter(self) -> Optional[Any]:
        """
        The row delimiter. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "row_delimiter")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class DelimitedTextReadSettingsResponse(dict):
    """
    Delimited text read settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "compressionProperties":
            suggest = "compression_properties"
        elif key == "skipLineCount":
            suggest = "skip_line_count"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DelimitedTextReadSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DelimitedTextReadSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DelimitedTextReadSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 compression_properties: Optional[Any] = None,
                 skip_line_count: Optional[Any] = None):
        """
        Delimited text read settings.
        :param str type: The read setting type.
               Expected value is 'DelimitedTextReadSettings'.
        :param Union['TarGZipReadSettingsResponse', 'TarReadSettingsResponse', 'ZipDeflateReadSettingsResponse'] compression_properties: Compression settings.
        :param Any skip_line_count: Indicates the number of non-empty rows to skip when reading data from input files. Type: integer (or Expression with resultType integer).
        """
        pulumi.set(__self__, "type", 'DelimitedTextReadSettings')
        if compression_properties is not None:
            pulumi.set(__self__, "compression_properties", compression_properties)
        if skip_line_count is not None:
            pulumi.set(__self__, "skip_line_count", skip_line_count)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The read setting type.
        Expected value is 'DelimitedTextReadSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="compressionProperties")
    def compression_properties(self) -> Optional[Any]:
        """
        Compression settings.
        """
        return pulumi.get(self, "compression_properties")

    @property
    @pulumi.getter(name="skipLineCount")
    def skip_line_count(self) -> Optional[Any]:
        """
        Indicates the number of non-empty rows to skip when reading data from input files. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "skip_line_count")


@pulumi.output_type
class DelimitedTextSinkResponse(dict):
    """
    A copy activity DelimitedText sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "formatSettings":
            suggest = "format_settings"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "storeSettings":
            suggest = "store_settings"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DelimitedTextSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DelimitedTextSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DelimitedTextSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 format_settings: Optional['outputs.DelimitedTextWriteSettingsResponse'] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 store_settings: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity DelimitedText sink.
        :param str type: Copy sink type.
               Expected value is 'DelimitedTextSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param 'DelimitedTextWriteSettingsResponse' format_settings: DelimitedText format settings.
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Union['AzureBlobFSWriteSettingsResponse', 'AzureBlobStorageWriteSettingsResponse', 'AzureDataLakeStoreWriteSettingsResponse', 'AzureFileStorageWriteSettingsResponse', 'FileServerWriteSettingsResponse', 'SftpWriteSettingsResponse'] store_settings: DelimitedText store settings.
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'DelimitedTextSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if format_settings is not None:
            pulumi.set(__self__, "format_settings", format_settings)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if store_settings is not None:
            pulumi.set(__self__, "store_settings", store_settings)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'DelimitedTextSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="formatSettings")
    def format_settings(self) -> Optional['outputs.DelimitedTextWriteSettingsResponse']:
        """
        DelimitedText format settings.
        """
        return pulumi.get(self, "format_settings")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="storeSettings")
    def store_settings(self) -> Optional[Any]:
        """
        DelimitedText store settings.
        """
        return pulumi.get(self, "store_settings")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class DelimitedTextSourceResponse(dict):
    """
    A copy activity DelimitedText source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "formatSettings":
            suggest = "format_settings"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"
        elif key == "storeSettings":
            suggest = "store_settings"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DelimitedTextSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DelimitedTextSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DelimitedTextSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 format_settings: Optional['outputs.DelimitedTextReadSettingsResponse'] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None,
                 store_settings: Optional[Any] = None):
        """
        A copy activity DelimitedText source.
        :param str type: Copy source type.
               Expected value is 'DelimitedTextSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param 'DelimitedTextReadSettingsResponse' format_settings: DelimitedText format settings.
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Union['AmazonS3CompatibleReadSettingsResponse', 'AmazonS3ReadSettingsResponse', 'AzureBlobFSReadSettingsResponse', 'AzureBlobStorageReadSettingsResponse', 'AzureDataLakeStoreReadSettingsResponse', 'AzureFileStorageReadSettingsResponse', 'FileServerReadSettingsResponse', 'FtpReadSettingsResponse', 'GoogleCloudStorageReadSettingsResponse', 'HdfsReadSettingsResponse', 'HttpReadSettingsResponse', 'OracleCloudStorageReadSettingsResponse', 'SftpReadSettingsResponse'] store_settings: DelimitedText store settings.
        """
        pulumi.set(__self__, "type", 'DelimitedTextSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if format_settings is not None:
            pulumi.set(__self__, "format_settings", format_settings)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)
        if store_settings is not None:
            pulumi.set(__self__, "store_settings", store_settings)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'DelimitedTextSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="formatSettings")
    def format_settings(self) -> Optional['outputs.DelimitedTextReadSettingsResponse']:
        """
        DelimitedText format settings.
        """
        return pulumi.get(self, "format_settings")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")

    @property
    @pulumi.getter(name="storeSettings")
    def store_settings(self) -> Optional[Any]:
        """
        DelimitedText store settings.
        """
        return pulumi.get(self, "store_settings")


@pulumi.output_type
class DelimitedTextWriteSettingsResponse(dict):
    """
    Delimited text write settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "fileExtension":
            suggest = "file_extension"
        elif key == "fileNamePrefix":
            suggest = "file_name_prefix"
        elif key == "maxRowsPerFile":
            suggest = "max_rows_per_file"
        elif key == "quoteAllText":
            suggest = "quote_all_text"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DelimitedTextWriteSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DelimitedTextWriteSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DelimitedTextWriteSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 file_extension: Any,
                 type: str,
                 file_name_prefix: Optional[Any] = None,
                 max_rows_per_file: Optional[Any] = None,
                 quote_all_text: Optional[Any] = None):
        """
        Delimited text write settings.
        :param Any file_extension: The file extension used to create the files. Type: string (or Expression with resultType string).
        :param str type: The write setting type.
               Expected value is 'DelimitedTextWriteSettings'.
        :param Any file_name_prefix: Specifies the file name pattern <fileNamePrefix>_<fileIndex>.<fileExtension> when copy from non-file based store without partitionOptions. Type: string (or Expression with resultType string).
        :param Any max_rows_per_file: Limit the written file's row count to be smaller than or equal to the specified count. Type: integer (or Expression with resultType integer).
        :param Any quote_all_text: Indicates whether string values should always be enclosed with quotes. Type: boolean (or Expression with resultType boolean).
        """
        pulumi.set(__self__, "file_extension", file_extension)
        pulumi.set(__self__, "type", 'DelimitedTextWriteSettings')
        if file_name_prefix is not None:
            pulumi.set(__self__, "file_name_prefix", file_name_prefix)
        if max_rows_per_file is not None:
            pulumi.set(__self__, "max_rows_per_file", max_rows_per_file)
        if quote_all_text is not None:
            pulumi.set(__self__, "quote_all_text", quote_all_text)

    @property
    @pulumi.getter(name="fileExtension")
    def file_extension(self) -> Any:
        """
        The file extension used to create the files. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_extension")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The write setting type.
        Expected value is 'DelimitedTextWriteSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="fileNamePrefix")
    def file_name_prefix(self) -> Optional[Any]:
        """
        Specifies the file name pattern <fileNamePrefix>_<fileIndex>.<fileExtension> when copy from non-file based store without partitionOptions. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_name_prefix")

    @property
    @pulumi.getter(name="maxRowsPerFile")
    def max_rows_per_file(self) -> Optional[Any]:
        """
        Limit the written file's row count to be smaller than or equal to the specified count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_rows_per_file")

    @property
    @pulumi.getter(name="quoteAllText")
    def quote_all_text(self) -> Optional[Any]:
        """
        Indicates whether string values should always be enclosed with quotes. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "quote_all_text")


@pulumi.output_type
class DistcpSettingsResponse(dict):
    """
    Distcp settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "resourceManagerEndpoint":
            suggest = "resource_manager_endpoint"
        elif key == "tempScriptPath":
            suggest = "temp_script_path"
        elif key == "distcpOptions":
            suggest = "distcp_options"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DistcpSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DistcpSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DistcpSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 resource_manager_endpoint: Any,
                 temp_script_path: Any,
                 distcp_options: Optional[Any] = None):
        """
        Distcp settings.
        :param Any resource_manager_endpoint: Specifies the Yarn ResourceManager endpoint. Type: string (or Expression with resultType string).
        :param Any temp_script_path: Specifies an existing folder path which will be used to store temp Distcp command script. The script file is generated by ADF and will be removed after Copy job finished. Type: string (or Expression with resultType string).
        :param Any distcp_options: Specifies the Distcp options. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "resource_manager_endpoint", resource_manager_endpoint)
        pulumi.set(__self__, "temp_script_path", temp_script_path)
        if distcp_options is not None:
            pulumi.set(__self__, "distcp_options", distcp_options)

    @property
    @pulumi.getter(name="resourceManagerEndpoint")
    def resource_manager_endpoint(self) -> Any:
        """
        Specifies the Yarn ResourceManager endpoint. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "resource_manager_endpoint")

    @property
    @pulumi.getter(name="tempScriptPath")
    def temp_script_path(self) -> Any:
        """
        Specifies an existing folder path which will be used to store temp Distcp command script. The script file is generated by ADF and will be removed after Copy job finished. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "temp_script_path")

    @property
    @pulumi.getter(name="distcpOptions")
    def distcp_options(self) -> Optional[Any]:
        """
        Specifies the Distcp options. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "distcp_options")


@pulumi.output_type
class DocumentDbCollectionDatasetResponse(dict):
    """
    Microsoft Azure Document Database Collection dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "collectionName":
            suggest = "collection_name"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DocumentDbCollectionDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DocumentDbCollectionDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DocumentDbCollectionDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 collection_name: Any,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        Microsoft Azure Document Database Collection dataset.
        :param Any collection_name: Document Database collection name. Type: string (or Expression with resultType string).
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'DocumentDbCollection'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "collection_name", collection_name)
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'DocumentDbCollection')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="collectionName")
    def collection_name(self) -> Any:
        """
        Document Database collection name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "collection_name")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'DocumentDbCollection'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class DocumentDbCollectionSinkResponse(dict):
    """
    A copy activity Document Database Collection sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "nestingSeparator":
            suggest = "nesting_separator"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"
        elif key == "writeBehavior":
            suggest = "write_behavior"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DocumentDbCollectionSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DocumentDbCollectionSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DocumentDbCollectionSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 nesting_separator: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None,
                 write_behavior: Optional[Any] = None):
        """
        A copy activity Document Database Collection sink.
        :param str type: Copy sink type.
               Expected value is 'DocumentDbCollectionSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any nesting_separator: Nested properties separator. Default is . (dot). Type: string (or Expression with resultType string).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_behavior: Describes how to write data to Azure Cosmos DB. Type: string (or Expression with resultType string). Allowed values: insert and upsert.
        """
        pulumi.set(__self__, "type", 'DocumentDbCollectionSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if nesting_separator is not None:
            pulumi.set(__self__, "nesting_separator", nesting_separator)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)
        if write_behavior is not None:
            pulumi.set(__self__, "write_behavior", write_behavior)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'DocumentDbCollectionSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="nestingSeparator")
    def nesting_separator(self) -> Optional[Any]:
        """
        Nested properties separator. Default is . (dot). Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "nesting_separator")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")

    @property
    @pulumi.getter(name="writeBehavior")
    def write_behavior(self) -> Optional[Any]:
        """
        Describes how to write data to Azure Cosmos DB. Type: string (or Expression with resultType string). Allowed values: insert and upsert.
        """
        return pulumi.get(self, "write_behavior")


@pulumi.output_type
class DocumentDbCollectionSourceResponse(dict):
    """
    A copy activity Document Database Collection source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "nestingSeparator":
            suggest = "nesting_separator"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DocumentDbCollectionSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DocumentDbCollectionSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DocumentDbCollectionSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 nesting_separator: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Document Database Collection source.
        :param str type: Copy source type.
               Expected value is 'DocumentDbCollectionSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any nesting_separator: Nested properties separator. Type: string (or Expression with resultType string).
        :param Any query: Documents query. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'DocumentDbCollectionSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if nesting_separator is not None:
            pulumi.set(__self__, "nesting_separator", nesting_separator)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'DocumentDbCollectionSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="nestingSeparator")
    def nesting_separator(self) -> Optional[Any]:
        """
        Nested properties separator. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "nesting_separator")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        Documents query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class DrillLinkedServiceResponse(dict):
    """
    Drill server linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectVia":
            suggest = "connect_via"
        elif key == "connectionString":
            suggest = "connection_string"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DrillLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DrillLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DrillLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 connection_string: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 pwd: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None):
        """
        Drill server linked service.
        :param str type: Type of linked service.
               Expected value is 'Drill'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param 'AzureKeyVaultSecretReferenceResponse' pwd: The Azure key vault secret reference of password in connection string.
        """
        pulumi.set(__self__, "type", 'Drill')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if connection_string is not None:
            pulumi.set(__self__, "connection_string", connection_string)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pwd is not None:
            pulumi.set(__self__, "pwd", pwd)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Drill'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Optional[Any]:
        """
        An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def pwd(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of password in connection string.
        """
        return pulumi.get(self, "pwd")


@pulumi.output_type
class DrillSourceResponse(dict):
    """
    A copy activity Drill server source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DrillSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DrillSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DrillSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Drill server source.
        :param str type: Copy source type.
               Expected value is 'DrillSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'DrillSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'DrillSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class DrillTableDatasetResponse(dict):
    """
    Drill server dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DrillTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DrillTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DrillTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Drill server dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'DrillTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The table name of the Drill. Type: string (or Expression with resultType string).
        :param Any table_name: This property will be retired. Please consider using schema + table properties instead.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'DrillTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'DrillTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The table name of the Drill. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        This property will be retired. Please consider using schema + table properties instead.
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class DynamicsAXLinkedServiceResponse(dict):
    """
    Dynamics AX linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "aadResourceId":
            suggest = "aad_resource_id"
        elif key == "servicePrincipalId":
            suggest = "service_principal_id"
        elif key == "servicePrincipalKey":
            suggest = "service_principal_key"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DynamicsAXLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DynamicsAXLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DynamicsAXLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 aad_resource_id: Any,
                 service_principal_id: Any,
                 service_principal_key: Any,
                 tenant: Any,
                 type: str,
                 url: Any,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None):
        """
        Dynamics AX linked service.
        :param Any aad_resource_id: Specify the resource you are requesting authorization. Type: string (or Expression with resultType string).
        :param Any service_principal_id: Specify the application's client ID. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_key: Specify the application's key. Mark this field as a SecureString to store it securely in Data Factory, or reference a secret stored in Azure Key Vault. Type: string (or Expression with resultType string).
        :param Any tenant: Specify the tenant information (domain name or tenant ID) under which your application resides. Retrieve it by hovering the mouse in the top-right corner of the Azure portal. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'DynamicsAX'.
        :param Any url: The Dynamics AX (or Dynamics 365 Finance and Operations) instance OData endpoint.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        """
        pulumi.set(__self__, "aad_resource_id", aad_resource_id)
        pulumi.set(__self__, "service_principal_id", service_principal_id)
        pulumi.set(__self__, "service_principal_key", service_principal_key)
        pulumi.set(__self__, "tenant", tenant)
        pulumi.set(__self__, "type", 'DynamicsAX')
        pulumi.set(__self__, "url", url)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)

    @property
    @pulumi.getter(name="aadResourceId")
    def aad_resource_id(self) -> Any:
        """
        Specify the resource you are requesting authorization. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "aad_resource_id")

    @property
    @pulumi.getter(name="servicePrincipalId")
    def service_principal_id(self) -> Any:
        """
        Specify the application's client ID. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_id")

    @property
    @pulumi.getter(name="servicePrincipalKey")
    def service_principal_key(self) -> Any:
        """
        Specify the application's key. Mark this field as a SecureString to store it securely in Data Factory, or reference a secret stored in Azure Key Vault. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_key")

    @property
    @pulumi.getter
    def tenant(self) -> Any:
        """
        Specify the tenant information (domain name or tenant ID) under which your application resides. Retrieve it by hovering the mouse in the top-right corner of the Azure portal. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "tenant")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'DynamicsAX'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def url(self) -> Any:
        """
        The Dynamics AX (or Dynamics 365 Finance and Operations) instance OData endpoint.
        """
        return pulumi.get(self, "url")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")


@pulumi.output_type
class DynamicsAXResourceDatasetResponse(dict):
    """
    The path of the Dynamics AX OData entity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DynamicsAXResourceDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DynamicsAXResourceDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DynamicsAXResourceDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 path: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        The path of the Dynamics AX OData entity.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param Any path: The path of the Dynamics AX OData entity. Type: string (or Expression with resultType string).
        :param str type: Type of dataset.
               Expected value is 'DynamicsAXResource'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "path", path)
        pulumi.set(__self__, "type", 'DynamicsAXResource')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def path(self) -> Any:
        """
        The path of the Dynamics AX OData entity. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "path")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'DynamicsAXResource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class DynamicsAXSourceResponse(dict):
    """
    A copy activity Dynamics AX source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "httpRequestTimeout":
            suggest = "http_request_timeout"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DynamicsAXSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DynamicsAXSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DynamicsAXSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 http_request_timeout: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Dynamics AX source.
        :param str type: Copy source type.
               Expected value is 'DynamicsAXSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any http_request_timeout: The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:05:00. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'DynamicsAXSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if http_request_timeout is not None:
            pulumi.set(__self__, "http_request_timeout", http_request_timeout)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'DynamicsAXSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="httpRequestTimeout")
    def http_request_timeout(self) -> Optional[Any]:
        """
        The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:05:00. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "http_request_timeout")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class DynamicsCrmEntityDatasetResponse(dict):
    """
    The Dynamics CRM entity dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "entityName":
            suggest = "entity_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DynamicsCrmEntityDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DynamicsCrmEntityDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DynamicsCrmEntityDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 entity_name: Optional[Any] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        The Dynamics CRM entity dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'DynamicsCrmEntity'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param Any entity_name: The logical name of the entity. Type: string (or Expression with resultType string).
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'DynamicsCrmEntity')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if entity_name is not None:
            pulumi.set(__self__, "entity_name", entity_name)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'DynamicsCrmEntity'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="entityName")
    def entity_name(self) -> Optional[Any]:
        """
        The logical name of the entity. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "entity_name")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class DynamicsCrmLinkedServiceResponse(dict):
    """
    Dynamics CRM linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"
        elif key == "deploymentType":
            suggest = "deployment_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "hostName":
            suggest = "host_name"
        elif key == "organizationName":
            suggest = "organization_name"
        elif key == "servicePrincipalCredential":
            suggest = "service_principal_credential"
        elif key == "servicePrincipalCredentialType":
            suggest = "service_principal_credential_type"
        elif key == "servicePrincipalId":
            suggest = "service_principal_id"
        elif key == "serviceUri":
            suggest = "service_uri"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DynamicsCrmLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DynamicsCrmLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DynamicsCrmLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 authentication_type: Any,
                 deployment_type: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 host_name: Optional[Any] = None,
                 organization_name: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 port: Optional[Any] = None,
                 service_principal_credential: Optional[Any] = None,
                 service_principal_credential_type: Optional[Any] = None,
                 service_principal_id: Optional[Any] = None,
                 service_uri: Optional[Any] = None,
                 username: Optional[Any] = None):
        """
        Dynamics CRM linked service.
        :param Any authentication_type: The authentication type to connect to Dynamics CRM server. 'Office365' for online scenario, 'Ifd' for on-premises with Ifd scenario, 'AADServicePrincipal' for Server-To-Server authentication in online scenario. Type: string (or Expression with resultType string).
        :param Any deployment_type: The deployment type of the Dynamics CRM instance. 'Online' for Dynamics CRM Online and 'OnPremisesWithIfd' for Dynamics CRM on-premises with Ifd. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'DynamicsCrm'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Any host_name: The host name of the on-premises Dynamics CRM server. The property is required for on-prem and not allowed for online. Type: string (or Expression with resultType string).
        :param Any organization_name: The organization name of the Dynamics CRM instance. The property is required for on-prem and required for online when there are more than one Dynamics CRM instances associated with the user. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password to access the Dynamics CRM instance.
        :param Any port: The port of on-premises Dynamics CRM server. The property is required for on-prem and not allowed for online. Default is 443. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_credential: The credential of the service principal object in Azure Active Directory. If servicePrincipalCredentialType is 'ServicePrincipalKey', servicePrincipalCredential can be SecureString or AzureKeyVaultSecretReference. If servicePrincipalCredentialType is 'ServicePrincipalCert', servicePrincipalCredential can only be AzureKeyVaultSecretReference.
        :param Any service_principal_credential_type: The service principal credential type to use in Server-To-Server authentication. 'ServicePrincipalKey' for key/secret, 'ServicePrincipalCert' for certificate. Type: string (or Expression with resultType string).
        :param Any service_principal_id: The client ID of the application in Azure Active Directory used for Server-To-Server authentication. Type: string (or Expression with resultType string).
        :param Any service_uri: The URL to the Microsoft Dynamics CRM server. The property is required for on-line and not allowed for on-prem. Type: string (or Expression with resultType string).
        :param Any username: User name to access the Dynamics CRM instance. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "authentication_type", authentication_type)
        pulumi.set(__self__, "deployment_type", deployment_type)
        pulumi.set(__self__, "type", 'DynamicsCrm')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if host_name is not None:
            pulumi.set(__self__, "host_name", host_name)
        if organization_name is not None:
            pulumi.set(__self__, "organization_name", organization_name)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if service_principal_credential is not None:
            pulumi.set(__self__, "service_principal_credential", service_principal_credential)
        if service_principal_credential_type is not None:
            pulumi.set(__self__, "service_principal_credential_type", service_principal_credential_type)
        if service_principal_id is not None:
            pulumi.set(__self__, "service_principal_id", service_principal_id)
        if service_uri is not None:
            pulumi.set(__self__, "service_uri", service_uri)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> Any:
        """
        The authentication type to connect to Dynamics CRM server. 'Office365' for online scenario, 'Ifd' for on-premises with Ifd scenario, 'AADServicePrincipal' for Server-To-Server authentication in online scenario. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter(name="deploymentType")
    def deployment_type(self) -> Any:
        """
        The deployment type of the Dynamics CRM instance. 'Online' for Dynamics CRM Online and 'OnPremisesWithIfd' for Dynamics CRM on-premises with Ifd. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "deployment_type")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'DynamicsCrm'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter(name="hostName")
    def host_name(self) -> Optional[Any]:
        """
        The host name of the on-premises Dynamics CRM server. The property is required for on-prem and not allowed for online. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "host_name")

    @property
    @pulumi.getter(name="organizationName")
    def organization_name(self) -> Optional[Any]:
        """
        The organization name of the Dynamics CRM instance. The property is required for on-prem and required for online when there are more than one Dynamics CRM instances associated with the user. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "organization_name")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        Password to access the Dynamics CRM instance.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def port(self) -> Optional[Any]:
        """
        The port of on-premises Dynamics CRM server. The property is required for on-prem and not allowed for online. Default is 443. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "port")

    @property
    @pulumi.getter(name="servicePrincipalCredential")
    def service_principal_credential(self) -> Optional[Any]:
        """
        The credential of the service principal object in Azure Active Directory. If servicePrincipalCredentialType is 'ServicePrincipalKey', servicePrincipalCredential can be SecureString or AzureKeyVaultSecretReference. If servicePrincipalCredentialType is 'ServicePrincipalCert', servicePrincipalCredential can only be AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "service_principal_credential")

    @property
    @pulumi.getter(name="servicePrincipalCredentialType")
    def service_principal_credential_type(self) -> Optional[Any]:
        """
        The service principal credential type to use in Server-To-Server authentication. 'ServicePrincipalKey' for key/secret, 'ServicePrincipalCert' for certificate. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_credential_type")

    @property
    @pulumi.getter(name="servicePrincipalId")
    def service_principal_id(self) -> Optional[Any]:
        """
        The client ID of the application in Azure Active Directory used for Server-To-Server authentication. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_id")

    @property
    @pulumi.getter(name="serviceUri")
    def service_uri(self) -> Optional[Any]:
        """
        The URL to the Microsoft Dynamics CRM server. The property is required for on-line and not allowed for on-prem. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_uri")

    @property
    @pulumi.getter
    def username(self) -> Optional[Any]:
        """
        User name to access the Dynamics CRM instance. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "username")


@pulumi.output_type
class DynamicsCrmSinkResponse(dict):
    """
    A copy activity Dynamics CRM sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "writeBehavior":
            suggest = "write_behavior"
        elif key == "alternateKeyName":
            suggest = "alternate_key_name"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "ignoreNullValues":
            suggest = "ignore_null_values"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DynamicsCrmSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DynamicsCrmSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DynamicsCrmSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 write_behavior: str,
                 alternate_key_name: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 ignore_null_values: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity Dynamics CRM sink.
        :param str type: Copy sink type.
               Expected value is 'DynamicsCrmSink'.
        :param str write_behavior: The write behavior for the operation.
        :param Any alternate_key_name: The logical name of the alternate key which will be used when upserting records. Type: string (or Expression with resultType string).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any ignore_null_values: The flag indicating whether to ignore null values from input dataset (except key fields) during write operation. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'DynamicsCrmSink')
        pulumi.set(__self__, "write_behavior", write_behavior)
        if alternate_key_name is not None:
            pulumi.set(__self__, "alternate_key_name", alternate_key_name)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if ignore_null_values is not None:
            pulumi.set(__self__, "ignore_null_values", ignore_null_values)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'DynamicsCrmSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="writeBehavior")
    def write_behavior(self) -> str:
        """
        The write behavior for the operation.
        """
        return pulumi.get(self, "write_behavior")

    @property
    @pulumi.getter(name="alternateKeyName")
    def alternate_key_name(self) -> Optional[Any]:
        """
        The logical name of the alternate key which will be used when upserting records. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "alternate_key_name")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="ignoreNullValues")
    def ignore_null_values(self) -> Optional[Any]:
        """
        The flag indicating whether to ignore null values from input dataset (except key fields) during write operation. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "ignore_null_values")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class DynamicsCrmSourceResponse(dict):
    """
    A copy activity Dynamics CRM source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DynamicsCrmSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DynamicsCrmSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DynamicsCrmSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Dynamics CRM source.
        :param str type: Copy source type.
               Expected value is 'DynamicsCrmSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: FetchXML is a proprietary query language that is used in Microsoft Dynamics CRM (online & on-premises). Type: string (or Expression with resultType string).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'DynamicsCrmSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'DynamicsCrmSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        FetchXML is a proprietary query language that is used in Microsoft Dynamics CRM (online & on-premises). Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class DynamicsEntityDatasetResponse(dict):
    """
    The Dynamics entity dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "entityName":
            suggest = "entity_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DynamicsEntityDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DynamicsEntityDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DynamicsEntityDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 entity_name: Optional[Any] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        The Dynamics entity dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'DynamicsEntity'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param Any entity_name: The logical name of the entity. Type: string (or Expression with resultType string).
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'DynamicsEntity')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if entity_name is not None:
            pulumi.set(__self__, "entity_name", entity_name)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'DynamicsEntity'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="entityName")
    def entity_name(self) -> Optional[Any]:
        """
        The logical name of the entity. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "entity_name")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class DynamicsLinkedServiceResponse(dict):
    """
    Dynamics linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"
        elif key == "deploymentType":
            suggest = "deployment_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "hostName":
            suggest = "host_name"
        elif key == "organizationName":
            suggest = "organization_name"
        elif key == "servicePrincipalCredential":
            suggest = "service_principal_credential"
        elif key == "servicePrincipalCredentialType":
            suggest = "service_principal_credential_type"
        elif key == "servicePrincipalId":
            suggest = "service_principal_id"
        elif key == "serviceUri":
            suggest = "service_uri"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DynamicsLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DynamicsLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DynamicsLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 authentication_type: Any,
                 deployment_type: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 credential: Optional['outputs.CredentialReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 host_name: Optional[Any] = None,
                 organization_name: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 port: Optional[Any] = None,
                 service_principal_credential: Optional[Any] = None,
                 service_principal_credential_type: Optional[Any] = None,
                 service_principal_id: Optional[Any] = None,
                 service_uri: Optional[Any] = None,
                 username: Optional[Any] = None):
        """
        Dynamics linked service.
        :param Any authentication_type: The authentication type to connect to Dynamics server. 'Office365' for online scenario, 'Ifd' for on-premises with Ifd scenario, 'AADServicePrincipal' for Server-To-Server authentication in online scenario. Type: string (or Expression with resultType string).
        :param Any deployment_type: The deployment type of the Dynamics instance. 'Online' for Dynamics Online and 'OnPremisesWithIfd' for Dynamics on-premises with Ifd. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'Dynamics'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param 'CredentialReferenceResponse' credential: The credential reference containing authentication information.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Any host_name: The host name of the on-premises Dynamics server. The property is required for on-prem and not allowed for online. Type: string (or Expression with resultType string).
        :param Any organization_name: The organization name of the Dynamics instance. The property is required for on-prem and required for online when there are more than one Dynamics instances associated with the user. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password to access the Dynamics instance.
        :param Any port: The port of on-premises Dynamics server. The property is required for on-prem and not allowed for online. Default is 443. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_credential: The credential of the service principal object in Azure Active Directory. If servicePrincipalCredentialType is 'ServicePrincipalKey', servicePrincipalCredential can be SecureString or AzureKeyVaultSecretReference. If servicePrincipalCredentialType is 'ServicePrincipalCert', servicePrincipalCredential can only be AzureKeyVaultSecretReference.
        :param Any service_principal_credential_type: The service principal credential type to use in Server-To-Server authentication. 'ServicePrincipalKey' for key/secret, 'ServicePrincipalCert' for certificate. Type: string (or Expression with resultType string).
        :param Any service_principal_id: The client ID of the application in Azure Active Directory used for Server-To-Server authentication. Type: string (or Expression with resultType string).
        :param Any service_uri: The URL to the Microsoft Dynamics server. The property is required for on-line and not allowed for on-prem. Type: string (or Expression with resultType string).
        :param Any username: User name to access the Dynamics instance. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "authentication_type", authentication_type)
        pulumi.set(__self__, "deployment_type", deployment_type)
        pulumi.set(__self__, "type", 'Dynamics')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if credential is not None:
            pulumi.set(__self__, "credential", credential)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if host_name is not None:
            pulumi.set(__self__, "host_name", host_name)
        if organization_name is not None:
            pulumi.set(__self__, "organization_name", organization_name)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if service_principal_credential is not None:
            pulumi.set(__self__, "service_principal_credential", service_principal_credential)
        if service_principal_credential_type is not None:
            pulumi.set(__self__, "service_principal_credential_type", service_principal_credential_type)
        if service_principal_id is not None:
            pulumi.set(__self__, "service_principal_id", service_principal_id)
        if service_uri is not None:
            pulumi.set(__self__, "service_uri", service_uri)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> Any:
        """
        The authentication type to connect to Dynamics server. 'Office365' for online scenario, 'Ifd' for on-premises with Ifd scenario, 'AADServicePrincipal' for Server-To-Server authentication in online scenario. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter(name="deploymentType")
    def deployment_type(self) -> Any:
        """
        The deployment type of the Dynamics instance. 'Online' for Dynamics Online and 'OnPremisesWithIfd' for Dynamics on-premises with Ifd. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "deployment_type")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Dynamics'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def credential(self) -> Optional['outputs.CredentialReferenceResponse']:
        """
        The credential reference containing authentication information.
        """
        return pulumi.get(self, "credential")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter(name="hostName")
    def host_name(self) -> Optional[Any]:
        """
        The host name of the on-premises Dynamics server. The property is required for on-prem and not allowed for online. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "host_name")

    @property
    @pulumi.getter(name="organizationName")
    def organization_name(self) -> Optional[Any]:
        """
        The organization name of the Dynamics instance. The property is required for on-prem and required for online when there are more than one Dynamics instances associated with the user. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "organization_name")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        Password to access the Dynamics instance.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def port(self) -> Optional[Any]:
        """
        The port of on-premises Dynamics server. The property is required for on-prem and not allowed for online. Default is 443. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "port")

    @property
    @pulumi.getter(name="servicePrincipalCredential")
    def service_principal_credential(self) -> Optional[Any]:
        """
        The credential of the service principal object in Azure Active Directory. If servicePrincipalCredentialType is 'ServicePrincipalKey', servicePrincipalCredential can be SecureString or AzureKeyVaultSecretReference. If servicePrincipalCredentialType is 'ServicePrincipalCert', servicePrincipalCredential can only be AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "service_principal_credential")

    @property
    @pulumi.getter(name="servicePrincipalCredentialType")
    def service_principal_credential_type(self) -> Optional[Any]:
        """
        The service principal credential type to use in Server-To-Server authentication. 'ServicePrincipalKey' for key/secret, 'ServicePrincipalCert' for certificate. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_credential_type")

    @property
    @pulumi.getter(name="servicePrincipalId")
    def service_principal_id(self) -> Optional[Any]:
        """
        The client ID of the application in Azure Active Directory used for Server-To-Server authentication. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_id")

    @property
    @pulumi.getter(name="serviceUri")
    def service_uri(self) -> Optional[Any]:
        """
        The URL to the Microsoft Dynamics server. The property is required for on-line and not allowed for on-prem. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_uri")

    @property
    @pulumi.getter
    def username(self) -> Optional[Any]:
        """
        User name to access the Dynamics instance. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "username")


@pulumi.output_type
class DynamicsSinkResponse(dict):
    """
    A copy activity Dynamics sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "writeBehavior":
            suggest = "write_behavior"
        elif key == "alternateKeyName":
            suggest = "alternate_key_name"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "ignoreNullValues":
            suggest = "ignore_null_values"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DynamicsSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DynamicsSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DynamicsSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 write_behavior: str,
                 alternate_key_name: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 ignore_null_values: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity Dynamics sink.
        :param str type: Copy sink type.
               Expected value is 'DynamicsSink'.
        :param str write_behavior: The write behavior for the operation.
        :param Any alternate_key_name: The logical name of the alternate key which will be used when upserting records. Type: string (or Expression with resultType string).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any ignore_null_values: The flag indicating whether ignore null values from input dataset (except key fields) during write operation. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'DynamicsSink')
        pulumi.set(__self__, "write_behavior", write_behavior)
        if alternate_key_name is not None:
            pulumi.set(__self__, "alternate_key_name", alternate_key_name)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if ignore_null_values is not None:
            pulumi.set(__self__, "ignore_null_values", ignore_null_values)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'DynamicsSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="writeBehavior")
    def write_behavior(self) -> str:
        """
        The write behavior for the operation.
        """
        return pulumi.get(self, "write_behavior")

    @property
    @pulumi.getter(name="alternateKeyName")
    def alternate_key_name(self) -> Optional[Any]:
        """
        The logical name of the alternate key which will be used when upserting records. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "alternate_key_name")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="ignoreNullValues")
    def ignore_null_values(self) -> Optional[Any]:
        """
        The flag indicating whether ignore null values from input dataset (except key fields) during write operation. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "ignore_null_values")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class DynamicsSourceResponse(dict):
    """
    A copy activity Dynamics source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DynamicsSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DynamicsSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DynamicsSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Dynamics source.
        :param str type: Copy source type.
               Expected value is 'DynamicsSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: FetchXML is a proprietary query language that is used in Microsoft Dynamics (online & on-premises). Type: string (or Expression with resultType string).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'DynamicsSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'DynamicsSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        FetchXML is a proprietary query language that is used in Microsoft Dynamics (online & on-premises). Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class EloquaLinkedServiceResponse(dict):
    """
    Eloqua server linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "useEncryptedEndpoints":
            suggest = "use_encrypted_endpoints"
        elif key == "useHostVerification":
            suggest = "use_host_verification"
        elif key == "usePeerVerification":
            suggest = "use_peer_verification"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in EloquaLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        EloquaLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        EloquaLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 endpoint: Any,
                 type: str,
                 username: Any,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 use_encrypted_endpoints: Optional[Any] = None,
                 use_host_verification: Optional[Any] = None,
                 use_peer_verification: Optional[Any] = None):
        """
        Eloqua server linked service.
        :param Any endpoint: The endpoint of the Eloqua server. (i.e. eloqua.example.com)
        :param str type: Type of linked service.
               Expected value is 'Eloqua'.
        :param Any username: The site name and user name of your Eloqua account in the form: sitename/username. (i.e. Eloqua/Alice)
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The password corresponding to the user name.
        :param Any use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        :param Any use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        :param Any use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        pulumi.set(__self__, "endpoint", endpoint)
        pulumi.set(__self__, "type", 'Eloqua')
        pulumi.set(__self__, "username", username)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if use_encrypted_endpoints is not None:
            pulumi.set(__self__, "use_encrypted_endpoints", use_encrypted_endpoints)
        if use_host_verification is not None:
            pulumi.set(__self__, "use_host_verification", use_host_verification)
        if use_peer_verification is not None:
            pulumi.set(__self__, "use_peer_verification", use_peer_verification)

    @property
    @pulumi.getter
    def endpoint(self) -> Any:
        """
        The endpoint of the Eloqua server. (i.e. eloqua.example.com)
        """
        return pulumi.get(self, "endpoint")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Eloqua'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def username(self) -> Any:
        """
        The site name and user name of your Eloqua account in the form: sitename/username. (i.e. Eloqua/Alice)
        """
        return pulumi.get(self, "username")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        The password corresponding to the user name.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="useEncryptedEndpoints")
    def use_encrypted_endpoints(self) -> Optional[Any]:
        """
        Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        """
        return pulumi.get(self, "use_encrypted_endpoints")

    @property
    @pulumi.getter(name="useHostVerification")
    def use_host_verification(self) -> Optional[Any]:
        """
        Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_host_verification")

    @property
    @pulumi.getter(name="usePeerVerification")
    def use_peer_verification(self) -> Optional[Any]:
        """
        Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_peer_verification")


@pulumi.output_type
class EloquaObjectDatasetResponse(dict):
    """
    Eloqua server dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in EloquaObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        EloquaObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        EloquaObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Eloqua server dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'EloquaObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'EloquaObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'EloquaObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class EloquaSourceResponse(dict):
    """
    A copy activity Eloqua server source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in EloquaSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        EloquaSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        EloquaSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Eloqua server source.
        :param str type: Copy source type.
               Expected value is 'EloquaSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'EloquaSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'EloquaSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class EncryptionConfigurationResponse(dict):
    """
    Definition of CMK for the factory.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "keyName":
            suggest = "key_name"
        elif key == "vaultBaseUrl":
            suggest = "vault_base_url"
        elif key == "keyVersion":
            suggest = "key_version"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in EncryptionConfigurationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        EncryptionConfigurationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        EncryptionConfigurationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 key_name: str,
                 vault_base_url: str,
                 identity: Optional['outputs.CMKIdentityDefinitionResponse'] = None,
                 key_version: Optional[str] = None):
        """
        Definition of CMK for the factory.
        :param str key_name: The name of the key in Azure Key Vault to use as Customer Managed Key.
        :param str vault_base_url: The url of the Azure Key Vault used for CMK.
        :param 'CMKIdentityDefinitionResponse' identity: User assigned identity to use to authenticate to customer's key vault. If not provided Managed Service Identity will be used.
        :param str key_version: The version of the key used for CMK. If not provided, latest version will be used.
        """
        pulumi.set(__self__, "key_name", key_name)
        pulumi.set(__self__, "vault_base_url", vault_base_url)
        if identity is not None:
            pulumi.set(__self__, "identity", identity)
        if key_version is not None:
            pulumi.set(__self__, "key_version", key_version)

    @property
    @pulumi.getter(name="keyName")
    def key_name(self) -> str:
        """
        The name of the key in Azure Key Vault to use as Customer Managed Key.
        """
        return pulumi.get(self, "key_name")

    @property
    @pulumi.getter(name="vaultBaseUrl")
    def vault_base_url(self) -> str:
        """
        The url of the Azure Key Vault used for CMK.
        """
        return pulumi.get(self, "vault_base_url")

    @property
    @pulumi.getter
    def identity(self) -> Optional['outputs.CMKIdentityDefinitionResponse']:
        """
        User assigned identity to use to authenticate to customer's key vault. If not provided Managed Service Identity will be used.
        """
        return pulumi.get(self, "identity")

    @property
    @pulumi.getter(name="keyVersion")
    def key_version(self) -> Optional[str]:
        """
        The version of the key used for CMK. If not provided, latest version will be used.
        """
        return pulumi.get(self, "key_version")


@pulumi.output_type
class EntityReferenceResponse(dict):
    """
    The entity reference.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "referenceName":
            suggest = "reference_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in EntityReferenceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        EntityReferenceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        EntityReferenceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 reference_name: Optional[str] = None,
                 type: Optional[str] = None):
        """
        The entity reference.
        :param str reference_name: The name of this referenced entity.
        :param str type: The type of this referenced entity.
        """
        if reference_name is not None:
            pulumi.set(__self__, "reference_name", reference_name)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="referenceName")
    def reference_name(self) -> Optional[str]:
        """
        The name of this referenced entity.
        """
        return pulumi.get(self, "reference_name")

    @property
    @pulumi.getter
    def type(self) -> Optional[str]:
        """
        The type of this referenced entity.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class EnvironmentVariableSetupResponse(dict):
    """
    The custom setup of setting environment variable.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "variableName":
            suggest = "variable_name"
        elif key == "variableValue":
            suggest = "variable_value"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in EnvironmentVariableSetupResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        EnvironmentVariableSetupResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        EnvironmentVariableSetupResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 variable_name: str,
                 variable_value: str):
        """
        The custom setup of setting environment variable.
        :param str type: The type of custom setup.
               Expected value is 'EnvironmentVariableSetup'.
        :param str variable_name: The name of the environment variable.
        :param str variable_value: The value of the environment variable.
        """
        pulumi.set(__self__, "type", 'EnvironmentVariableSetup')
        pulumi.set(__self__, "variable_name", variable_name)
        pulumi.set(__self__, "variable_value", variable_value)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of custom setup.
        Expected value is 'EnvironmentVariableSetup'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="variableName")
    def variable_name(self) -> str:
        """
        The name of the environment variable.
        """
        return pulumi.get(self, "variable_name")

    @property
    @pulumi.getter(name="variableValue")
    def variable_value(self) -> str:
        """
        The value of the environment variable.
        """
        return pulumi.get(self, "variable_value")


@pulumi.output_type
class ExcelDatasetResponse(dict):
    """
    Excel dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "firstRowAsHeader":
            suggest = "first_row_as_header"
        elif key == "nullValue":
            suggest = "null_value"
        elif key == "sheetIndex":
            suggest = "sheet_index"
        elif key == "sheetName":
            suggest = "sheet_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ExcelDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ExcelDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ExcelDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 location: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 compression: Optional['outputs.DatasetCompressionResponse'] = None,
                 description: Optional[str] = None,
                 first_row_as_header: Optional[Any] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 null_value: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 range: Optional[Any] = None,
                 schema: Optional[Any] = None,
                 sheet_index: Optional[Any] = None,
                 sheet_name: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        Excel dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param Union['AmazonS3CompatibleLocationResponse', 'AmazonS3LocationResponse', 'AzureBlobFSLocationResponse', 'AzureBlobStorageLocationResponse', 'AzureDataLakeStoreLocationResponse', 'AzureFileStorageLocationResponse', 'FileServerLocationResponse', 'FtpServerLocationResponse', 'GoogleCloudStorageLocationResponse', 'HdfsLocationResponse', 'HttpServerLocationResponse', 'OracleCloudStorageLocationResponse', 'SftpLocationResponse'] location: The location of the excel storage.
        :param str type: Type of dataset.
               Expected value is 'Excel'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param 'DatasetCompressionResponse' compression: The data compression method used for the json dataset.
        :param str description: Dataset description.
        :param Any first_row_as_header: When used as input, treat the first row of data as headers. When used as output,write the headers into the output as the first row of data. The default value is false. Type: boolean (or Expression with resultType boolean).
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Any null_value: The null value string. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any range: The partial data of one sheet. Type: string (or Expression with resultType string).
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any sheet_index: The sheet index of excel file and default value is 0. Type: integer (or Expression with resultType integer)
        :param Any sheet_name: The sheet name of excel file. Type: string (or Expression with resultType string).
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "location", location)
        pulumi.set(__self__, "type", 'Excel')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if compression is not None:
            pulumi.set(__self__, "compression", compression)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if first_row_as_header is not None:
            pulumi.set(__self__, "first_row_as_header", first_row_as_header)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if range is not None:
            pulumi.set(__self__, "range", range)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if sheet_index is not None:
            pulumi.set(__self__, "sheet_index", sheet_index)
        if sheet_name is not None:
            pulumi.set(__self__, "sheet_name", sheet_name)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def location(self) -> Any:
        """
        The location of the excel storage.
        """
        return pulumi.get(self, "location")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'Excel'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def compression(self) -> Optional['outputs.DatasetCompressionResponse']:
        """
        The data compression method used for the json dataset.
        """
        return pulumi.get(self, "compression")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="firstRowAsHeader")
    def first_row_as_header(self) -> Optional[Any]:
        """
        When used as input, treat the first row of data as headers. When used as output,write the headers into the output as the first row of data. The default value is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "first_row_as_header")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[Any]:
        """
        The null value string. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "null_value")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def range(self) -> Optional[Any]:
        """
        The partial data of one sheet. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "range")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter(name="sheetIndex")
    def sheet_index(self) -> Optional[Any]:
        """
        The sheet index of excel file and default value is 0. Type: integer (or Expression with resultType integer)
        """
        return pulumi.get(self, "sheet_index")

    @property
    @pulumi.getter(name="sheetName")
    def sheet_name(self) -> Optional[Any]:
        """
        The sheet name of excel file. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sheet_name")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class ExcelSourceResponse(dict):
    """
    A copy activity excel source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"
        elif key == "storeSettings":
            suggest = "store_settings"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ExcelSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ExcelSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ExcelSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None,
                 store_settings: Optional[Any] = None):
        """
        A copy activity excel source.
        :param str type: Copy source type.
               Expected value is 'ExcelSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Union['AmazonS3CompatibleReadSettingsResponse', 'AmazonS3ReadSettingsResponse', 'AzureBlobFSReadSettingsResponse', 'AzureBlobStorageReadSettingsResponse', 'AzureDataLakeStoreReadSettingsResponse', 'AzureFileStorageReadSettingsResponse', 'FileServerReadSettingsResponse', 'FtpReadSettingsResponse', 'GoogleCloudStorageReadSettingsResponse', 'HdfsReadSettingsResponse', 'HttpReadSettingsResponse', 'OracleCloudStorageReadSettingsResponse', 'SftpReadSettingsResponse'] store_settings: Excel store settings.
        """
        pulumi.set(__self__, "type", 'ExcelSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)
        if store_settings is not None:
            pulumi.set(__self__, "store_settings", store_settings)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'ExcelSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")

    @property
    @pulumi.getter(name="storeSettings")
    def store_settings(self) -> Optional[Any]:
        """
        Excel store settings.
        """
        return pulumi.get(self, "store_settings")


@pulumi.output_type
class ExecuteDataFlowActivityResponse(dict):
    """
    Execute data flow activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dataFlow":
            suggest = "data_flow"
        elif key == "continueOnError":
            suggest = "continue_on_error"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "integrationRuntime":
            suggest = "integration_runtime"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "runConcurrently":
            suggest = "run_concurrently"
        elif key == "traceLevel":
            suggest = "trace_level"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ExecuteDataFlowActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ExecuteDataFlowActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ExecuteDataFlowActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 data_flow: 'outputs.DataFlowReferenceResponse',
                 name: str,
                 type: str,
                 compute: Optional['outputs.ExecuteDataFlowActivityTypePropertiesResponseCompute'] = None,
                 continue_on_error: Optional[Any] = None,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 integration_runtime: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 run_concurrently: Optional[Any] = None,
                 staging: Optional['outputs.DataFlowStagingInfoResponse'] = None,
                 trace_level: Optional[Any] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        Execute data flow activity.
        :param 'DataFlowReferenceResponse' data_flow: Data flow reference.
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'ExecuteDataFlow'.
        :param 'ExecuteDataFlowActivityTypePropertiesResponseCompute' compute: Compute properties for data flow activity.
        :param Any continue_on_error: Continue on error setting used for data flow execution. Enables processing to continue if a sink fails. Type: boolean (or Expression with resultType boolean)
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param 'IntegrationRuntimeReferenceResponse' integration_runtime: The integration runtime reference.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param Any run_concurrently: Concurrent run setting used for data flow execution. Allows sinks with the same save order to be processed concurrently. Type: boolean (or Expression with resultType boolean)
        :param 'DataFlowStagingInfoResponse' staging: Staging info for execute data flow activity.
        :param Any trace_level: Trace level setting used for data flow monitoring output. Supported values are: 'coarse', 'fine', and 'none'. Type: string (or Expression with resultType string)
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "data_flow", data_flow)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'ExecuteDataFlow')
        if compute is not None:
            pulumi.set(__self__, "compute", compute)
        if continue_on_error is not None:
            pulumi.set(__self__, "continue_on_error", continue_on_error)
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if integration_runtime is not None:
            pulumi.set(__self__, "integration_runtime", integration_runtime)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if run_concurrently is not None:
            pulumi.set(__self__, "run_concurrently", run_concurrently)
        if staging is not None:
            pulumi.set(__self__, "staging", staging)
        if trace_level is not None:
            pulumi.set(__self__, "trace_level", trace_level)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter(name="dataFlow")
    def data_flow(self) -> 'outputs.DataFlowReferenceResponse':
        """
        Data flow reference.
        """
        return pulumi.get(self, "data_flow")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'ExecuteDataFlow'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def compute(self) -> Optional['outputs.ExecuteDataFlowActivityTypePropertiesResponseCompute']:
        """
        Compute properties for data flow activity.
        """
        return pulumi.get(self, "compute")

    @property
    @pulumi.getter(name="continueOnError")
    def continue_on_error(self) -> Optional[Any]:
        """
        Continue on error setting used for data flow execution. Enables processing to continue if a sink fails. Type: boolean (or Expression with resultType boolean)
        """
        return pulumi.get(self, "continue_on_error")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="integrationRuntime")
    def integration_runtime(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "integration_runtime")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter(name="runConcurrently")
    def run_concurrently(self) -> Optional[Any]:
        """
        Concurrent run setting used for data flow execution. Allows sinks with the same save order to be processed concurrently. Type: boolean (or Expression with resultType boolean)
        """
        return pulumi.get(self, "run_concurrently")

    @property
    @pulumi.getter
    def staging(self) -> Optional['outputs.DataFlowStagingInfoResponse']:
        """
        Staging info for execute data flow activity.
        """
        return pulumi.get(self, "staging")

    @property
    @pulumi.getter(name="traceLevel")
    def trace_level(self) -> Optional[Any]:
        """
        Trace level setting used for data flow monitoring output. Supported values are: 'coarse', 'fine', and 'none'. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "trace_level")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class ExecuteDataFlowActivityTypePropertiesResponseCompute(dict):
    """
    Compute properties for data flow activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "computeType":
            suggest = "compute_type"
        elif key == "coreCount":
            suggest = "core_count"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ExecuteDataFlowActivityTypePropertiesResponseCompute. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ExecuteDataFlowActivityTypePropertiesResponseCompute.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ExecuteDataFlowActivityTypePropertiesResponseCompute.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 compute_type: Optional[Any] = None,
                 core_count: Optional[Any] = None):
        """
        Compute properties for data flow activity.
        :param Any compute_type: Compute type of the cluster which will execute data flow job. Possible values include: 'General', 'MemoryOptimized', 'ComputeOptimized'. Type: string (or Expression with resultType string)
        :param Any core_count: Core count of the cluster which will execute data flow job. Supported values are: 8, 16, 32, 48, 80, 144 and 272. Type: integer (or Expression with resultType integer)
        """
        if compute_type is not None:
            pulumi.set(__self__, "compute_type", compute_type)
        if core_count is not None:
            pulumi.set(__self__, "core_count", core_count)

    @property
    @pulumi.getter(name="computeType")
    def compute_type(self) -> Optional[Any]:
        """
        Compute type of the cluster which will execute data flow job. Possible values include: 'General', 'MemoryOptimized', 'ComputeOptimized'. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "compute_type")

    @property
    @pulumi.getter(name="coreCount")
    def core_count(self) -> Optional[Any]:
        """
        Core count of the cluster which will execute data flow job. Supported values are: 8, 16, 32, 48, 80, 144 and 272. Type: integer (or Expression with resultType integer)
        """
        return pulumi.get(self, "core_count")


@pulumi.output_type
class ExecutePipelineActivityResponse(dict):
    """
    Execute pipeline activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dependsOn":
            suggest = "depends_on"
        elif key == "userProperties":
            suggest = "user_properties"
        elif key == "waitOnCompletion":
            suggest = "wait_on_completion"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ExecutePipelineActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ExecutePipelineActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ExecutePipelineActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 pipeline: 'outputs.PipelineReferenceResponse',
                 type: str,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 parameters: Optional[Mapping[str, Any]] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None,
                 wait_on_completion: Optional[bool] = None):
        """
        Execute pipeline activity.
        :param str name: Activity name.
        :param 'PipelineReferenceResponse' pipeline: Pipeline reference.
        :param str type: Type of activity.
               Expected value is 'ExecutePipeline'.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Mapping[str, Any] parameters: Pipeline parameters.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        :param bool wait_on_completion: Defines whether activity execution will wait for the dependent pipeline execution to finish. Default is false.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "pipeline", pipeline)
        pulumi.set(__self__, "type", 'ExecutePipeline')
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)
        if wait_on_completion is not None:
            pulumi.set(__self__, "wait_on_completion", wait_on_completion)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def pipeline(self) -> 'outputs.PipelineReferenceResponse':
        """
        Pipeline reference.
        """
        return pulumi.get(self, "pipeline")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'ExecutePipeline'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, Any]]:
        """
        Pipeline parameters.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")

    @property
    @pulumi.getter(name="waitOnCompletion")
    def wait_on_completion(self) -> Optional[bool]:
        """
        Defines whether activity execution will wait for the dependent pipeline execution to finish. Default is false.
        """
        return pulumi.get(self, "wait_on_completion")


@pulumi.output_type
class ExecuteSSISPackageActivityResponse(dict):
    """
    Execute SSIS package activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectVia":
            suggest = "connect_via"
        elif key == "packageLocation":
            suggest = "package_location"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "environmentPath":
            suggest = "environment_path"
        elif key == "executionCredential":
            suggest = "execution_credential"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "logLocation":
            suggest = "log_location"
        elif key == "loggingLevel":
            suggest = "logging_level"
        elif key == "packageConnectionManagers":
            suggest = "package_connection_managers"
        elif key == "packageParameters":
            suggest = "package_parameters"
        elif key == "projectConnectionManagers":
            suggest = "project_connection_managers"
        elif key == "projectParameters":
            suggest = "project_parameters"
        elif key == "propertyOverrides":
            suggest = "property_overrides"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ExecuteSSISPackageActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ExecuteSSISPackageActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ExecuteSSISPackageActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 connect_via: 'outputs.IntegrationRuntimeReferenceResponse',
                 name: str,
                 package_location: 'outputs.SSISPackageLocationResponse',
                 type: str,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 environment_path: Optional[Any] = None,
                 execution_credential: Optional['outputs.SSISExecutionCredentialResponse'] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 log_location: Optional['outputs.SSISLogLocationResponse'] = None,
                 logging_level: Optional[Any] = None,
                 package_connection_managers: Optional[Mapping[str, Mapping[str, 'outputs.SSISExecutionParameterResponse']]] = None,
                 package_parameters: Optional[Mapping[str, 'outputs.SSISExecutionParameterResponse']] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 project_connection_managers: Optional[Mapping[str, Mapping[str, 'outputs.SSISExecutionParameterResponse']]] = None,
                 project_parameters: Optional[Mapping[str, 'outputs.SSISExecutionParameterResponse']] = None,
                 property_overrides: Optional[Mapping[str, 'outputs.SSISPropertyOverrideResponse']] = None,
                 runtime: Optional[Any] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        Execute SSIS package activity.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str name: Activity name.
        :param 'SSISPackageLocationResponse' package_location: SSIS package location.
        :param str type: Type of activity.
               Expected value is 'ExecuteSSISPackage'.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Any environment_path: The environment path to execute the SSIS package. Type: string (or Expression with resultType string).
        :param 'SSISExecutionCredentialResponse' execution_credential: The package execution credential.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param 'SSISLogLocationResponse' log_location: SSIS package execution log location.
        :param Any logging_level: The logging level of SSIS package execution. Type: string (or Expression with resultType string).
        :param Mapping[str, Mapping[str, 'SSISExecutionParameterResponse']] package_connection_managers: The package level connection managers to execute the SSIS package.
        :param Mapping[str, 'SSISExecutionParameterResponse'] package_parameters: The package level parameters to execute the SSIS package.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param Mapping[str, Mapping[str, 'SSISExecutionParameterResponse']] project_connection_managers: The project level connection managers to execute the SSIS package.
        :param Mapping[str, 'SSISExecutionParameterResponse'] project_parameters: The project level parameters to execute the SSIS package.
        :param Mapping[str, 'SSISPropertyOverrideResponse'] property_overrides: The property overrides to execute the SSIS package.
        :param Any runtime: Specifies the runtime to execute SSIS package. The value should be "x86" or "x64". Type: string (or Expression with resultType string).
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "connect_via", connect_via)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "package_location", package_location)
        pulumi.set(__self__, "type", 'ExecuteSSISPackage')
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if environment_path is not None:
            pulumi.set(__self__, "environment_path", environment_path)
        if execution_credential is not None:
            pulumi.set(__self__, "execution_credential", execution_credential)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if log_location is not None:
            pulumi.set(__self__, "log_location", log_location)
        if logging_level is not None:
            pulumi.set(__self__, "logging_level", logging_level)
        if package_connection_managers is not None:
            pulumi.set(__self__, "package_connection_managers", package_connection_managers)
        if package_parameters is not None:
            pulumi.set(__self__, "package_parameters", package_parameters)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if project_connection_managers is not None:
            pulumi.set(__self__, "project_connection_managers", project_connection_managers)
        if project_parameters is not None:
            pulumi.set(__self__, "project_parameters", project_parameters)
        if property_overrides is not None:
            pulumi.set(__self__, "property_overrides", property_overrides)
        if runtime is not None:
            pulumi.set(__self__, "runtime", runtime)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> 'outputs.IntegrationRuntimeReferenceResponse':
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="packageLocation")
    def package_location(self) -> 'outputs.SSISPackageLocationResponse':
        """
        SSIS package location.
        """
        return pulumi.get(self, "package_location")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'ExecuteSSISPackage'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="environmentPath")
    def environment_path(self) -> Optional[Any]:
        """
        The environment path to execute the SSIS package. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "environment_path")

    @property
    @pulumi.getter(name="executionCredential")
    def execution_credential(self) -> Optional['outputs.SSISExecutionCredentialResponse']:
        """
        The package execution credential.
        """
        return pulumi.get(self, "execution_credential")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter(name="logLocation")
    def log_location(self) -> Optional['outputs.SSISLogLocationResponse']:
        """
        SSIS package execution log location.
        """
        return pulumi.get(self, "log_location")

    @property
    @pulumi.getter(name="loggingLevel")
    def logging_level(self) -> Optional[Any]:
        """
        The logging level of SSIS package execution. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "logging_level")

    @property
    @pulumi.getter(name="packageConnectionManagers")
    def package_connection_managers(self) -> Optional[Mapping[str, Mapping[str, 'outputs.SSISExecutionParameterResponse']]]:
        """
        The package level connection managers to execute the SSIS package.
        """
        return pulumi.get(self, "package_connection_managers")

    @property
    @pulumi.getter(name="packageParameters")
    def package_parameters(self) -> Optional[Mapping[str, 'outputs.SSISExecutionParameterResponse']]:
        """
        The package level parameters to execute the SSIS package.
        """
        return pulumi.get(self, "package_parameters")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter(name="projectConnectionManagers")
    def project_connection_managers(self) -> Optional[Mapping[str, Mapping[str, 'outputs.SSISExecutionParameterResponse']]]:
        """
        The project level connection managers to execute the SSIS package.
        """
        return pulumi.get(self, "project_connection_managers")

    @property
    @pulumi.getter(name="projectParameters")
    def project_parameters(self) -> Optional[Mapping[str, 'outputs.SSISExecutionParameterResponse']]:
        """
        The project level parameters to execute the SSIS package.
        """
        return pulumi.get(self, "project_parameters")

    @property
    @pulumi.getter(name="propertyOverrides")
    def property_overrides(self) -> Optional[Mapping[str, 'outputs.SSISPropertyOverrideResponse']]:
        """
        The property overrides to execute the SSIS package.
        """
        return pulumi.get(self, "property_overrides")

    @property
    @pulumi.getter
    def runtime(self) -> Optional[Any]:
        """
        Specifies the runtime to execute SSIS package. The value should be "x86" or "x64". Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "runtime")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class ExecuteWranglingDataflowActivityResponse(dict):
    """
    Execute power query activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dataFlow":
            suggest = "data_flow"
        elif key == "continueOnError":
            suggest = "continue_on_error"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "integrationRuntime":
            suggest = "integration_runtime"
        elif key == "runConcurrently":
            suggest = "run_concurrently"
        elif key == "traceLevel":
            suggest = "trace_level"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ExecuteWranglingDataflowActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ExecuteWranglingDataflowActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ExecuteWranglingDataflowActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 data_flow: 'outputs.DataFlowReferenceResponse',
                 name: str,
                 type: str,
                 compute: Optional['outputs.ExecuteDataFlowActivityTypePropertiesResponseCompute'] = None,
                 continue_on_error: Optional[Any] = None,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 integration_runtime: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 queries: Optional[Sequence['outputs.PowerQuerySinkMappingResponse']] = None,
                 run_concurrently: Optional[Any] = None,
                 sinks: Optional[Mapping[str, 'outputs.PowerQuerySinkResponse']] = None,
                 staging: Optional['outputs.DataFlowStagingInfoResponse'] = None,
                 trace_level: Optional[Any] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        Execute power query activity.
        :param 'DataFlowReferenceResponse' data_flow: Data flow reference.
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'ExecuteWranglingDataflow'.
        :param 'ExecuteDataFlowActivityTypePropertiesResponseCompute' compute: Compute properties for data flow activity.
        :param Any continue_on_error: Continue on error setting used for data flow execution. Enables processing to continue if a sink fails. Type: boolean (or Expression with resultType boolean)
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param 'IntegrationRuntimeReferenceResponse' integration_runtime: The integration runtime reference.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param Sequence['PowerQuerySinkMappingResponse'] queries: List of mapping for Power Query mashup query to sink dataset(s).
        :param Any run_concurrently: Concurrent run setting used for data flow execution. Allows sinks with the same save order to be processed concurrently. Type: boolean (or Expression with resultType boolean)
        :param Mapping[str, 'PowerQuerySinkResponse'] sinks: (Deprecated. Please use Queries). List of Power Query activity sinks mapped to a queryName.
        :param 'DataFlowStagingInfoResponse' staging: Staging info for execute data flow activity.
        :param Any trace_level: Trace level setting used for data flow monitoring output. Supported values are: 'coarse', 'fine', and 'none'. Type: string (or Expression with resultType string)
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "data_flow", data_flow)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'ExecuteWranglingDataflow')
        if compute is not None:
            pulumi.set(__self__, "compute", compute)
        if continue_on_error is not None:
            pulumi.set(__self__, "continue_on_error", continue_on_error)
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if integration_runtime is not None:
            pulumi.set(__self__, "integration_runtime", integration_runtime)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if queries is not None:
            pulumi.set(__self__, "queries", queries)
        if run_concurrently is not None:
            pulumi.set(__self__, "run_concurrently", run_concurrently)
        if sinks is not None:
            pulumi.set(__self__, "sinks", sinks)
        if staging is not None:
            pulumi.set(__self__, "staging", staging)
        if trace_level is not None:
            pulumi.set(__self__, "trace_level", trace_level)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter(name="dataFlow")
    def data_flow(self) -> 'outputs.DataFlowReferenceResponse':
        """
        Data flow reference.
        """
        return pulumi.get(self, "data_flow")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'ExecuteWranglingDataflow'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def compute(self) -> Optional['outputs.ExecuteDataFlowActivityTypePropertiesResponseCompute']:
        """
        Compute properties for data flow activity.
        """
        return pulumi.get(self, "compute")

    @property
    @pulumi.getter(name="continueOnError")
    def continue_on_error(self) -> Optional[Any]:
        """
        Continue on error setting used for data flow execution. Enables processing to continue if a sink fails. Type: boolean (or Expression with resultType boolean)
        """
        return pulumi.get(self, "continue_on_error")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="integrationRuntime")
    def integration_runtime(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "integration_runtime")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter
    def queries(self) -> Optional[Sequence['outputs.PowerQuerySinkMappingResponse']]:
        """
        List of mapping for Power Query mashup query to sink dataset(s).
        """
        return pulumi.get(self, "queries")

    @property
    @pulumi.getter(name="runConcurrently")
    def run_concurrently(self) -> Optional[Any]:
        """
        Concurrent run setting used for data flow execution. Allows sinks with the same save order to be processed concurrently. Type: boolean (or Expression with resultType boolean)
        """
        return pulumi.get(self, "run_concurrently")

    @property
    @pulumi.getter
    def sinks(self) -> Optional[Mapping[str, 'outputs.PowerQuerySinkResponse']]:
        """
        (Deprecated. Please use Queries). List of Power Query activity sinks mapped to a queryName.
        """
        return pulumi.get(self, "sinks")

    @property
    @pulumi.getter
    def staging(self) -> Optional['outputs.DataFlowStagingInfoResponse']:
        """
        Staging info for execute data flow activity.
        """
        return pulumi.get(self, "staging")

    @property
    @pulumi.getter(name="traceLevel")
    def trace_level(self) -> Optional[Any]:
        """
        Trace level setting used for data flow monitoring output. Supported values are: 'coarse', 'fine', and 'none'. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "trace_level")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class ExecutionActivityResponse(dict):
    """
    Base class for all execution activities.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dependsOn":
            suggest = "depends_on"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ExecutionActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ExecutionActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ExecutionActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 type: str,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        Base class for all execution activities.
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'Execution'.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'Execution')
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'Execution'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class ExpressionResponse(dict):
    """
    Azure Data Factory expression definition.
    """
    def __init__(__self__, *,
                 type: str,
                 value: str):
        """
        Azure Data Factory expression definition.
        :param str type: Expression type.
        :param str value: Expression value.
        """
        pulumi.set(__self__, "type", type)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Expression type.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        Expression value.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class FactoryGitHubConfigurationResponse(dict):
    """
    Factory's GitHub repo information.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountName":
            suggest = "account_name"
        elif key == "collaborationBranch":
            suggest = "collaboration_branch"
        elif key == "repositoryName":
            suggest = "repository_name"
        elif key == "rootFolder":
            suggest = "root_folder"
        elif key == "clientId":
            suggest = "client_id"
        elif key == "clientSecret":
            suggest = "client_secret"
        elif key == "hostName":
            suggest = "host_name"
        elif key == "lastCommitId":
            suggest = "last_commit_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in FactoryGitHubConfigurationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        FactoryGitHubConfigurationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        FactoryGitHubConfigurationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 account_name: str,
                 collaboration_branch: str,
                 repository_name: str,
                 root_folder: str,
                 type: str,
                 client_id: Optional[str] = None,
                 client_secret: Optional['outputs.GitHubClientSecretResponse'] = None,
                 host_name: Optional[str] = None,
                 last_commit_id: Optional[str] = None):
        """
        Factory's GitHub repo information.
        :param str account_name: Account name.
        :param str collaboration_branch: Collaboration branch.
        :param str repository_name: Repository name.
        :param str root_folder: Root folder.
        :param str type: Type of repo configuration.
               Expected value is 'FactoryGitHubConfiguration'.
        :param str client_id: GitHub bring your own app client id.
        :param 'GitHubClientSecretResponse' client_secret: GitHub bring your own app client secret information.
        :param str host_name: GitHub Enterprise host name. For example: https://github.mydomain.com
        :param str last_commit_id: Last commit id.
        """
        pulumi.set(__self__, "account_name", account_name)
        pulumi.set(__self__, "collaboration_branch", collaboration_branch)
        pulumi.set(__self__, "repository_name", repository_name)
        pulumi.set(__self__, "root_folder", root_folder)
        pulumi.set(__self__, "type", 'FactoryGitHubConfiguration')
        if client_id is not None:
            pulumi.set(__self__, "client_id", client_id)
        if client_secret is not None:
            pulumi.set(__self__, "client_secret", client_secret)
        if host_name is not None:
            pulumi.set(__self__, "host_name", host_name)
        if last_commit_id is not None:
            pulumi.set(__self__, "last_commit_id", last_commit_id)

    @property
    @pulumi.getter(name="accountName")
    def account_name(self) -> str:
        """
        Account name.
        """
        return pulumi.get(self, "account_name")

    @property
    @pulumi.getter(name="collaborationBranch")
    def collaboration_branch(self) -> str:
        """
        Collaboration branch.
        """
        return pulumi.get(self, "collaboration_branch")

    @property
    @pulumi.getter(name="repositoryName")
    def repository_name(self) -> str:
        """
        Repository name.
        """
        return pulumi.get(self, "repository_name")

    @property
    @pulumi.getter(name="rootFolder")
    def root_folder(self) -> str:
        """
        Root folder.
        """
        return pulumi.get(self, "root_folder")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of repo configuration.
        Expected value is 'FactoryGitHubConfiguration'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="clientId")
    def client_id(self) -> Optional[str]:
        """
        GitHub bring your own app client id.
        """
        return pulumi.get(self, "client_id")

    @property
    @pulumi.getter(name="clientSecret")
    def client_secret(self) -> Optional['outputs.GitHubClientSecretResponse']:
        """
        GitHub bring your own app client secret information.
        """
        return pulumi.get(self, "client_secret")

    @property
    @pulumi.getter(name="hostName")
    def host_name(self) -> Optional[str]:
        """
        GitHub Enterprise host name. For example: https://github.mydomain.com
        """
        return pulumi.get(self, "host_name")

    @property
    @pulumi.getter(name="lastCommitId")
    def last_commit_id(self) -> Optional[str]:
        """
        Last commit id.
        """
        return pulumi.get(self, "last_commit_id")


@pulumi.output_type
class FactoryIdentityResponse(dict):
    """
    Identity properties of the factory resource.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "principalId":
            suggest = "principal_id"
        elif key == "tenantId":
            suggest = "tenant_id"
        elif key == "userAssignedIdentities":
            suggest = "user_assigned_identities"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in FactoryIdentityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        FactoryIdentityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        FactoryIdentityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 principal_id: str,
                 tenant_id: str,
                 type: str,
                 user_assigned_identities: Optional[Mapping[str, Any]] = None):
        """
        Identity properties of the factory resource.
        :param str principal_id: The principal id of the identity.
        :param str tenant_id: The client tenant id of the identity.
        :param str type: The identity type.
        :param Mapping[str, Any] user_assigned_identities: List of user assigned identities for the factory.
        """
        pulumi.set(__self__, "principal_id", principal_id)
        pulumi.set(__self__, "tenant_id", tenant_id)
        pulumi.set(__self__, "type", type)
        if user_assigned_identities is not None:
            pulumi.set(__self__, "user_assigned_identities", user_assigned_identities)

    @property
    @pulumi.getter(name="principalId")
    def principal_id(self) -> str:
        """
        The principal id of the identity.
        """
        return pulumi.get(self, "principal_id")

    @property
    @pulumi.getter(name="tenantId")
    def tenant_id(self) -> str:
        """
        The client tenant id of the identity.
        """
        return pulumi.get(self, "tenant_id")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The identity type.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="userAssignedIdentities")
    def user_assigned_identities(self) -> Optional[Mapping[str, Any]]:
        """
        List of user assigned identities for the factory.
        """
        return pulumi.get(self, "user_assigned_identities")


@pulumi.output_type
class FactoryVSTSConfigurationResponse(dict):
    """
    Factory's VSTS repo information.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountName":
            suggest = "account_name"
        elif key == "collaborationBranch":
            suggest = "collaboration_branch"
        elif key == "projectName":
            suggest = "project_name"
        elif key == "repositoryName":
            suggest = "repository_name"
        elif key == "rootFolder":
            suggest = "root_folder"
        elif key == "lastCommitId":
            suggest = "last_commit_id"
        elif key == "tenantId":
            suggest = "tenant_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in FactoryVSTSConfigurationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        FactoryVSTSConfigurationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        FactoryVSTSConfigurationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 account_name: str,
                 collaboration_branch: str,
                 project_name: str,
                 repository_name: str,
                 root_folder: str,
                 type: str,
                 last_commit_id: Optional[str] = None,
                 tenant_id: Optional[str] = None):
        """
        Factory's VSTS repo information.
        :param str account_name: Account name.
        :param str collaboration_branch: Collaboration branch.
        :param str project_name: VSTS project name.
        :param str repository_name: Repository name.
        :param str root_folder: Root folder.
        :param str type: Type of repo configuration.
               Expected value is 'FactoryVSTSConfiguration'.
        :param str last_commit_id: Last commit id.
        :param str tenant_id: VSTS tenant id.
        """
        pulumi.set(__self__, "account_name", account_name)
        pulumi.set(__self__, "collaboration_branch", collaboration_branch)
        pulumi.set(__self__, "project_name", project_name)
        pulumi.set(__self__, "repository_name", repository_name)
        pulumi.set(__self__, "root_folder", root_folder)
        pulumi.set(__self__, "type", 'FactoryVSTSConfiguration')
        if last_commit_id is not None:
            pulumi.set(__self__, "last_commit_id", last_commit_id)
        if tenant_id is not None:
            pulumi.set(__self__, "tenant_id", tenant_id)

    @property
    @pulumi.getter(name="accountName")
    def account_name(self) -> str:
        """
        Account name.
        """
        return pulumi.get(self, "account_name")

    @property
    @pulumi.getter(name="collaborationBranch")
    def collaboration_branch(self) -> str:
        """
        Collaboration branch.
        """
        return pulumi.get(self, "collaboration_branch")

    @property
    @pulumi.getter(name="projectName")
    def project_name(self) -> str:
        """
        VSTS project name.
        """
        return pulumi.get(self, "project_name")

    @property
    @pulumi.getter(name="repositoryName")
    def repository_name(self) -> str:
        """
        Repository name.
        """
        return pulumi.get(self, "repository_name")

    @property
    @pulumi.getter(name="rootFolder")
    def root_folder(self) -> str:
        """
        Root folder.
        """
        return pulumi.get(self, "root_folder")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of repo configuration.
        Expected value is 'FactoryVSTSConfiguration'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="lastCommitId")
    def last_commit_id(self) -> Optional[str]:
        """
        Last commit id.
        """
        return pulumi.get(self, "last_commit_id")

    @property
    @pulumi.getter(name="tenantId")
    def tenant_id(self) -> Optional[str]:
        """
        VSTS tenant id.
        """
        return pulumi.get(self, "tenant_id")


@pulumi.output_type
class FailActivityResponse(dict):
    """
    This activity will fail within its own scope and output a custom error message and error code. The error message and code can provided either as a string literal or as an expression that can be evaluated to a string at runtime. The activity scope can be the whole pipeline or a control activity (e.g. foreach, switch, until), if the fail activity is contained in it.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "errorCode":
            suggest = "error_code"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in FailActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        FailActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        FailActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 error_code: Any,
                 message: Any,
                 name: str,
                 type: str,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        This activity will fail within its own scope and output a custom error message and error code. The error message and code can provided either as a string literal or as an expression that can be evaluated to a string at runtime. The activity scope can be the whole pipeline or a control activity (e.g. foreach, switch, until), if the fail activity is contained in it.
        :param Any error_code: The error code that categorizes the error type of the Fail activity. It can be dynamic content that's evaluated to a non empty/blank string at runtime. Type: string (or Expression with resultType string).
        :param Any message: The error message that surfaced in the Fail activity. It can be dynamic content that's evaluated to a non empty/blank string at runtime. Type: string (or Expression with resultType string).
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'Fail'.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "error_code", error_code)
        pulumi.set(__self__, "message", message)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'Fail')
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter(name="errorCode")
    def error_code(self) -> Any:
        """
        The error code that categorizes the error type of the Fail activity. It can be dynamic content that's evaluated to a non empty/blank string at runtime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "error_code")

    @property
    @pulumi.getter
    def message(self) -> Any:
        """
        The error message that surfaced in the Fail activity. It can be dynamic content that's evaluated to a non empty/blank string at runtime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "message")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'Fail'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class FileServerLinkedServiceResponse(dict):
    """
    File system linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "userId":
            suggest = "user_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in FileServerLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        FileServerLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        FileServerLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 host: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 user_id: Optional[Any] = None):
        """
        File system linked service.
        :param Any host: Host name of the server. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'FileServer'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password to logon the server.
        :param Any user_id: User ID to logon the server. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "host", host)
        pulumi.set(__self__, "type", 'FileServer')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if user_id is not None:
            pulumi.set(__self__, "user_id", user_id)

    @property
    @pulumi.getter
    def host(self) -> Any:
        """
        Host name of the server. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "host")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'FileServer'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        Password to logon the server.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="userId")
    def user_id(self) -> Optional[Any]:
        """
        User ID to logon the server. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "user_id")


@pulumi.output_type
class FileServerLocationResponse(dict):
    """
    The location of file server dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "fileName":
            suggest = "file_name"
        elif key == "folderPath":
            suggest = "folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in FileServerLocationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        FileServerLocationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        FileServerLocationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 file_name: Optional[Any] = None,
                 folder_path: Optional[Any] = None):
        """
        The location of file server dataset.
        :param str type: Type of dataset storage location.
               Expected value is 'FileServerLocation'.
        :param Any file_name: Specify the file name of dataset. Type: string (or Expression with resultType string).
        :param Any folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string)
        """
        pulumi.set(__self__, "type", 'FileServerLocation')
        if file_name is not None:
            pulumi.set(__self__, "file_name", file_name)
        if folder_path is not None:
            pulumi.set(__self__, "folder_path", folder_path)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset storage location.
        Expected value is 'FileServerLocation'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="fileName")
    def file_name(self) -> Optional[Any]:
        """
        Specify the file name of dataset. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_name")

    @property
    @pulumi.getter(name="folderPath")
    def folder_path(self) -> Optional[Any]:
        """
        Specify the folder path of dataset. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "folder_path")


@pulumi.output_type
class FileServerReadSettingsResponse(dict):
    """
    File server read settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deleteFilesAfterCompletion":
            suggest = "delete_files_after_completion"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "enablePartitionDiscovery":
            suggest = "enable_partition_discovery"
        elif key == "fileFilter":
            suggest = "file_filter"
        elif key == "fileListPath":
            suggest = "file_list_path"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "modifiedDatetimeEnd":
            suggest = "modified_datetime_end"
        elif key == "modifiedDatetimeStart":
            suggest = "modified_datetime_start"
        elif key == "partitionRootPath":
            suggest = "partition_root_path"
        elif key == "wildcardFileName":
            suggest = "wildcard_file_name"
        elif key == "wildcardFolderPath":
            suggest = "wildcard_folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in FileServerReadSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        FileServerReadSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        FileServerReadSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 delete_files_after_completion: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 enable_partition_discovery: Optional[bool] = None,
                 file_filter: Optional[Any] = None,
                 file_list_path: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 modified_datetime_end: Optional[Any] = None,
                 modified_datetime_start: Optional[Any] = None,
                 partition_root_path: Optional[Any] = None,
                 recursive: Optional[Any] = None,
                 wildcard_file_name: Optional[Any] = None,
                 wildcard_folder_path: Optional[Any] = None):
        """
        File server read settings.
        :param str type: The read setting type.
               Expected value is 'FileServerReadSettings'.
        :param Any delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param bool enable_partition_discovery: Indicates whether to enable partition discovery.
        :param Any file_filter: Specify a filter to be used to select a subset of files in the folderPath rather than all files. Type: string (or Expression with resultType string).
        :param Any file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string).
        :param Any modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string).
        :param Any partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        :param Any recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        :param Any wildcard_file_name: FileServer wildcardFileName. Type: string (or Expression with resultType string).
        :param Any wildcard_folder_path: FileServer wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'FileServerReadSettings')
        if delete_files_after_completion is not None:
            pulumi.set(__self__, "delete_files_after_completion", delete_files_after_completion)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if enable_partition_discovery is not None:
            pulumi.set(__self__, "enable_partition_discovery", enable_partition_discovery)
        if file_filter is not None:
            pulumi.set(__self__, "file_filter", file_filter)
        if file_list_path is not None:
            pulumi.set(__self__, "file_list_path", file_list_path)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if modified_datetime_end is not None:
            pulumi.set(__self__, "modified_datetime_end", modified_datetime_end)
        if modified_datetime_start is not None:
            pulumi.set(__self__, "modified_datetime_start", modified_datetime_start)
        if partition_root_path is not None:
            pulumi.set(__self__, "partition_root_path", partition_root_path)
        if recursive is not None:
            pulumi.set(__self__, "recursive", recursive)
        if wildcard_file_name is not None:
            pulumi.set(__self__, "wildcard_file_name", wildcard_file_name)
        if wildcard_folder_path is not None:
            pulumi.set(__self__, "wildcard_folder_path", wildcard_folder_path)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The read setting type.
        Expected value is 'FileServerReadSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="deleteFilesAfterCompletion")
    def delete_files_after_completion(self) -> Optional[Any]:
        """
        Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "delete_files_after_completion")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="enablePartitionDiscovery")
    def enable_partition_discovery(self) -> Optional[bool]:
        """
        Indicates whether to enable partition discovery.
        """
        return pulumi.get(self, "enable_partition_discovery")

    @property
    @pulumi.getter(name="fileFilter")
    def file_filter(self) -> Optional[Any]:
        """
        Specify a filter to be used to select a subset of files in the folderPath rather than all files. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_filter")

    @property
    @pulumi.getter(name="fileListPath")
    def file_list_path(self) -> Optional[Any]:
        """
        Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_list_path")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="modifiedDatetimeEnd")
    def modified_datetime_end(self) -> Optional[Any]:
        """
        The end of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_end")

    @property
    @pulumi.getter(name="modifiedDatetimeStart")
    def modified_datetime_start(self) -> Optional[Any]:
        """
        The start of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_start")

    @property
    @pulumi.getter(name="partitionRootPath")
    def partition_root_path(self) -> Optional[Any]:
        """
        Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_root_path")

    @property
    @pulumi.getter
    def recursive(self) -> Optional[Any]:
        """
        If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "recursive")

    @property
    @pulumi.getter(name="wildcardFileName")
    def wildcard_file_name(self) -> Optional[Any]:
        """
        FileServer wildcardFileName. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_file_name")

    @property
    @pulumi.getter(name="wildcardFolderPath")
    def wildcard_folder_path(self) -> Optional[Any]:
        """
        FileServer wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_folder_path")


@pulumi.output_type
class FileServerWriteSettingsResponse(dict):
    """
    File server write settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "copyBehavior":
            suggest = "copy_behavior"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in FileServerWriteSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        FileServerWriteSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        FileServerWriteSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 copy_behavior: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None):
        """
        File server write settings.
        :param str type: The write setting type.
               Expected value is 'FileServerWriteSettings'.
        :param Any copy_behavior: The type of copy behavior for copy sink.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        pulumi.set(__self__, "type", 'FileServerWriteSettings')
        if copy_behavior is not None:
            pulumi.set(__self__, "copy_behavior", copy_behavior)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The write setting type.
        Expected value is 'FileServerWriteSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="copyBehavior")
    def copy_behavior(self) -> Optional[Any]:
        """
        The type of copy behavior for copy sink.
        """
        return pulumi.get(self, "copy_behavior")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")


@pulumi.output_type
class FileShareDatasetResponse(dict):
    """
    An on-premises file system dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "fileFilter":
            suggest = "file_filter"
        elif key == "fileName":
            suggest = "file_name"
        elif key == "folderPath":
            suggest = "folder_path"
        elif key == "modifiedDatetimeEnd":
            suggest = "modified_datetime_end"
        elif key == "modifiedDatetimeStart":
            suggest = "modified_datetime_start"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in FileShareDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        FileShareDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        FileShareDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 compression: Optional['outputs.DatasetCompressionResponse'] = None,
                 description: Optional[str] = None,
                 file_filter: Optional[Any] = None,
                 file_name: Optional[Any] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 folder_path: Optional[Any] = None,
                 format: Optional[Any] = None,
                 modified_datetime_end: Optional[Any] = None,
                 modified_datetime_start: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        An on-premises file system dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'FileShare'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param 'DatasetCompressionResponse' compression: The data compression method used for the file system.
        :param str description: Dataset description.
        :param Any file_filter: Specify a filter to be used to select a subset of files in the folderPath rather than all files. Type: string (or Expression with resultType string).
        :param Any file_name: The name of the on-premises file system. Type: string (or Expression with resultType string).
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Any folder_path: The path of the on-premises file system. Type: string (or Expression with resultType string).
        :param Union['AvroFormatResponse', 'JsonFormatResponse', 'OrcFormatResponse', 'ParquetFormatResponse', 'TextFormatResponse'] format: The format of the files.
        :param Any modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string).
        :param Any modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'FileShare')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if compression is not None:
            pulumi.set(__self__, "compression", compression)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if file_filter is not None:
            pulumi.set(__self__, "file_filter", file_filter)
        if file_name is not None:
            pulumi.set(__self__, "file_name", file_name)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if folder_path is not None:
            pulumi.set(__self__, "folder_path", folder_path)
        if format is not None:
            pulumi.set(__self__, "format", format)
        if modified_datetime_end is not None:
            pulumi.set(__self__, "modified_datetime_end", modified_datetime_end)
        if modified_datetime_start is not None:
            pulumi.set(__self__, "modified_datetime_start", modified_datetime_start)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'FileShare'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def compression(self) -> Optional['outputs.DatasetCompressionResponse']:
        """
        The data compression method used for the file system.
        """
        return pulumi.get(self, "compression")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="fileFilter")
    def file_filter(self) -> Optional[Any]:
        """
        Specify a filter to be used to select a subset of files in the folderPath rather than all files. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_filter")

    @property
    @pulumi.getter(name="fileName")
    def file_name(self) -> Optional[Any]:
        """
        The name of the on-premises file system. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_name")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter(name="folderPath")
    def folder_path(self) -> Optional[Any]:
        """
        The path of the on-premises file system. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "folder_path")

    @property
    @pulumi.getter
    def format(self) -> Optional[Any]:
        """
        The format of the files.
        """
        return pulumi.get(self, "format")

    @property
    @pulumi.getter(name="modifiedDatetimeEnd")
    def modified_datetime_end(self) -> Optional[Any]:
        """
        The end of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_end")

    @property
    @pulumi.getter(name="modifiedDatetimeStart")
    def modified_datetime_start(self) -> Optional[Any]:
        """
        The start of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_start")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class FileSystemSinkResponse(dict):
    """
    A copy activity file system sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "copyBehavior":
            suggest = "copy_behavior"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in FileSystemSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        FileSystemSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        FileSystemSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 copy_behavior: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity file system sink.
        :param str type: Copy sink type.
               Expected value is 'FileSystemSink'.
        :param Any copy_behavior: The type of copy behavior for copy sink.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'FileSystemSink')
        if copy_behavior is not None:
            pulumi.set(__self__, "copy_behavior", copy_behavior)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'FileSystemSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="copyBehavior")
    def copy_behavior(self) -> Optional[Any]:
        """
        The type of copy behavior for copy sink.
        """
        return pulumi.get(self, "copy_behavior")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class FileSystemSourceResponse(dict):
    """
    A copy activity file system source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in FileSystemSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        FileSystemSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        FileSystemSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 recursive: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity file system source.
        :param str type: Copy source type.
               Expected value is 'FileSystemSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'FileSystemSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if recursive is not None:
            pulumi.set(__self__, "recursive", recursive)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'FileSystemSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def recursive(self) -> Optional[Any]:
        """
        If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "recursive")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class FilterActivityResponse(dict):
    """
    Filter and return results from input array based on the conditions.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dependsOn":
            suggest = "depends_on"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in FilterActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        FilterActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        FilterActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 condition: 'outputs.ExpressionResponse',
                 items: 'outputs.ExpressionResponse',
                 name: str,
                 type: str,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        Filter and return results from input array based on the conditions.
        :param 'ExpressionResponse' condition: Condition to be used for filtering the input.
        :param 'ExpressionResponse' items: Input array on which filter should be applied.
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'Filter'.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "condition", condition)
        pulumi.set(__self__, "items", items)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'Filter')
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter
    def condition(self) -> 'outputs.ExpressionResponse':
        """
        Condition to be used for filtering the input.
        """
        return pulumi.get(self, "condition")

    @property
    @pulumi.getter
    def items(self) -> 'outputs.ExpressionResponse':
        """
        Input array on which filter should be applied.
        """
        return pulumi.get(self, "items")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'Filter'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class FlowletResponse(dict):
    """
    Data flow flowlet
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "scriptLines":
            suggest = "script_lines"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in FlowletResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        FlowletResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        FlowletResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DataFlowResponseFolder'] = None,
                 script: Optional[str] = None,
                 script_lines: Optional[Sequence[str]] = None,
                 sinks: Optional[Sequence['outputs.DataFlowSinkResponse']] = None,
                 sources: Optional[Sequence['outputs.DataFlowSourceResponse']] = None,
                 transformations: Optional[Sequence['outputs.TransformationResponse']] = None):
        """
        Data flow flowlet
        :param str type: Type of data flow.
               Expected value is 'Flowlet'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the data flow.
        :param str description: The description of the data flow.
        :param 'DataFlowResponseFolder' folder: The folder that this data flow is in. If not specified, Data flow will appear at the root level.
        :param str script: Flowlet script.
        :param Sequence[str] script_lines: Flowlet script lines.
        :param Sequence['DataFlowSinkResponse'] sinks: List of sinks in Flowlet.
        :param Sequence['DataFlowSourceResponse'] sources: List of sources in Flowlet.
        :param Sequence['TransformationResponse'] transformations: List of transformations in Flowlet.
        """
        pulumi.set(__self__, "type", 'Flowlet')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if script is not None:
            pulumi.set(__self__, "script", script)
        if script_lines is not None:
            pulumi.set(__self__, "script_lines", script_lines)
        if sinks is not None:
            pulumi.set(__self__, "sinks", sinks)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if transformations is not None:
            pulumi.set(__self__, "transformations", transformations)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of data flow.
        Expected value is 'Flowlet'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the data flow.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        The description of the data flow.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DataFlowResponseFolder']:
        """
        The folder that this data flow is in. If not specified, Data flow will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def script(self) -> Optional[str]:
        """
        Flowlet script.
        """
        return pulumi.get(self, "script")

    @property
    @pulumi.getter(name="scriptLines")
    def script_lines(self) -> Optional[Sequence[str]]:
        """
        Flowlet script lines.
        """
        return pulumi.get(self, "script_lines")

    @property
    @pulumi.getter
    def sinks(self) -> Optional[Sequence['outputs.DataFlowSinkResponse']]:
        """
        List of sinks in Flowlet.
        """
        return pulumi.get(self, "sinks")

    @property
    @pulumi.getter
    def sources(self) -> Optional[Sequence['outputs.DataFlowSourceResponse']]:
        """
        List of sources in Flowlet.
        """
        return pulumi.get(self, "sources")

    @property
    @pulumi.getter
    def transformations(self) -> Optional[Sequence['outputs.TransformationResponse']]:
        """
        List of transformations in Flowlet.
        """
        return pulumi.get(self, "transformations")


@pulumi.output_type
class ForEachActivityResponse(dict):
    """
    This activity is used for iterating over a collection and execute given activities.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "batchCount":
            suggest = "batch_count"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "isSequential":
            suggest = "is_sequential"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ForEachActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ForEachActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ForEachActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 activities: Sequence[Any],
                 items: 'outputs.ExpressionResponse',
                 name: str,
                 type: str,
                 batch_count: Optional[int] = None,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 is_sequential: Optional[bool] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        This activity is used for iterating over a collection and execute given activities.
        :param Sequence[Union['AppendVariableActivityResponse', 'AzureDataExplorerCommandActivityResponse', 'AzureFunctionActivityResponse', 'AzureMLBatchExecutionActivityResponse', 'AzureMLExecutePipelineActivityResponse', 'AzureMLUpdateResourceActivityResponse', 'ControlActivityResponse', 'CopyActivityResponse', 'CustomActivityResponse', 'DataLakeAnalyticsUSQLActivityResponse', 'DatabricksNotebookActivityResponse', 'DatabricksSparkJarActivityResponse', 'DatabricksSparkPythonActivityResponse', 'DeleteActivityResponse', 'ExecuteDataFlowActivityResponse', 'ExecutePipelineActivityResponse', 'ExecuteSSISPackageActivityResponse', 'ExecuteWranglingDataflowActivityResponse', 'ExecutionActivityResponse', 'FailActivityResponse', 'FilterActivityResponse', 'ForEachActivityResponse', 'GetMetadataActivityResponse', 'HDInsightHiveActivityResponse', 'HDInsightMapReduceActivityResponse', 'HDInsightPigActivityResponse', 'HDInsightSparkActivityResponse', 'HDInsightStreamingActivityResponse', 'IfConditionActivityResponse', 'LookupActivityResponse', 'ScriptActivityResponse', 'SetVariableActivityResponse', 'SqlServerStoredProcedureActivityResponse', 'SwitchActivityResponse', 'UntilActivityResponse', 'ValidationActivityResponse', 'WaitActivityResponse', 'WebActivityResponse', 'WebHookActivityResponse']] activities: List of activities to execute .
        :param 'ExpressionResponse' items: Collection to iterate.
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'ForEach'.
        :param int batch_count: Batch count to be used for controlling the number of parallel execution (when isSequential is set to false).
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param bool is_sequential: Should the loop be executed in sequence or in parallel (max 50)
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "activities", activities)
        pulumi.set(__self__, "items", items)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'ForEach')
        if batch_count is not None:
            pulumi.set(__self__, "batch_count", batch_count)
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if is_sequential is not None:
            pulumi.set(__self__, "is_sequential", is_sequential)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter
    def activities(self) -> Sequence[Any]:
        """
        List of activities to execute .
        """
        return pulumi.get(self, "activities")

    @property
    @pulumi.getter
    def items(self) -> 'outputs.ExpressionResponse':
        """
        Collection to iterate.
        """
        return pulumi.get(self, "items")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'ForEach'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="batchCount")
    def batch_count(self) -> Optional[int]:
        """
        Batch count to be used for controlling the number of parallel execution (when isSequential is set to false).
        """
        return pulumi.get(self, "batch_count")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="isSequential")
    def is_sequential(self) -> Optional[bool]:
        """
        Should the loop be executed in sequence or in parallel (max 50)
        """
        return pulumi.get(self, "is_sequential")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class FtpReadSettingsResponse(dict):
    """
    Ftp read settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deleteFilesAfterCompletion":
            suggest = "delete_files_after_completion"
        elif key == "disableChunking":
            suggest = "disable_chunking"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "enablePartitionDiscovery":
            suggest = "enable_partition_discovery"
        elif key == "fileListPath":
            suggest = "file_list_path"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "partitionRootPath":
            suggest = "partition_root_path"
        elif key == "useBinaryTransfer":
            suggest = "use_binary_transfer"
        elif key == "wildcardFileName":
            suggest = "wildcard_file_name"
        elif key == "wildcardFolderPath":
            suggest = "wildcard_folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in FtpReadSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        FtpReadSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        FtpReadSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 delete_files_after_completion: Optional[Any] = None,
                 disable_chunking: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 enable_partition_discovery: Optional[bool] = None,
                 file_list_path: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 partition_root_path: Optional[Any] = None,
                 recursive: Optional[Any] = None,
                 use_binary_transfer: Optional[bool] = None,
                 wildcard_file_name: Optional[Any] = None,
                 wildcard_folder_path: Optional[Any] = None):
        """
        Ftp read settings.
        :param str type: The read setting type.
               Expected value is 'FtpReadSettings'.
        :param Any delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any disable_chunking: If true, disable parallel reading within each file. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param bool enable_partition_discovery: Indicates whether to enable partition discovery.
        :param Any file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        :param Any recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        :param bool use_binary_transfer: Specify whether to use binary transfer mode for FTP stores.
        :param Any wildcard_file_name: Ftp wildcardFileName. Type: string (or Expression with resultType string).
        :param Any wildcard_folder_path: Ftp wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'FtpReadSettings')
        if delete_files_after_completion is not None:
            pulumi.set(__self__, "delete_files_after_completion", delete_files_after_completion)
        if disable_chunking is not None:
            pulumi.set(__self__, "disable_chunking", disable_chunking)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if enable_partition_discovery is not None:
            pulumi.set(__self__, "enable_partition_discovery", enable_partition_discovery)
        if file_list_path is not None:
            pulumi.set(__self__, "file_list_path", file_list_path)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if partition_root_path is not None:
            pulumi.set(__self__, "partition_root_path", partition_root_path)
        if recursive is not None:
            pulumi.set(__self__, "recursive", recursive)
        if use_binary_transfer is not None:
            pulumi.set(__self__, "use_binary_transfer", use_binary_transfer)
        if wildcard_file_name is not None:
            pulumi.set(__self__, "wildcard_file_name", wildcard_file_name)
        if wildcard_folder_path is not None:
            pulumi.set(__self__, "wildcard_folder_path", wildcard_folder_path)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The read setting type.
        Expected value is 'FtpReadSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="deleteFilesAfterCompletion")
    def delete_files_after_completion(self) -> Optional[Any]:
        """
        Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "delete_files_after_completion")

    @property
    @pulumi.getter(name="disableChunking")
    def disable_chunking(self) -> Optional[Any]:
        """
        If true, disable parallel reading within each file. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_chunking")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="enablePartitionDiscovery")
    def enable_partition_discovery(self) -> Optional[bool]:
        """
        Indicates whether to enable partition discovery.
        """
        return pulumi.get(self, "enable_partition_discovery")

    @property
    @pulumi.getter(name="fileListPath")
    def file_list_path(self) -> Optional[Any]:
        """
        Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_list_path")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="partitionRootPath")
    def partition_root_path(self) -> Optional[Any]:
        """
        Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_root_path")

    @property
    @pulumi.getter
    def recursive(self) -> Optional[Any]:
        """
        If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "recursive")

    @property
    @pulumi.getter(name="useBinaryTransfer")
    def use_binary_transfer(self) -> Optional[bool]:
        """
        Specify whether to use binary transfer mode for FTP stores.
        """
        return pulumi.get(self, "use_binary_transfer")

    @property
    @pulumi.getter(name="wildcardFileName")
    def wildcard_file_name(self) -> Optional[Any]:
        """
        Ftp wildcardFileName. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_file_name")

    @property
    @pulumi.getter(name="wildcardFolderPath")
    def wildcard_folder_path(self) -> Optional[Any]:
        """
        Ftp wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_folder_path")


@pulumi.output_type
class FtpServerLinkedServiceResponse(dict):
    """
    A FTP server Linked Service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "enableServerCertificateValidation":
            suggest = "enable_server_certificate_validation"
        elif key == "enableSsl":
            suggest = "enable_ssl"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "userName":
            suggest = "user_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in FtpServerLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        FtpServerLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        FtpServerLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 host: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 authentication_type: Optional[str] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 enable_server_certificate_validation: Optional[Any] = None,
                 enable_ssl: Optional[Any] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 port: Optional[Any] = None,
                 user_name: Optional[Any] = None):
        """
        A FTP server Linked Service.
        :param Any host: Host name of the FTP server. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'FtpServer'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param str authentication_type: The authentication type to be used to connect to the FTP server.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any enable_server_certificate_validation: If true, validate the FTP server SSL certificate when connect over SSL/TLS channel. Default value is true. Type: boolean (or Expression with resultType boolean).
        :param Any enable_ssl: If true, connect to the FTP server over SSL/TLS channel. Default value is true. Type: boolean (or Expression with resultType boolean).
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password to logon the FTP server.
        :param Any port: The TCP port number that the FTP server uses to listen for client connections. Default value is 21. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any user_name: Username to logon the FTP server. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "host", host)
        pulumi.set(__self__, "type", 'FtpServer')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if authentication_type is not None:
            pulumi.set(__self__, "authentication_type", authentication_type)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if enable_server_certificate_validation is not None:
            pulumi.set(__self__, "enable_server_certificate_validation", enable_server_certificate_validation)
        if enable_ssl is not None:
            pulumi.set(__self__, "enable_ssl", enable_ssl)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if user_name is not None:
            pulumi.set(__self__, "user_name", user_name)

    @property
    @pulumi.getter
    def host(self) -> Any:
        """
        Host name of the FTP server. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "host")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'FtpServer'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> Optional[str]:
        """
        The authentication type to be used to connect to the FTP server.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="enableServerCertificateValidation")
    def enable_server_certificate_validation(self) -> Optional[Any]:
        """
        If true, validate the FTP server SSL certificate when connect over SSL/TLS channel. Default value is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "enable_server_certificate_validation")

    @property
    @pulumi.getter(name="enableSsl")
    def enable_ssl(self) -> Optional[Any]:
        """
        If true, connect to the FTP server over SSL/TLS channel. Default value is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "enable_ssl")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        Password to logon the FTP server.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def port(self) -> Optional[Any]:
        """
        The TCP port number that the FTP server uses to listen for client connections. Default value is 21. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "port")

    @property
    @pulumi.getter(name="userName")
    def user_name(self) -> Optional[Any]:
        """
        Username to logon the FTP server. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "user_name")


@pulumi.output_type
class FtpServerLocationResponse(dict):
    """
    The location of ftp server dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "fileName":
            suggest = "file_name"
        elif key == "folderPath":
            suggest = "folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in FtpServerLocationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        FtpServerLocationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        FtpServerLocationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 file_name: Optional[Any] = None,
                 folder_path: Optional[Any] = None):
        """
        The location of ftp server dataset.
        :param str type: Type of dataset storage location.
               Expected value is 'FtpServerLocation'.
        :param Any file_name: Specify the file name of dataset. Type: string (or Expression with resultType string).
        :param Any folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string)
        """
        pulumi.set(__self__, "type", 'FtpServerLocation')
        if file_name is not None:
            pulumi.set(__self__, "file_name", file_name)
        if folder_path is not None:
            pulumi.set(__self__, "folder_path", folder_path)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset storage location.
        Expected value is 'FtpServerLocation'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="fileName")
    def file_name(self) -> Optional[Any]:
        """
        Specify the file name of dataset. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_name")

    @property
    @pulumi.getter(name="folderPath")
    def folder_path(self) -> Optional[Any]:
        """
        Specify the folder path of dataset. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "folder_path")


@pulumi.output_type
class GetMetadataActivityResponse(dict):
    """
    Activity to get metadata of dataset
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dependsOn":
            suggest = "depends_on"
        elif key == "fieldList":
            suggest = "field_list"
        elif key == "formatSettings":
            suggest = "format_settings"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "storeSettings":
            suggest = "store_settings"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in GetMetadataActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        GetMetadataActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        GetMetadataActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 dataset: 'outputs.DatasetReferenceResponse',
                 name: str,
                 type: str,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 field_list: Optional[Sequence[Any]] = None,
                 format_settings: Optional[Any] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 store_settings: Optional[Any] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        Activity to get metadata of dataset
        :param 'DatasetReferenceResponse' dataset: GetMetadata activity dataset reference.
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'GetMetadata'.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Sequence[Any] field_list: Fields of metadata to get from dataset.
        :param Union['BinaryReadSettingsResponse', 'DelimitedTextReadSettingsResponse', 'JsonReadSettingsResponse', 'XmlReadSettingsResponse'] format_settings: GetMetadata activity format settings.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param Union['AmazonS3CompatibleReadSettingsResponse', 'AmazonS3ReadSettingsResponse', 'AzureBlobFSReadSettingsResponse', 'AzureBlobStorageReadSettingsResponse', 'AzureDataLakeStoreReadSettingsResponse', 'AzureFileStorageReadSettingsResponse', 'FileServerReadSettingsResponse', 'FtpReadSettingsResponse', 'GoogleCloudStorageReadSettingsResponse', 'HdfsReadSettingsResponse', 'HttpReadSettingsResponse', 'OracleCloudStorageReadSettingsResponse', 'SftpReadSettingsResponse'] store_settings: GetMetadata activity store settings.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "dataset", dataset)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'GetMetadata')
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if field_list is not None:
            pulumi.set(__self__, "field_list", field_list)
        if format_settings is not None:
            pulumi.set(__self__, "format_settings", format_settings)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if store_settings is not None:
            pulumi.set(__self__, "store_settings", store_settings)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter
    def dataset(self) -> 'outputs.DatasetReferenceResponse':
        """
        GetMetadata activity dataset reference.
        """
        return pulumi.get(self, "dataset")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'GetMetadata'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="fieldList")
    def field_list(self) -> Optional[Sequence[Any]]:
        """
        Fields of metadata to get from dataset.
        """
        return pulumi.get(self, "field_list")

    @property
    @pulumi.getter(name="formatSettings")
    def format_settings(self) -> Optional[Any]:
        """
        GetMetadata activity format settings.
        """
        return pulumi.get(self, "format_settings")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter(name="storeSettings")
    def store_settings(self) -> Optional[Any]:
        """
        GetMetadata activity store settings.
        """
        return pulumi.get(self, "store_settings")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class GitHubClientSecretResponse(dict):
    """
    Client secret information for factory's bring your own app repository configuration.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "byoaSecretAkvUrl":
            suggest = "byoa_secret_akv_url"
        elif key == "byoaSecretName":
            suggest = "byoa_secret_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in GitHubClientSecretResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        GitHubClientSecretResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        GitHubClientSecretResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 byoa_secret_akv_url: Optional[str] = None,
                 byoa_secret_name: Optional[str] = None):
        """
        Client secret information for factory's bring your own app repository configuration.
        :param str byoa_secret_akv_url: Bring your own app client secret AKV URL.
        :param str byoa_secret_name: Bring your own app client secret name in AKV.
        """
        if byoa_secret_akv_url is not None:
            pulumi.set(__self__, "byoa_secret_akv_url", byoa_secret_akv_url)
        if byoa_secret_name is not None:
            pulumi.set(__self__, "byoa_secret_name", byoa_secret_name)

    @property
    @pulumi.getter(name="byoaSecretAkvUrl")
    def byoa_secret_akv_url(self) -> Optional[str]:
        """
        Bring your own app client secret AKV URL.
        """
        return pulumi.get(self, "byoa_secret_akv_url")

    @property
    @pulumi.getter(name="byoaSecretName")
    def byoa_secret_name(self) -> Optional[str]:
        """
        Bring your own app client secret name in AKV.
        """
        return pulumi.get(self, "byoa_secret_name")


@pulumi.output_type
class GlobalParameterSpecificationResponse(dict):
    """
    Definition of a single parameter for an entity.
    """
    def __init__(__self__, *,
                 type: str,
                 value: Any):
        """
        Definition of a single parameter for an entity.
        :param str type: Global Parameter type.
        :param Any value: Value of parameter.
        """
        pulumi.set(__self__, "type", type)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Global Parameter type.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def value(self) -> Any:
        """
        Value of parameter.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GoogleAdWordsLinkedServiceResponse(dict):
    """
    Google AdWords service linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"
        elif key == "clientCustomerID":
            suggest = "client_customer_id"
        elif key == "clientId":
            suggest = "client_id"
        elif key == "clientSecret":
            suggest = "client_secret"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "connectionProperties":
            suggest = "connection_properties"
        elif key == "developerToken":
            suggest = "developer_token"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "keyFilePath":
            suggest = "key_file_path"
        elif key == "refreshToken":
            suggest = "refresh_token"
        elif key == "trustedCertPath":
            suggest = "trusted_cert_path"
        elif key == "useSystemTrustStore":
            suggest = "use_system_trust_store"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in GoogleAdWordsLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        GoogleAdWordsLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        GoogleAdWordsLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 authentication_type: Optional[str] = None,
                 client_customer_id: Optional[Any] = None,
                 client_id: Optional[Any] = None,
                 client_secret: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 connection_properties: Optional[Any] = None,
                 description: Optional[str] = None,
                 developer_token: Optional[Any] = None,
                 email: Optional[Any] = None,
                 encrypted_credential: Optional[Any] = None,
                 key_file_path: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 refresh_token: Optional[Any] = None,
                 trusted_cert_path: Optional[Any] = None,
                 use_system_trust_store: Optional[Any] = None):
        """
        Google AdWords service linked service.
        :param str type: Type of linked service.
               Expected value is 'GoogleAdWords'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param str authentication_type: The OAuth 2.0 authentication mechanism used for authentication. ServiceAuthentication can only be used on self-hosted IR.
        :param Any client_customer_id: The Client customer ID of the AdWords account that you want to fetch report data for.
        :param Any client_id: The client id of the google application used to acquire the refresh token. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] client_secret: The client secret of the google application used to acquire the refresh token.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any connection_properties: Properties used to connect to GoogleAds. It is mutually exclusive with any other properties in the linked service. Type: object.
        :param str description: Linked service description.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] developer_token: The developer token associated with the manager account that you use to grant access to the AdWords API.
        :param Any email: The service account email ID that is used for ServiceAuthentication and can only be used on self-hosted IR.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Any key_file_path: The full path to the .p12 key file that is used to authenticate the service account email address and can only be used on self-hosted IR.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] refresh_token: The refresh token obtained from Google for authorizing access to AdWords for UserAuthentication.
        :param Any trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR.
        :param Any use_system_trust_store: Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false.
        """
        pulumi.set(__self__, "type", 'GoogleAdWords')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if authentication_type is not None:
            pulumi.set(__self__, "authentication_type", authentication_type)
        if client_customer_id is not None:
            pulumi.set(__self__, "client_customer_id", client_customer_id)
        if client_id is not None:
            pulumi.set(__self__, "client_id", client_id)
        if client_secret is not None:
            pulumi.set(__self__, "client_secret", client_secret)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if connection_properties is not None:
            pulumi.set(__self__, "connection_properties", connection_properties)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if developer_token is not None:
            pulumi.set(__self__, "developer_token", developer_token)
        if email is not None:
            pulumi.set(__self__, "email", email)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if key_file_path is not None:
            pulumi.set(__self__, "key_file_path", key_file_path)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if refresh_token is not None:
            pulumi.set(__self__, "refresh_token", refresh_token)
        if trusted_cert_path is not None:
            pulumi.set(__self__, "trusted_cert_path", trusted_cert_path)
        if use_system_trust_store is not None:
            pulumi.set(__self__, "use_system_trust_store", use_system_trust_store)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'GoogleAdWords'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> Optional[str]:
        """
        The OAuth 2.0 authentication mechanism used for authentication. ServiceAuthentication can only be used on self-hosted IR.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter(name="clientCustomerID")
    def client_customer_id(self) -> Optional[Any]:
        """
        The Client customer ID of the AdWords account that you want to fetch report data for.
        """
        return pulumi.get(self, "client_customer_id")

    @property
    @pulumi.getter(name="clientId")
    def client_id(self) -> Optional[Any]:
        """
        The client id of the google application used to acquire the refresh token. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "client_id")

    @property
    @pulumi.getter(name="clientSecret")
    def client_secret(self) -> Optional[Any]:
        """
        The client secret of the google application used to acquire the refresh token.
        """
        return pulumi.get(self, "client_secret")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="connectionProperties")
    def connection_properties(self) -> Optional[Any]:
        """
        Properties used to connect to GoogleAds. It is mutually exclusive with any other properties in the linked service. Type: object.
        """
        return pulumi.get(self, "connection_properties")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="developerToken")
    def developer_token(self) -> Optional[Any]:
        """
        The developer token associated with the manager account that you use to grant access to the AdWords API.
        """
        return pulumi.get(self, "developer_token")

    @property
    @pulumi.getter
    def email(self) -> Optional[Any]:
        """
        The service account email ID that is used for ServiceAuthentication and can only be used on self-hosted IR.
        """
        return pulumi.get(self, "email")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter(name="keyFilePath")
    def key_file_path(self) -> Optional[Any]:
        """
        The full path to the .p12 key file that is used to authenticate the service account email address and can only be used on self-hosted IR.
        """
        return pulumi.get(self, "key_file_path")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="refreshToken")
    def refresh_token(self) -> Optional[Any]:
        """
        The refresh token obtained from Google for authorizing access to AdWords for UserAuthentication.
        """
        return pulumi.get(self, "refresh_token")

    @property
    @pulumi.getter(name="trustedCertPath")
    def trusted_cert_path(self) -> Optional[Any]:
        """
        The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR.
        """
        return pulumi.get(self, "trusted_cert_path")

    @property
    @pulumi.getter(name="useSystemTrustStore")
    def use_system_trust_store(self) -> Optional[Any]:
        """
        Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false.
        """
        return pulumi.get(self, "use_system_trust_store")


@pulumi.output_type
class GoogleAdWordsObjectDatasetResponse(dict):
    """
    Google AdWords service dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in GoogleAdWordsObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        GoogleAdWordsObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        GoogleAdWordsObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Google AdWords service dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'GoogleAdWordsObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'GoogleAdWordsObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'GoogleAdWordsObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class GoogleAdWordsSourceResponse(dict):
    """
    A copy activity Google AdWords service source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in GoogleAdWordsSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        GoogleAdWordsSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        GoogleAdWordsSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Google AdWords service source.
        :param str type: Copy source type.
               Expected value is 'GoogleAdWordsSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'GoogleAdWordsSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'GoogleAdWordsSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class GoogleBigQueryLinkedServiceResponse(dict):
    """
    Google BigQuery service linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"
        elif key == "additionalProjects":
            suggest = "additional_projects"
        elif key == "clientId":
            suggest = "client_id"
        elif key == "clientSecret":
            suggest = "client_secret"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "keyFilePath":
            suggest = "key_file_path"
        elif key == "refreshToken":
            suggest = "refresh_token"
        elif key == "requestGoogleDriveScope":
            suggest = "request_google_drive_scope"
        elif key == "trustedCertPath":
            suggest = "trusted_cert_path"
        elif key == "useSystemTrustStore":
            suggest = "use_system_trust_store"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in GoogleBigQueryLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        GoogleBigQueryLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        GoogleBigQueryLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 authentication_type: str,
                 project: Any,
                 type: str,
                 additional_projects: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 client_id: Optional[Any] = None,
                 client_secret: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 email: Optional[Any] = None,
                 encrypted_credential: Optional[Any] = None,
                 key_file_path: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 refresh_token: Optional[Any] = None,
                 request_google_drive_scope: Optional[Any] = None,
                 trusted_cert_path: Optional[Any] = None,
                 use_system_trust_store: Optional[Any] = None):
        """
        Google BigQuery service linked service.
        :param str authentication_type: The OAuth 2.0 authentication mechanism used for authentication. ServiceAuthentication can only be used on self-hosted IR.
        :param Any project: The default BigQuery project to query against.
        :param str type: Type of linked service.
               Expected value is 'GoogleBigQuery'.
        :param Any additional_projects: A comma-separated list of public BigQuery projects to access.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any client_id: The client id of the google application used to acquire the refresh token. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] client_secret: The client secret of the google application used to acquire the refresh token.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any email: The service account email ID that is used for ServiceAuthentication and can only be used on self-hosted IR.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Any key_file_path: The full path to the .p12 key file that is used to authenticate the service account email address and can only be used on self-hosted IR.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] refresh_token: The refresh token obtained from Google for authorizing access to BigQuery for UserAuthentication.
        :param Any request_google_drive_scope: Whether to request access to Google Drive. Allowing Google Drive access enables support for federated tables that combine BigQuery data with data from Google Drive. The default value is false.
        :param Any trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR.
        :param Any use_system_trust_store: Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false.
        """
        pulumi.set(__self__, "authentication_type", authentication_type)
        pulumi.set(__self__, "project", project)
        pulumi.set(__self__, "type", 'GoogleBigQuery')
        if additional_projects is not None:
            pulumi.set(__self__, "additional_projects", additional_projects)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if client_id is not None:
            pulumi.set(__self__, "client_id", client_id)
        if client_secret is not None:
            pulumi.set(__self__, "client_secret", client_secret)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if email is not None:
            pulumi.set(__self__, "email", email)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if key_file_path is not None:
            pulumi.set(__self__, "key_file_path", key_file_path)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if refresh_token is not None:
            pulumi.set(__self__, "refresh_token", refresh_token)
        if request_google_drive_scope is not None:
            pulumi.set(__self__, "request_google_drive_scope", request_google_drive_scope)
        if trusted_cert_path is not None:
            pulumi.set(__self__, "trusted_cert_path", trusted_cert_path)
        if use_system_trust_store is not None:
            pulumi.set(__self__, "use_system_trust_store", use_system_trust_store)

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> str:
        """
        The OAuth 2.0 authentication mechanism used for authentication. ServiceAuthentication can only be used on self-hosted IR.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter
    def project(self) -> Any:
        """
        The default BigQuery project to query against.
        """
        return pulumi.get(self, "project")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'GoogleBigQuery'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalProjects")
    def additional_projects(self) -> Optional[Any]:
        """
        A comma-separated list of public BigQuery projects to access.
        """
        return pulumi.get(self, "additional_projects")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="clientId")
    def client_id(self) -> Optional[Any]:
        """
        The client id of the google application used to acquire the refresh token. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "client_id")

    @property
    @pulumi.getter(name="clientSecret")
    def client_secret(self) -> Optional[Any]:
        """
        The client secret of the google application used to acquire the refresh token.
        """
        return pulumi.get(self, "client_secret")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def email(self) -> Optional[Any]:
        """
        The service account email ID that is used for ServiceAuthentication and can only be used on self-hosted IR.
        """
        return pulumi.get(self, "email")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter(name="keyFilePath")
    def key_file_path(self) -> Optional[Any]:
        """
        The full path to the .p12 key file that is used to authenticate the service account email address and can only be used on self-hosted IR.
        """
        return pulumi.get(self, "key_file_path")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="refreshToken")
    def refresh_token(self) -> Optional[Any]:
        """
        The refresh token obtained from Google for authorizing access to BigQuery for UserAuthentication.
        """
        return pulumi.get(self, "refresh_token")

    @property
    @pulumi.getter(name="requestGoogleDriveScope")
    def request_google_drive_scope(self) -> Optional[Any]:
        """
        Whether to request access to Google Drive. Allowing Google Drive access enables support for federated tables that combine BigQuery data with data from Google Drive. The default value is false.
        """
        return pulumi.get(self, "request_google_drive_scope")

    @property
    @pulumi.getter(name="trustedCertPath")
    def trusted_cert_path(self) -> Optional[Any]:
        """
        The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR.
        """
        return pulumi.get(self, "trusted_cert_path")

    @property
    @pulumi.getter(name="useSystemTrustStore")
    def use_system_trust_store(self) -> Optional[Any]:
        """
        Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false.
        """
        return pulumi.get(self, "use_system_trust_store")


@pulumi.output_type
class GoogleBigQueryObjectDatasetResponse(dict):
    """
    Google BigQuery service dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in GoogleBigQueryObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        GoogleBigQueryObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        GoogleBigQueryObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 dataset: Optional[Any] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Google BigQuery service dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'GoogleBigQueryObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param Any dataset: The database name of the Google BigQuery. Type: string (or Expression with resultType string).
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The table name of the Google BigQuery. Type: string (or Expression with resultType string).
        :param Any table_name: This property will be retired. Please consider using database + table properties instead.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'GoogleBigQueryObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if dataset is not None:
            pulumi.set(__self__, "dataset", dataset)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'GoogleBigQueryObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def dataset(self) -> Optional[Any]:
        """
        The database name of the Google BigQuery. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "dataset")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The table name of the Google BigQuery. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        This property will be retired. Please consider using database + table properties instead.
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class GoogleBigQuerySourceResponse(dict):
    """
    A copy activity Google BigQuery service source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in GoogleBigQuerySourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        GoogleBigQuerySourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        GoogleBigQuerySourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Google BigQuery service source.
        :param str type: Copy source type.
               Expected value is 'GoogleBigQuerySource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'GoogleBigQuerySource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'GoogleBigQuerySource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class GoogleCloudStorageLinkedServiceResponse(dict):
    """
    Linked service for Google Cloud Storage.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accessKeyId":
            suggest = "access_key_id"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "secretAccessKey":
            suggest = "secret_access_key"
        elif key == "serviceUrl":
            suggest = "service_url"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in GoogleCloudStorageLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        GoogleCloudStorageLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        GoogleCloudStorageLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 access_key_id: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 secret_access_key: Optional[Any] = None,
                 service_url: Optional[Any] = None):
        """
        Linked service for Google Cloud Storage.
        :param str type: Type of linked service.
               Expected value is 'GoogleCloudStorage'.
        :param Any access_key_id: The access key identifier of the Google Cloud Storage Identity and Access Management (IAM) user. Type: string (or Expression with resultType string).
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] secret_access_key: The secret access key of the Google Cloud Storage Identity and Access Management (IAM) user.
        :param Any service_url: This value specifies the endpoint to access with the Google Cloud Storage Connector. This is an optional property; change it only if you want to try a different service endpoint or want to switch between https and http. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'GoogleCloudStorage')
        if access_key_id is not None:
            pulumi.set(__self__, "access_key_id", access_key_id)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if secret_access_key is not None:
            pulumi.set(__self__, "secret_access_key", secret_access_key)
        if service_url is not None:
            pulumi.set(__self__, "service_url", service_url)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'GoogleCloudStorage'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="accessKeyId")
    def access_key_id(self) -> Optional[Any]:
        """
        The access key identifier of the Google Cloud Storage Identity and Access Management (IAM) user. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "access_key_id")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="secretAccessKey")
    def secret_access_key(self) -> Optional[Any]:
        """
        The secret access key of the Google Cloud Storage Identity and Access Management (IAM) user.
        """
        return pulumi.get(self, "secret_access_key")

    @property
    @pulumi.getter(name="serviceUrl")
    def service_url(self) -> Optional[Any]:
        """
        This value specifies the endpoint to access with the Google Cloud Storage Connector. This is an optional property; change it only if you want to try a different service endpoint or want to switch between https and http. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_url")


@pulumi.output_type
class GoogleCloudStorageLocationResponse(dict):
    """
    The location of Google Cloud Storage dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "bucketName":
            suggest = "bucket_name"
        elif key == "fileName":
            suggest = "file_name"
        elif key == "folderPath":
            suggest = "folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in GoogleCloudStorageLocationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        GoogleCloudStorageLocationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        GoogleCloudStorageLocationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 bucket_name: Optional[Any] = None,
                 file_name: Optional[Any] = None,
                 folder_path: Optional[Any] = None,
                 version: Optional[Any] = None):
        """
        The location of Google Cloud Storage dataset.
        :param str type: Type of dataset storage location.
               Expected value is 'GoogleCloudStorageLocation'.
        :param Any bucket_name: Specify the bucketName of Google Cloud Storage. Type: string (or Expression with resultType string)
        :param Any file_name: Specify the file name of dataset. Type: string (or Expression with resultType string).
        :param Any folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string)
        :param Any version: Specify the version of Google Cloud Storage. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'GoogleCloudStorageLocation')
        if bucket_name is not None:
            pulumi.set(__self__, "bucket_name", bucket_name)
        if file_name is not None:
            pulumi.set(__self__, "file_name", file_name)
        if folder_path is not None:
            pulumi.set(__self__, "folder_path", folder_path)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset storage location.
        Expected value is 'GoogleCloudStorageLocation'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="bucketName")
    def bucket_name(self) -> Optional[Any]:
        """
        Specify the bucketName of Google Cloud Storage. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "bucket_name")

    @property
    @pulumi.getter(name="fileName")
    def file_name(self) -> Optional[Any]:
        """
        Specify the file name of dataset. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_name")

    @property
    @pulumi.getter(name="folderPath")
    def folder_path(self) -> Optional[Any]:
        """
        Specify the folder path of dataset. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "folder_path")

    @property
    @pulumi.getter
    def version(self) -> Optional[Any]:
        """
        Specify the version of Google Cloud Storage. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "version")


@pulumi.output_type
class GoogleCloudStorageReadSettingsResponse(dict):
    """
    Google Cloud Storage read settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deleteFilesAfterCompletion":
            suggest = "delete_files_after_completion"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "enablePartitionDiscovery":
            suggest = "enable_partition_discovery"
        elif key == "fileListPath":
            suggest = "file_list_path"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "modifiedDatetimeEnd":
            suggest = "modified_datetime_end"
        elif key == "modifiedDatetimeStart":
            suggest = "modified_datetime_start"
        elif key == "partitionRootPath":
            suggest = "partition_root_path"
        elif key == "wildcardFileName":
            suggest = "wildcard_file_name"
        elif key == "wildcardFolderPath":
            suggest = "wildcard_folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in GoogleCloudStorageReadSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        GoogleCloudStorageReadSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        GoogleCloudStorageReadSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 delete_files_after_completion: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 enable_partition_discovery: Optional[bool] = None,
                 file_list_path: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 modified_datetime_end: Optional[Any] = None,
                 modified_datetime_start: Optional[Any] = None,
                 partition_root_path: Optional[Any] = None,
                 prefix: Optional[Any] = None,
                 recursive: Optional[Any] = None,
                 wildcard_file_name: Optional[Any] = None,
                 wildcard_folder_path: Optional[Any] = None):
        """
        Google Cloud Storage read settings.
        :param str type: The read setting type.
               Expected value is 'GoogleCloudStorageReadSettings'.
        :param Any delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param bool enable_partition_discovery: Indicates whether to enable partition discovery.
        :param Any file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string).
        :param Any modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string).
        :param Any partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        :param Any prefix: The prefix filter for the Google Cloud Storage object name. Type: string (or Expression with resultType string).
        :param Any recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        :param Any wildcard_file_name: Google Cloud Storage wildcardFileName. Type: string (or Expression with resultType string).
        :param Any wildcard_folder_path: Google Cloud Storage wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'GoogleCloudStorageReadSettings')
        if delete_files_after_completion is not None:
            pulumi.set(__self__, "delete_files_after_completion", delete_files_after_completion)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if enable_partition_discovery is not None:
            pulumi.set(__self__, "enable_partition_discovery", enable_partition_discovery)
        if file_list_path is not None:
            pulumi.set(__self__, "file_list_path", file_list_path)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if modified_datetime_end is not None:
            pulumi.set(__self__, "modified_datetime_end", modified_datetime_end)
        if modified_datetime_start is not None:
            pulumi.set(__self__, "modified_datetime_start", modified_datetime_start)
        if partition_root_path is not None:
            pulumi.set(__self__, "partition_root_path", partition_root_path)
        if prefix is not None:
            pulumi.set(__self__, "prefix", prefix)
        if recursive is not None:
            pulumi.set(__self__, "recursive", recursive)
        if wildcard_file_name is not None:
            pulumi.set(__self__, "wildcard_file_name", wildcard_file_name)
        if wildcard_folder_path is not None:
            pulumi.set(__self__, "wildcard_folder_path", wildcard_folder_path)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The read setting type.
        Expected value is 'GoogleCloudStorageReadSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="deleteFilesAfterCompletion")
    def delete_files_after_completion(self) -> Optional[Any]:
        """
        Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "delete_files_after_completion")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="enablePartitionDiscovery")
    def enable_partition_discovery(self) -> Optional[bool]:
        """
        Indicates whether to enable partition discovery.
        """
        return pulumi.get(self, "enable_partition_discovery")

    @property
    @pulumi.getter(name="fileListPath")
    def file_list_path(self) -> Optional[Any]:
        """
        Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_list_path")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="modifiedDatetimeEnd")
    def modified_datetime_end(self) -> Optional[Any]:
        """
        The end of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_end")

    @property
    @pulumi.getter(name="modifiedDatetimeStart")
    def modified_datetime_start(self) -> Optional[Any]:
        """
        The start of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_start")

    @property
    @pulumi.getter(name="partitionRootPath")
    def partition_root_path(self) -> Optional[Any]:
        """
        Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_root_path")

    @property
    @pulumi.getter
    def prefix(self) -> Optional[Any]:
        """
        The prefix filter for the Google Cloud Storage object name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "prefix")

    @property
    @pulumi.getter
    def recursive(self) -> Optional[Any]:
        """
        If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "recursive")

    @property
    @pulumi.getter(name="wildcardFileName")
    def wildcard_file_name(self) -> Optional[Any]:
        """
        Google Cloud Storage wildcardFileName. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_file_name")

    @property
    @pulumi.getter(name="wildcardFolderPath")
    def wildcard_folder_path(self) -> Optional[Any]:
        """
        Google Cloud Storage wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_folder_path")


@pulumi.output_type
class GreenplumLinkedServiceResponse(dict):
    """
    Greenplum Database linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectVia":
            suggest = "connect_via"
        elif key == "connectionString":
            suggest = "connection_string"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in GreenplumLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        GreenplumLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        GreenplumLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 connection_string: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 pwd: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None):
        """
        Greenplum Database linked service.
        :param str type: Type of linked service.
               Expected value is 'Greenplum'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param 'AzureKeyVaultSecretReferenceResponse' pwd: The Azure key vault secret reference of password in connection string.
        """
        pulumi.set(__self__, "type", 'Greenplum')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if connection_string is not None:
            pulumi.set(__self__, "connection_string", connection_string)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pwd is not None:
            pulumi.set(__self__, "pwd", pwd)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Greenplum'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Optional[Any]:
        """
        An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def pwd(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of password in connection string.
        """
        return pulumi.get(self, "pwd")


@pulumi.output_type
class GreenplumSourceResponse(dict):
    """
    A copy activity Greenplum Database source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in GreenplumSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        GreenplumSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        GreenplumSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Greenplum Database source.
        :param str type: Copy source type.
               Expected value is 'GreenplumSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'GreenplumSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'GreenplumSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class GreenplumTableDatasetResponse(dict):
    """
    Greenplum Database dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in GreenplumTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        GreenplumTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        GreenplumTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Greenplum Database dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'GreenplumTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The table name of Greenplum. Type: string (or Expression with resultType string).
        :param Any table_name: This property will be retired. Please consider using schema + table properties instead.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'GreenplumTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'GreenplumTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The table name of Greenplum. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        This property will be retired. Please consider using schema + table properties instead.
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class HBaseLinkedServiceResponse(dict):
    """
    HBase server linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"
        elif key == "allowHostNameCNMismatch":
            suggest = "allow_host_name_cn_mismatch"
        elif key == "allowSelfSignedServerCert":
            suggest = "allow_self_signed_server_cert"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "enableSsl":
            suggest = "enable_ssl"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "httpPath":
            suggest = "http_path"
        elif key == "trustedCertPath":
            suggest = "trusted_cert_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HBaseLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HBaseLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HBaseLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 authentication_type: str,
                 host: Any,
                 type: str,
                 allow_host_name_cn_mismatch: Optional[Any] = None,
                 allow_self_signed_server_cert: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 enable_ssl: Optional[Any] = None,
                 encrypted_credential: Optional[Any] = None,
                 http_path: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 port: Optional[Any] = None,
                 trusted_cert_path: Optional[Any] = None,
                 username: Optional[Any] = None):
        """
        HBase server linked service.
        :param str authentication_type: The authentication mechanism to use to connect to the HBase server.
        :param Any host: The IP address or host name of the HBase server. (i.e. 192.168.222.160)
        :param str type: Type of linked service.
               Expected value is 'HBase'.
        :param Any allow_host_name_cn_mismatch: Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false.
        :param Any allow_self_signed_server_cert: Specifies whether to allow self-signed certificates from the server. The default value is false.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any enable_ssl: Specifies whether the connections to the server are encrypted using SSL. The default value is false.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Any http_path: The partial URL corresponding to the HBase server. (i.e. /gateway/sandbox/hbase/version)
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The password corresponding to the user name.
        :param Any port: The TCP port that the HBase instance uses to listen for client connections. The default value is 9090.
        :param Any trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR.
        :param Any username: The user name used to connect to the HBase instance.
        """
        pulumi.set(__self__, "authentication_type", authentication_type)
        pulumi.set(__self__, "host", host)
        pulumi.set(__self__, "type", 'HBase')
        if allow_host_name_cn_mismatch is not None:
            pulumi.set(__self__, "allow_host_name_cn_mismatch", allow_host_name_cn_mismatch)
        if allow_self_signed_server_cert is not None:
            pulumi.set(__self__, "allow_self_signed_server_cert", allow_self_signed_server_cert)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if enable_ssl is not None:
            pulumi.set(__self__, "enable_ssl", enable_ssl)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if http_path is not None:
            pulumi.set(__self__, "http_path", http_path)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if trusted_cert_path is not None:
            pulumi.set(__self__, "trusted_cert_path", trusted_cert_path)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> str:
        """
        The authentication mechanism to use to connect to the HBase server.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter
    def host(self) -> Any:
        """
        The IP address or host name of the HBase server. (i.e. 192.168.222.160)
        """
        return pulumi.get(self, "host")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'HBase'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="allowHostNameCNMismatch")
    def allow_host_name_cn_mismatch(self) -> Optional[Any]:
        """
        Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false.
        """
        return pulumi.get(self, "allow_host_name_cn_mismatch")

    @property
    @pulumi.getter(name="allowSelfSignedServerCert")
    def allow_self_signed_server_cert(self) -> Optional[Any]:
        """
        Specifies whether to allow self-signed certificates from the server. The default value is false.
        """
        return pulumi.get(self, "allow_self_signed_server_cert")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="enableSsl")
    def enable_ssl(self) -> Optional[Any]:
        """
        Specifies whether the connections to the server are encrypted using SSL. The default value is false.
        """
        return pulumi.get(self, "enable_ssl")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter(name="httpPath")
    def http_path(self) -> Optional[Any]:
        """
        The partial URL corresponding to the HBase server. (i.e. /gateway/sandbox/hbase/version)
        """
        return pulumi.get(self, "http_path")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        The password corresponding to the user name.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def port(self) -> Optional[Any]:
        """
        The TCP port that the HBase instance uses to listen for client connections. The default value is 9090.
        """
        return pulumi.get(self, "port")

    @property
    @pulumi.getter(name="trustedCertPath")
    def trusted_cert_path(self) -> Optional[Any]:
        """
        The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR.
        """
        return pulumi.get(self, "trusted_cert_path")

    @property
    @pulumi.getter
    def username(self) -> Optional[Any]:
        """
        The user name used to connect to the HBase instance.
        """
        return pulumi.get(self, "username")


@pulumi.output_type
class HBaseObjectDatasetResponse(dict):
    """
    HBase server dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HBaseObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HBaseObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HBaseObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        HBase server dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'HBaseObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'HBaseObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'HBaseObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class HBaseSourceResponse(dict):
    """
    A copy activity HBase server source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HBaseSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HBaseSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HBaseSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity HBase server source.
        :param str type: Copy source type.
               Expected value is 'HBaseSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'HBaseSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'HBaseSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class HDInsightHiveActivityResponse(dict):
    """
    HDInsight Hive activity type.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dependsOn":
            suggest = "depends_on"
        elif key == "getDebugInfo":
            suggest = "get_debug_info"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "scriptLinkedService":
            suggest = "script_linked_service"
        elif key == "scriptPath":
            suggest = "script_path"
        elif key == "storageLinkedServices":
            suggest = "storage_linked_services"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HDInsightHiveActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HDInsightHiveActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HDInsightHiveActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 type: str,
                 arguments: Optional[Sequence[Any]] = None,
                 defines: Optional[Mapping[str, Any]] = None,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 get_debug_info: Optional[str] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 query_timeout: Optional[int] = None,
                 script_linked_service: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 script_path: Optional[Any] = None,
                 storage_linked_services: Optional[Sequence['outputs.LinkedServiceReferenceResponse']] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None,
                 variables: Optional[Sequence[Any]] = None):
        """
        HDInsight Hive activity type.
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'HDInsightHive'.
        :param Sequence[Any] arguments: User specified arguments to HDInsightActivity.
        :param Mapping[str, Any] defines: Allows user to specify defines for Hive job request.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param str get_debug_info: Debug info option.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param int query_timeout: Query timeout value (in minutes).  Effective when the HDInsight cluster is with ESP (Enterprise Security Package)
        :param 'LinkedServiceReferenceResponse' script_linked_service: Script linked service reference.
        :param Any script_path: Script path. Type: string (or Expression with resultType string).
        :param Sequence['LinkedServiceReferenceResponse'] storage_linked_services: Storage linked service references.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        :param Sequence[Any] variables: User specified arguments under hivevar namespace.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'HDInsightHive')
        if arguments is not None:
            pulumi.set(__self__, "arguments", arguments)
        if defines is not None:
            pulumi.set(__self__, "defines", defines)
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if get_debug_info is not None:
            pulumi.set(__self__, "get_debug_info", get_debug_info)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if script_linked_service is not None:
            pulumi.set(__self__, "script_linked_service", script_linked_service)
        if script_path is not None:
            pulumi.set(__self__, "script_path", script_path)
        if storage_linked_services is not None:
            pulumi.set(__self__, "storage_linked_services", storage_linked_services)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)
        if variables is not None:
            pulumi.set(__self__, "variables", variables)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'HDInsightHive'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def arguments(self) -> Optional[Sequence[Any]]:
        """
        User specified arguments to HDInsightActivity.
        """
        return pulumi.get(self, "arguments")

    @property
    @pulumi.getter
    def defines(self) -> Optional[Mapping[str, Any]]:
        """
        Allows user to specify defines for Hive job request.
        """
        return pulumi.get(self, "defines")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="getDebugInfo")
    def get_debug_info(self) -> Optional[str]:
        """
        Debug info option.
        """
        return pulumi.get(self, "get_debug_info")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[int]:
        """
        Query timeout value (in minutes).  Effective when the HDInsight cluster is with ESP (Enterprise Security Package)
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="scriptLinkedService")
    def script_linked_service(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Script linked service reference.
        """
        return pulumi.get(self, "script_linked_service")

    @property
    @pulumi.getter(name="scriptPath")
    def script_path(self) -> Optional[Any]:
        """
        Script path. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "script_path")

    @property
    @pulumi.getter(name="storageLinkedServices")
    def storage_linked_services(self) -> Optional[Sequence['outputs.LinkedServiceReferenceResponse']]:
        """
        Storage linked service references.
        """
        return pulumi.get(self, "storage_linked_services")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")

    @property
    @pulumi.getter
    def variables(self) -> Optional[Sequence[Any]]:
        """
        User specified arguments under hivevar namespace.
        """
        return pulumi.get(self, "variables")


@pulumi.output_type
class HDInsightLinkedServiceResponse(dict):
    """
    HDInsight linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "clusterUri":
            suggest = "cluster_uri"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "fileSystem":
            suggest = "file_system"
        elif key == "hcatalogLinkedServiceName":
            suggest = "hcatalog_linked_service_name"
        elif key == "isEspEnabled":
            suggest = "is_esp_enabled"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "userName":
            suggest = "user_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HDInsightLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HDInsightLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HDInsightLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 cluster_uri: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 file_system: Optional[Any] = None,
                 hcatalog_linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 is_esp_enabled: Optional[Any] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 user_name: Optional[Any] = None):
        """
        HDInsight linked service.
        :param Any cluster_uri: HDInsight cluster URI. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'HDInsight'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Any file_system: Specify the FileSystem if the main storage for the HDInsight is ADLS Gen2. Type: string (or Expression with resultType string).
        :param 'LinkedServiceReferenceResponse' hcatalog_linked_service_name: A reference to the Azure SQL linked service that points to the HCatalog database.
        :param Any is_esp_enabled: Specify if the HDInsight is created with ESP (Enterprise Security Package). Type: Boolean.
        :param 'LinkedServiceReferenceResponse' linked_service_name: The Azure Storage linked service reference.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: HDInsight cluster password.
        :param Any user_name: HDInsight cluster user name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "cluster_uri", cluster_uri)
        pulumi.set(__self__, "type", 'HDInsight')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if file_system is not None:
            pulumi.set(__self__, "file_system", file_system)
        if hcatalog_linked_service_name is not None:
            pulumi.set(__self__, "hcatalog_linked_service_name", hcatalog_linked_service_name)
        if is_esp_enabled is not None:
            pulumi.set(__self__, "is_esp_enabled", is_esp_enabled)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if user_name is not None:
            pulumi.set(__self__, "user_name", user_name)

    @property
    @pulumi.getter(name="clusterUri")
    def cluster_uri(self) -> Any:
        """
        HDInsight cluster URI. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "cluster_uri")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'HDInsight'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter(name="fileSystem")
    def file_system(self) -> Optional[Any]:
        """
        Specify the FileSystem if the main storage for the HDInsight is ADLS Gen2. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_system")

    @property
    @pulumi.getter(name="hcatalogLinkedServiceName")
    def hcatalog_linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        A reference to the Azure SQL linked service that points to the HCatalog database.
        """
        return pulumi.get(self, "hcatalog_linked_service_name")

    @property
    @pulumi.getter(name="isEspEnabled")
    def is_esp_enabled(self) -> Optional[Any]:
        """
        Specify if the HDInsight is created with ESP (Enterprise Security Package). Type: Boolean.
        """
        return pulumi.get(self, "is_esp_enabled")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        The Azure Storage linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        HDInsight cluster password.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="userName")
    def user_name(self) -> Optional[Any]:
        """
        HDInsight cluster user name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "user_name")


@pulumi.output_type
class HDInsightMapReduceActivityResponse(dict):
    """
    HDInsight MapReduce activity type.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "className":
            suggest = "class_name"
        elif key == "jarFilePath":
            suggest = "jar_file_path"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "getDebugInfo":
            suggest = "get_debug_info"
        elif key == "jarLibs":
            suggest = "jar_libs"
        elif key == "jarLinkedService":
            suggest = "jar_linked_service"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "storageLinkedServices":
            suggest = "storage_linked_services"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HDInsightMapReduceActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HDInsightMapReduceActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HDInsightMapReduceActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 class_name: Any,
                 jar_file_path: Any,
                 name: str,
                 type: str,
                 arguments: Optional[Sequence[Any]] = None,
                 defines: Optional[Mapping[str, Any]] = None,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 get_debug_info: Optional[str] = None,
                 jar_libs: Optional[Sequence[Any]] = None,
                 jar_linked_service: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 storage_linked_services: Optional[Sequence['outputs.LinkedServiceReferenceResponse']] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        HDInsight MapReduce activity type.
        :param Any class_name: Class name. Type: string (or Expression with resultType string).
        :param Any jar_file_path: Jar path. Type: string (or Expression with resultType string).
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'HDInsightMapReduce'.
        :param Sequence[Any] arguments: User specified arguments to HDInsightActivity.
        :param Mapping[str, Any] defines: Allows user to specify defines for the MapReduce job request.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param str get_debug_info: Debug info option.
        :param Sequence[Any] jar_libs: Jar libs.
        :param 'LinkedServiceReferenceResponse' jar_linked_service: Jar linked service reference.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param Sequence['LinkedServiceReferenceResponse'] storage_linked_services: Storage linked service references.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "class_name", class_name)
        pulumi.set(__self__, "jar_file_path", jar_file_path)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'HDInsightMapReduce')
        if arguments is not None:
            pulumi.set(__self__, "arguments", arguments)
        if defines is not None:
            pulumi.set(__self__, "defines", defines)
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if get_debug_info is not None:
            pulumi.set(__self__, "get_debug_info", get_debug_info)
        if jar_libs is not None:
            pulumi.set(__self__, "jar_libs", jar_libs)
        if jar_linked_service is not None:
            pulumi.set(__self__, "jar_linked_service", jar_linked_service)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if storage_linked_services is not None:
            pulumi.set(__self__, "storage_linked_services", storage_linked_services)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter(name="className")
    def class_name(self) -> Any:
        """
        Class name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "class_name")

    @property
    @pulumi.getter(name="jarFilePath")
    def jar_file_path(self) -> Any:
        """
        Jar path. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "jar_file_path")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'HDInsightMapReduce'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def arguments(self) -> Optional[Sequence[Any]]:
        """
        User specified arguments to HDInsightActivity.
        """
        return pulumi.get(self, "arguments")

    @property
    @pulumi.getter
    def defines(self) -> Optional[Mapping[str, Any]]:
        """
        Allows user to specify defines for the MapReduce job request.
        """
        return pulumi.get(self, "defines")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="getDebugInfo")
    def get_debug_info(self) -> Optional[str]:
        """
        Debug info option.
        """
        return pulumi.get(self, "get_debug_info")

    @property
    @pulumi.getter(name="jarLibs")
    def jar_libs(self) -> Optional[Sequence[Any]]:
        """
        Jar libs.
        """
        return pulumi.get(self, "jar_libs")

    @property
    @pulumi.getter(name="jarLinkedService")
    def jar_linked_service(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Jar linked service reference.
        """
        return pulumi.get(self, "jar_linked_service")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter(name="storageLinkedServices")
    def storage_linked_services(self) -> Optional[Sequence['outputs.LinkedServiceReferenceResponse']]:
        """
        Storage linked service references.
        """
        return pulumi.get(self, "storage_linked_services")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class HDInsightOnDemandLinkedServiceResponse(dict):
    """
    HDInsight ondemand linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "clusterResourceGroup":
            suggest = "cluster_resource_group"
        elif key == "clusterSize":
            suggest = "cluster_size"
        elif key == "hostSubscriptionId":
            suggest = "host_subscription_id"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "timeToLive":
            suggest = "time_to_live"
        elif key == "additionalLinkedServiceNames":
            suggest = "additional_linked_service_names"
        elif key == "clusterNamePrefix":
            suggest = "cluster_name_prefix"
        elif key == "clusterPassword":
            suggest = "cluster_password"
        elif key == "clusterSshPassword":
            suggest = "cluster_ssh_password"
        elif key == "clusterSshUserName":
            suggest = "cluster_ssh_user_name"
        elif key == "clusterType":
            suggest = "cluster_type"
        elif key == "clusterUserName":
            suggest = "cluster_user_name"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "coreConfiguration":
            suggest = "core_configuration"
        elif key == "dataNodeSize":
            suggest = "data_node_size"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "hBaseConfiguration":
            suggest = "h_base_configuration"
        elif key == "hcatalogLinkedServiceName":
            suggest = "hcatalog_linked_service_name"
        elif key == "hdfsConfiguration":
            suggest = "hdfs_configuration"
        elif key == "headNodeSize":
            suggest = "head_node_size"
        elif key == "hiveConfiguration":
            suggest = "hive_configuration"
        elif key == "mapReduceConfiguration":
            suggest = "map_reduce_configuration"
        elif key == "oozieConfiguration":
            suggest = "oozie_configuration"
        elif key == "scriptActions":
            suggest = "script_actions"
        elif key == "servicePrincipalId":
            suggest = "service_principal_id"
        elif key == "servicePrincipalKey":
            suggest = "service_principal_key"
        elif key == "sparkVersion":
            suggest = "spark_version"
        elif key == "stormConfiguration":
            suggest = "storm_configuration"
        elif key == "subnetName":
            suggest = "subnet_name"
        elif key == "virtualNetworkId":
            suggest = "virtual_network_id"
        elif key == "yarnConfiguration":
            suggest = "yarn_configuration"
        elif key == "zookeeperNodeSize":
            suggest = "zookeeper_node_size"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HDInsightOnDemandLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HDInsightOnDemandLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HDInsightOnDemandLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 cluster_resource_group: Any,
                 cluster_size: Any,
                 host_subscription_id: Any,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 tenant: Any,
                 time_to_live: Any,
                 type: str,
                 version: Any,
                 additional_linked_service_names: Optional[Sequence['outputs.LinkedServiceReferenceResponse']] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 cluster_name_prefix: Optional[Any] = None,
                 cluster_password: Optional[Any] = None,
                 cluster_ssh_password: Optional[Any] = None,
                 cluster_ssh_user_name: Optional[Any] = None,
                 cluster_type: Optional[Any] = None,
                 cluster_user_name: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 core_configuration: Optional[Any] = None,
                 credential: Optional['outputs.CredentialReferenceResponse'] = None,
                 data_node_size: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 h_base_configuration: Optional[Any] = None,
                 hcatalog_linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 hdfs_configuration: Optional[Any] = None,
                 head_node_size: Optional[Any] = None,
                 hive_configuration: Optional[Any] = None,
                 map_reduce_configuration: Optional[Any] = None,
                 oozie_configuration: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 script_actions: Optional[Sequence['outputs.ScriptActionResponse']] = None,
                 service_principal_id: Optional[Any] = None,
                 service_principal_key: Optional[Any] = None,
                 spark_version: Optional[Any] = None,
                 storm_configuration: Optional[Any] = None,
                 subnet_name: Optional[Any] = None,
                 virtual_network_id: Optional[Any] = None,
                 yarn_configuration: Optional[Any] = None,
                 zookeeper_node_size: Optional[Any] = None):
        """
        HDInsight ondemand linked service.
        :param Any cluster_resource_group: The resource group where the cluster belongs. Type: string (or Expression with resultType string).
        :param Any cluster_size: Number of worker/data nodes in the cluster. Suggestion value: 4. Type: string (or Expression with resultType string).
        :param Any host_subscription_id: The customer’s subscription to host the cluster. Type: string (or Expression with resultType string).
        :param 'LinkedServiceReferenceResponse' linked_service_name: Azure Storage linked service to be used by the on-demand cluster for storing and processing data.
        :param Any tenant: The Tenant id/name to which the service principal belongs. Type: string (or Expression with resultType string).
        :param Any time_to_live: The allowed idle time for the on-demand HDInsight cluster. Specifies how long the on-demand HDInsight cluster stays alive after completion of an activity run if there are no other active jobs in the cluster. The minimum value is 5 mins. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'HDInsightOnDemand'.
        :param Any version: Version of the HDInsight cluster.  Type: string (or Expression with resultType string).
        :param Sequence['LinkedServiceReferenceResponse'] additional_linked_service_names: Specifies additional storage accounts for the HDInsight linked service so that the Data Factory service can register them on your behalf.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any cluster_name_prefix: The prefix of cluster name, postfix will be distinct with timestamp. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] cluster_password: The password to access the cluster.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] cluster_ssh_password: The password to SSH remotely connect cluster’s node (for Linux).
        :param Any cluster_ssh_user_name: The username to SSH remotely connect to cluster’s node (for Linux). Type: string (or Expression with resultType string).
        :param Any cluster_type: The cluster type. Type: string (or Expression with resultType string).
        :param Any cluster_user_name: The username to access the cluster. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any core_configuration: Specifies the core configuration parameters (as in core-site.xml) for the HDInsight cluster to be created.
        :param 'CredentialReferenceResponse' credential: The credential reference containing authentication information.
        :param Any data_node_size: Specifies the size of the data node for the HDInsight cluster.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Any h_base_configuration: Specifies the HBase configuration parameters (hbase-site.xml) for the HDInsight cluster.
        :param 'LinkedServiceReferenceResponse' hcatalog_linked_service_name: The name of Azure SQL linked service that point to the HCatalog database. The on-demand HDInsight cluster is created by using the Azure SQL database as the metastore.
        :param Any hdfs_configuration: Specifies the HDFS configuration parameters (hdfs-site.xml) for the HDInsight cluster.
        :param Any head_node_size: Specifies the size of the head node for the HDInsight cluster.
        :param Any hive_configuration: Specifies the hive configuration parameters (hive-site.xml) for the HDInsight cluster.
        :param Any map_reduce_configuration: Specifies the MapReduce configuration parameters (mapred-site.xml) for the HDInsight cluster.
        :param Any oozie_configuration: Specifies the Oozie configuration parameters (oozie-site.xml) for the HDInsight cluster.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Sequence['ScriptActionResponse'] script_actions: Custom script actions to run on HDI ondemand cluster once it's up. Please refer to https://docs.microsoft.com/en-us/azure/hdinsight/hdinsight-hadoop-customize-cluster-linux?toc=%2Fen-us%2Fazure%2Fhdinsight%2Fr-server%2FTOC.json&bc=%2Fen-us%2Fazure%2Fbread%2Ftoc.json#understanding-script-actions.
        :param Any service_principal_id: The service principal id for the hostSubscriptionId. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_key: The key for the service principal id.
        :param Any spark_version: The version of spark if the cluster type is 'spark'. Type: string (or Expression with resultType string).
        :param Any storm_configuration: Specifies the Storm configuration parameters (storm-site.xml) for the HDInsight cluster.
        :param Any subnet_name: The ARM resource ID for the subnet in the vNet. If virtualNetworkId was specified, then this property is required. Type: string (or Expression with resultType string).
        :param Any virtual_network_id: The ARM resource ID for the vNet to which the cluster should be joined after creation. Type: string (or Expression with resultType string).
        :param Any yarn_configuration: Specifies the Yarn configuration parameters (yarn-site.xml) for the HDInsight cluster.
        :param Any zookeeper_node_size: Specifies the size of the Zoo Keeper node for the HDInsight cluster.
        """
        pulumi.set(__self__, "cluster_resource_group", cluster_resource_group)
        pulumi.set(__self__, "cluster_size", cluster_size)
        pulumi.set(__self__, "host_subscription_id", host_subscription_id)
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "tenant", tenant)
        pulumi.set(__self__, "time_to_live", time_to_live)
        pulumi.set(__self__, "type", 'HDInsightOnDemand')
        pulumi.set(__self__, "version", version)
        if additional_linked_service_names is not None:
            pulumi.set(__self__, "additional_linked_service_names", additional_linked_service_names)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if cluster_name_prefix is not None:
            pulumi.set(__self__, "cluster_name_prefix", cluster_name_prefix)
        if cluster_password is not None:
            pulumi.set(__self__, "cluster_password", cluster_password)
        if cluster_ssh_password is not None:
            pulumi.set(__self__, "cluster_ssh_password", cluster_ssh_password)
        if cluster_ssh_user_name is not None:
            pulumi.set(__self__, "cluster_ssh_user_name", cluster_ssh_user_name)
        if cluster_type is not None:
            pulumi.set(__self__, "cluster_type", cluster_type)
        if cluster_user_name is not None:
            pulumi.set(__self__, "cluster_user_name", cluster_user_name)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if core_configuration is not None:
            pulumi.set(__self__, "core_configuration", core_configuration)
        if credential is not None:
            pulumi.set(__self__, "credential", credential)
        if data_node_size is not None:
            pulumi.set(__self__, "data_node_size", data_node_size)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if h_base_configuration is not None:
            pulumi.set(__self__, "h_base_configuration", h_base_configuration)
        if hcatalog_linked_service_name is not None:
            pulumi.set(__self__, "hcatalog_linked_service_name", hcatalog_linked_service_name)
        if hdfs_configuration is not None:
            pulumi.set(__self__, "hdfs_configuration", hdfs_configuration)
        if head_node_size is not None:
            pulumi.set(__self__, "head_node_size", head_node_size)
        if hive_configuration is not None:
            pulumi.set(__self__, "hive_configuration", hive_configuration)
        if map_reduce_configuration is not None:
            pulumi.set(__self__, "map_reduce_configuration", map_reduce_configuration)
        if oozie_configuration is not None:
            pulumi.set(__self__, "oozie_configuration", oozie_configuration)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if script_actions is not None:
            pulumi.set(__self__, "script_actions", script_actions)
        if service_principal_id is not None:
            pulumi.set(__self__, "service_principal_id", service_principal_id)
        if service_principal_key is not None:
            pulumi.set(__self__, "service_principal_key", service_principal_key)
        if spark_version is not None:
            pulumi.set(__self__, "spark_version", spark_version)
        if storm_configuration is not None:
            pulumi.set(__self__, "storm_configuration", storm_configuration)
        if subnet_name is not None:
            pulumi.set(__self__, "subnet_name", subnet_name)
        if virtual_network_id is not None:
            pulumi.set(__self__, "virtual_network_id", virtual_network_id)
        if yarn_configuration is not None:
            pulumi.set(__self__, "yarn_configuration", yarn_configuration)
        if zookeeper_node_size is not None:
            pulumi.set(__self__, "zookeeper_node_size", zookeeper_node_size)

    @property
    @pulumi.getter(name="clusterResourceGroup")
    def cluster_resource_group(self) -> Any:
        """
        The resource group where the cluster belongs. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "cluster_resource_group")

    @property
    @pulumi.getter(name="clusterSize")
    def cluster_size(self) -> Any:
        """
        Number of worker/data nodes in the cluster. Suggestion value: 4. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "cluster_size")

    @property
    @pulumi.getter(name="hostSubscriptionId")
    def host_subscription_id(self) -> Any:
        """
        The customer’s subscription to host the cluster. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "host_subscription_id")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Azure Storage linked service to be used by the on-demand cluster for storing and processing data.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def tenant(self) -> Any:
        """
        The Tenant id/name to which the service principal belongs. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "tenant")

    @property
    @pulumi.getter(name="timeToLive")
    def time_to_live(self) -> Any:
        """
        The allowed idle time for the on-demand HDInsight cluster. Specifies how long the on-demand HDInsight cluster stays alive after completion of an activity run if there are no other active jobs in the cluster. The minimum value is 5 mins. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "time_to_live")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'HDInsightOnDemand'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def version(self) -> Any:
        """
        Version of the HDInsight cluster.  Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "version")

    @property
    @pulumi.getter(name="additionalLinkedServiceNames")
    def additional_linked_service_names(self) -> Optional[Sequence['outputs.LinkedServiceReferenceResponse']]:
        """
        Specifies additional storage accounts for the HDInsight linked service so that the Data Factory service can register them on your behalf.
        """
        return pulumi.get(self, "additional_linked_service_names")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="clusterNamePrefix")
    def cluster_name_prefix(self) -> Optional[Any]:
        """
        The prefix of cluster name, postfix will be distinct with timestamp. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "cluster_name_prefix")

    @property
    @pulumi.getter(name="clusterPassword")
    def cluster_password(self) -> Optional[Any]:
        """
        The password to access the cluster.
        """
        return pulumi.get(self, "cluster_password")

    @property
    @pulumi.getter(name="clusterSshPassword")
    def cluster_ssh_password(self) -> Optional[Any]:
        """
        The password to SSH remotely connect cluster’s node (for Linux).
        """
        return pulumi.get(self, "cluster_ssh_password")

    @property
    @pulumi.getter(name="clusterSshUserName")
    def cluster_ssh_user_name(self) -> Optional[Any]:
        """
        The username to SSH remotely connect to cluster’s node (for Linux). Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "cluster_ssh_user_name")

    @property
    @pulumi.getter(name="clusterType")
    def cluster_type(self) -> Optional[Any]:
        """
        The cluster type. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "cluster_type")

    @property
    @pulumi.getter(name="clusterUserName")
    def cluster_user_name(self) -> Optional[Any]:
        """
        The username to access the cluster. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "cluster_user_name")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="coreConfiguration")
    def core_configuration(self) -> Optional[Any]:
        """
        Specifies the core configuration parameters (as in core-site.xml) for the HDInsight cluster to be created.
        """
        return pulumi.get(self, "core_configuration")

    @property
    @pulumi.getter
    def credential(self) -> Optional['outputs.CredentialReferenceResponse']:
        """
        The credential reference containing authentication information.
        """
        return pulumi.get(self, "credential")

    @property
    @pulumi.getter(name="dataNodeSize")
    def data_node_size(self) -> Optional[Any]:
        """
        Specifies the size of the data node for the HDInsight cluster.
        """
        return pulumi.get(self, "data_node_size")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter(name="hBaseConfiguration")
    def h_base_configuration(self) -> Optional[Any]:
        """
        Specifies the HBase configuration parameters (hbase-site.xml) for the HDInsight cluster.
        """
        return pulumi.get(self, "h_base_configuration")

    @property
    @pulumi.getter(name="hcatalogLinkedServiceName")
    def hcatalog_linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        The name of Azure SQL linked service that point to the HCatalog database. The on-demand HDInsight cluster is created by using the Azure SQL database as the metastore.
        """
        return pulumi.get(self, "hcatalog_linked_service_name")

    @property
    @pulumi.getter(name="hdfsConfiguration")
    def hdfs_configuration(self) -> Optional[Any]:
        """
        Specifies the HDFS configuration parameters (hdfs-site.xml) for the HDInsight cluster.
        """
        return pulumi.get(self, "hdfs_configuration")

    @property
    @pulumi.getter(name="headNodeSize")
    def head_node_size(self) -> Optional[Any]:
        """
        Specifies the size of the head node for the HDInsight cluster.
        """
        return pulumi.get(self, "head_node_size")

    @property
    @pulumi.getter(name="hiveConfiguration")
    def hive_configuration(self) -> Optional[Any]:
        """
        Specifies the hive configuration parameters (hive-site.xml) for the HDInsight cluster.
        """
        return pulumi.get(self, "hive_configuration")

    @property
    @pulumi.getter(name="mapReduceConfiguration")
    def map_reduce_configuration(self) -> Optional[Any]:
        """
        Specifies the MapReduce configuration parameters (mapred-site.xml) for the HDInsight cluster.
        """
        return pulumi.get(self, "map_reduce_configuration")

    @property
    @pulumi.getter(name="oozieConfiguration")
    def oozie_configuration(self) -> Optional[Any]:
        """
        Specifies the Oozie configuration parameters (oozie-site.xml) for the HDInsight cluster.
        """
        return pulumi.get(self, "oozie_configuration")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="scriptActions")
    def script_actions(self) -> Optional[Sequence['outputs.ScriptActionResponse']]:
        """
        Custom script actions to run on HDI ondemand cluster once it's up. Please refer to https://docs.microsoft.com/en-us/azure/hdinsight/hdinsight-hadoop-customize-cluster-linux?toc=%2Fen-us%2Fazure%2Fhdinsight%2Fr-server%2FTOC.json&bc=%2Fen-us%2Fazure%2Fbread%2Ftoc.json#understanding-script-actions.
        """
        return pulumi.get(self, "script_actions")

    @property
    @pulumi.getter(name="servicePrincipalId")
    def service_principal_id(self) -> Optional[Any]:
        """
        The service principal id for the hostSubscriptionId. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_id")

    @property
    @pulumi.getter(name="servicePrincipalKey")
    def service_principal_key(self) -> Optional[Any]:
        """
        The key for the service principal id.
        """
        return pulumi.get(self, "service_principal_key")

    @property
    @pulumi.getter(name="sparkVersion")
    def spark_version(self) -> Optional[Any]:
        """
        The version of spark if the cluster type is 'spark'. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "spark_version")

    @property
    @pulumi.getter(name="stormConfiguration")
    def storm_configuration(self) -> Optional[Any]:
        """
        Specifies the Storm configuration parameters (storm-site.xml) for the HDInsight cluster.
        """
        return pulumi.get(self, "storm_configuration")

    @property
    @pulumi.getter(name="subnetName")
    def subnet_name(self) -> Optional[Any]:
        """
        The ARM resource ID for the subnet in the vNet. If virtualNetworkId was specified, then this property is required. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "subnet_name")

    @property
    @pulumi.getter(name="virtualNetworkId")
    def virtual_network_id(self) -> Optional[Any]:
        """
        The ARM resource ID for the vNet to which the cluster should be joined after creation. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "virtual_network_id")

    @property
    @pulumi.getter(name="yarnConfiguration")
    def yarn_configuration(self) -> Optional[Any]:
        """
        Specifies the Yarn configuration parameters (yarn-site.xml) for the HDInsight cluster.
        """
        return pulumi.get(self, "yarn_configuration")

    @property
    @pulumi.getter(name="zookeeperNodeSize")
    def zookeeper_node_size(self) -> Optional[Any]:
        """
        Specifies the size of the Zoo Keeper node for the HDInsight cluster.
        """
        return pulumi.get(self, "zookeeper_node_size")


@pulumi.output_type
class HDInsightPigActivityResponse(dict):
    """
    HDInsight Pig activity type.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dependsOn":
            suggest = "depends_on"
        elif key == "getDebugInfo":
            suggest = "get_debug_info"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "scriptLinkedService":
            suggest = "script_linked_service"
        elif key == "scriptPath":
            suggest = "script_path"
        elif key == "storageLinkedServices":
            suggest = "storage_linked_services"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HDInsightPigActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HDInsightPigActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HDInsightPigActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 type: str,
                 arguments: Optional[Any] = None,
                 defines: Optional[Mapping[str, Any]] = None,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 get_debug_info: Optional[str] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 script_linked_service: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 script_path: Optional[Any] = None,
                 storage_linked_services: Optional[Sequence['outputs.LinkedServiceReferenceResponse']] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        HDInsight Pig activity type.
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'HDInsightPig'.
        :param Any arguments: User specified arguments to HDInsightActivity. Type: array (or Expression with resultType array).
        :param Mapping[str, Any] defines: Allows user to specify defines for Pig job request.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param str get_debug_info: Debug info option.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param 'LinkedServiceReferenceResponse' script_linked_service: Script linked service reference.
        :param Any script_path: Script path. Type: string (or Expression with resultType string).
        :param Sequence['LinkedServiceReferenceResponse'] storage_linked_services: Storage linked service references.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'HDInsightPig')
        if arguments is not None:
            pulumi.set(__self__, "arguments", arguments)
        if defines is not None:
            pulumi.set(__self__, "defines", defines)
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if get_debug_info is not None:
            pulumi.set(__self__, "get_debug_info", get_debug_info)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if script_linked_service is not None:
            pulumi.set(__self__, "script_linked_service", script_linked_service)
        if script_path is not None:
            pulumi.set(__self__, "script_path", script_path)
        if storage_linked_services is not None:
            pulumi.set(__self__, "storage_linked_services", storage_linked_services)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'HDInsightPig'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def arguments(self) -> Optional[Any]:
        """
        User specified arguments to HDInsightActivity. Type: array (or Expression with resultType array).
        """
        return pulumi.get(self, "arguments")

    @property
    @pulumi.getter
    def defines(self) -> Optional[Mapping[str, Any]]:
        """
        Allows user to specify defines for Pig job request.
        """
        return pulumi.get(self, "defines")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="getDebugInfo")
    def get_debug_info(self) -> Optional[str]:
        """
        Debug info option.
        """
        return pulumi.get(self, "get_debug_info")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter(name="scriptLinkedService")
    def script_linked_service(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Script linked service reference.
        """
        return pulumi.get(self, "script_linked_service")

    @property
    @pulumi.getter(name="scriptPath")
    def script_path(self) -> Optional[Any]:
        """
        Script path. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "script_path")

    @property
    @pulumi.getter(name="storageLinkedServices")
    def storage_linked_services(self) -> Optional[Sequence['outputs.LinkedServiceReferenceResponse']]:
        """
        Storage linked service references.
        """
        return pulumi.get(self, "storage_linked_services")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class HDInsightSparkActivityResponse(dict):
    """
    HDInsight Spark activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "entryFilePath":
            suggest = "entry_file_path"
        elif key == "rootPath":
            suggest = "root_path"
        elif key == "className":
            suggest = "class_name"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "getDebugInfo":
            suggest = "get_debug_info"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "proxyUser":
            suggest = "proxy_user"
        elif key == "sparkConfig":
            suggest = "spark_config"
        elif key == "sparkJobLinkedService":
            suggest = "spark_job_linked_service"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HDInsightSparkActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HDInsightSparkActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HDInsightSparkActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 entry_file_path: Any,
                 name: str,
                 root_path: Any,
                 type: str,
                 arguments: Optional[Sequence[Any]] = None,
                 class_name: Optional[str] = None,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 get_debug_info: Optional[str] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 proxy_user: Optional[Any] = None,
                 spark_config: Optional[Mapping[str, Any]] = None,
                 spark_job_linked_service: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        HDInsight Spark activity.
        :param Any entry_file_path: The relative path to the root folder of the code/package to be executed. Type: string (or Expression with resultType string).
        :param str name: Activity name.
        :param Any root_path: The root path in 'sparkJobLinkedService' for all the job’s files. Type: string (or Expression with resultType string).
        :param str type: Type of activity.
               Expected value is 'HDInsightSpark'.
        :param Sequence[Any] arguments: The user-specified arguments to HDInsightSparkActivity.
        :param str class_name: The application's Java/Spark main class.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param str get_debug_info: Debug info option.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param Any proxy_user: The user to impersonate that will execute the job. Type: string (or Expression with resultType string).
        :param Mapping[str, Any] spark_config: Spark configuration property.
        :param 'LinkedServiceReferenceResponse' spark_job_linked_service: The storage linked service for uploading the entry file and dependencies, and for receiving logs.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "entry_file_path", entry_file_path)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "root_path", root_path)
        pulumi.set(__self__, "type", 'HDInsightSpark')
        if arguments is not None:
            pulumi.set(__self__, "arguments", arguments)
        if class_name is not None:
            pulumi.set(__self__, "class_name", class_name)
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if get_debug_info is not None:
            pulumi.set(__self__, "get_debug_info", get_debug_info)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if proxy_user is not None:
            pulumi.set(__self__, "proxy_user", proxy_user)
        if spark_config is not None:
            pulumi.set(__self__, "spark_config", spark_config)
        if spark_job_linked_service is not None:
            pulumi.set(__self__, "spark_job_linked_service", spark_job_linked_service)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter(name="entryFilePath")
    def entry_file_path(self) -> Any:
        """
        The relative path to the root folder of the code/package to be executed. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "entry_file_path")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="rootPath")
    def root_path(self) -> Any:
        """
        The root path in 'sparkJobLinkedService' for all the job’s files. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "root_path")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'HDInsightSpark'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def arguments(self) -> Optional[Sequence[Any]]:
        """
        The user-specified arguments to HDInsightSparkActivity.
        """
        return pulumi.get(self, "arguments")

    @property
    @pulumi.getter(name="className")
    def class_name(self) -> Optional[str]:
        """
        The application's Java/Spark main class.
        """
        return pulumi.get(self, "class_name")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="getDebugInfo")
    def get_debug_info(self) -> Optional[str]:
        """
        Debug info option.
        """
        return pulumi.get(self, "get_debug_info")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter(name="proxyUser")
    def proxy_user(self) -> Optional[Any]:
        """
        The user to impersonate that will execute the job. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "proxy_user")

    @property
    @pulumi.getter(name="sparkConfig")
    def spark_config(self) -> Optional[Mapping[str, Any]]:
        """
        Spark configuration property.
        """
        return pulumi.get(self, "spark_config")

    @property
    @pulumi.getter(name="sparkJobLinkedService")
    def spark_job_linked_service(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        The storage linked service for uploading the entry file and dependencies, and for receiving logs.
        """
        return pulumi.get(self, "spark_job_linked_service")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class HDInsightStreamingActivityResponse(dict):
    """
    HDInsight streaming activity type.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "filePaths":
            suggest = "file_paths"
        elif key == "commandEnvironment":
            suggest = "command_environment"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "fileLinkedService":
            suggest = "file_linked_service"
        elif key == "getDebugInfo":
            suggest = "get_debug_info"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "storageLinkedServices":
            suggest = "storage_linked_services"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HDInsightStreamingActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HDInsightStreamingActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HDInsightStreamingActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 file_paths: Sequence[Any],
                 input: Any,
                 mapper: Any,
                 name: str,
                 output: Any,
                 reducer: Any,
                 type: str,
                 arguments: Optional[Sequence[Any]] = None,
                 combiner: Optional[Any] = None,
                 command_environment: Optional[Sequence[Any]] = None,
                 defines: Optional[Mapping[str, Any]] = None,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 file_linked_service: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 get_debug_info: Optional[str] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 storage_linked_services: Optional[Sequence['outputs.LinkedServiceReferenceResponse']] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        HDInsight streaming activity type.
        :param Sequence[Any] file_paths: Paths to streaming job files. Can be directories.
        :param Any input: Input blob path. Type: string (or Expression with resultType string).
        :param Any mapper: Mapper executable name. Type: string (or Expression with resultType string).
        :param str name: Activity name.
        :param Any output: Output blob path. Type: string (or Expression with resultType string).
        :param Any reducer: Reducer executable name. Type: string (or Expression with resultType string).
        :param str type: Type of activity.
               Expected value is 'HDInsightStreaming'.
        :param Sequence[Any] arguments: User specified arguments to HDInsightActivity.
        :param Any combiner: Combiner executable name. Type: string (or Expression with resultType string).
        :param Sequence[Any] command_environment: Command line environment values.
        :param Mapping[str, Any] defines: Allows user to specify defines for streaming job request.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param 'LinkedServiceReferenceResponse' file_linked_service: Linked service reference where the files are located.
        :param str get_debug_info: Debug info option.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param Sequence['LinkedServiceReferenceResponse'] storage_linked_services: Storage linked service references.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "file_paths", file_paths)
        pulumi.set(__self__, "input", input)
        pulumi.set(__self__, "mapper", mapper)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "output", output)
        pulumi.set(__self__, "reducer", reducer)
        pulumi.set(__self__, "type", 'HDInsightStreaming')
        if arguments is not None:
            pulumi.set(__self__, "arguments", arguments)
        if combiner is not None:
            pulumi.set(__self__, "combiner", combiner)
        if command_environment is not None:
            pulumi.set(__self__, "command_environment", command_environment)
        if defines is not None:
            pulumi.set(__self__, "defines", defines)
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if file_linked_service is not None:
            pulumi.set(__self__, "file_linked_service", file_linked_service)
        if get_debug_info is not None:
            pulumi.set(__self__, "get_debug_info", get_debug_info)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if storage_linked_services is not None:
            pulumi.set(__self__, "storage_linked_services", storage_linked_services)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter(name="filePaths")
    def file_paths(self) -> Sequence[Any]:
        """
        Paths to streaming job files. Can be directories.
        """
        return pulumi.get(self, "file_paths")

    @property
    @pulumi.getter
    def input(self) -> Any:
        """
        Input blob path. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "input")

    @property
    @pulumi.getter
    def mapper(self) -> Any:
        """
        Mapper executable name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "mapper")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def output(self) -> Any:
        """
        Output blob path. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "output")

    @property
    @pulumi.getter
    def reducer(self) -> Any:
        """
        Reducer executable name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "reducer")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'HDInsightStreaming'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def arguments(self) -> Optional[Sequence[Any]]:
        """
        User specified arguments to HDInsightActivity.
        """
        return pulumi.get(self, "arguments")

    @property
    @pulumi.getter
    def combiner(self) -> Optional[Any]:
        """
        Combiner executable name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "combiner")

    @property
    @pulumi.getter(name="commandEnvironment")
    def command_environment(self) -> Optional[Sequence[Any]]:
        """
        Command line environment values.
        """
        return pulumi.get(self, "command_environment")

    @property
    @pulumi.getter
    def defines(self) -> Optional[Mapping[str, Any]]:
        """
        Allows user to specify defines for streaming job request.
        """
        return pulumi.get(self, "defines")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="fileLinkedService")
    def file_linked_service(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference where the files are located.
        """
        return pulumi.get(self, "file_linked_service")

    @property
    @pulumi.getter(name="getDebugInfo")
    def get_debug_info(self) -> Optional[str]:
        """
        Debug info option.
        """
        return pulumi.get(self, "get_debug_info")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter(name="storageLinkedServices")
    def storage_linked_services(self) -> Optional[Sequence['outputs.LinkedServiceReferenceResponse']]:
        """
        Storage linked service references.
        """
        return pulumi.get(self, "storage_linked_services")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class HdfsLinkedServiceResponse(dict):
    """
    Hadoop Distributed File System (HDFS) linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "userName":
            suggest = "user_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HdfsLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HdfsLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HdfsLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 url: Any,
                 annotations: Optional[Sequence[Any]] = None,
                 authentication_type: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 user_name: Optional[Any] = None):
        """
        Hadoop Distributed File System (HDFS) linked service.
        :param str type: Type of linked service.
               Expected value is 'Hdfs'.
        :param Any url: The URL of the HDFS service endpoint, e.g. http://myhostname:50070/webhdfs/v1 . Type: string (or Expression with resultType string).
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any authentication_type: Type of authentication used to connect to the HDFS. Possible values are: Anonymous and Windows. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password for Windows authentication.
        :param Any user_name: User name for Windows authentication. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'Hdfs')
        pulumi.set(__self__, "url", url)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if authentication_type is not None:
            pulumi.set(__self__, "authentication_type", authentication_type)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if user_name is not None:
            pulumi.set(__self__, "user_name", user_name)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Hdfs'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def url(self) -> Any:
        """
        The URL of the HDFS service endpoint, e.g. http://myhostname:50070/webhdfs/v1 . Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "url")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> Optional[Any]:
        """
        Type of authentication used to connect to the HDFS. Possible values are: Anonymous and Windows. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        Password for Windows authentication.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="userName")
    def user_name(self) -> Optional[Any]:
        """
        User name for Windows authentication. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "user_name")


@pulumi.output_type
class HdfsLocationResponse(dict):
    """
    The location of HDFS.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "fileName":
            suggest = "file_name"
        elif key == "folderPath":
            suggest = "folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HdfsLocationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HdfsLocationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HdfsLocationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 file_name: Optional[Any] = None,
                 folder_path: Optional[Any] = None):
        """
        The location of HDFS.
        :param str type: Type of dataset storage location.
               Expected value is 'HdfsLocation'.
        :param Any file_name: Specify the file name of dataset. Type: string (or Expression with resultType string).
        :param Any folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string)
        """
        pulumi.set(__self__, "type", 'HdfsLocation')
        if file_name is not None:
            pulumi.set(__self__, "file_name", file_name)
        if folder_path is not None:
            pulumi.set(__self__, "folder_path", folder_path)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset storage location.
        Expected value is 'HdfsLocation'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="fileName")
    def file_name(self) -> Optional[Any]:
        """
        Specify the file name of dataset. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_name")

    @property
    @pulumi.getter(name="folderPath")
    def folder_path(self) -> Optional[Any]:
        """
        Specify the folder path of dataset. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "folder_path")


@pulumi.output_type
class HdfsReadSettingsResponse(dict):
    """
    HDFS read settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deleteFilesAfterCompletion":
            suggest = "delete_files_after_completion"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "distcpSettings":
            suggest = "distcp_settings"
        elif key == "enablePartitionDiscovery":
            suggest = "enable_partition_discovery"
        elif key == "fileListPath":
            suggest = "file_list_path"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "modifiedDatetimeEnd":
            suggest = "modified_datetime_end"
        elif key == "modifiedDatetimeStart":
            suggest = "modified_datetime_start"
        elif key == "partitionRootPath":
            suggest = "partition_root_path"
        elif key == "wildcardFileName":
            suggest = "wildcard_file_name"
        elif key == "wildcardFolderPath":
            suggest = "wildcard_folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HdfsReadSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HdfsReadSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HdfsReadSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 delete_files_after_completion: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 distcp_settings: Optional['outputs.DistcpSettingsResponse'] = None,
                 enable_partition_discovery: Optional[bool] = None,
                 file_list_path: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 modified_datetime_end: Optional[Any] = None,
                 modified_datetime_start: Optional[Any] = None,
                 partition_root_path: Optional[Any] = None,
                 recursive: Optional[Any] = None,
                 wildcard_file_name: Optional[Any] = None,
                 wildcard_folder_path: Optional[Any] = None):
        """
        HDFS read settings.
        :param str type: The read setting type.
               Expected value is 'HdfsReadSettings'.
        :param Any delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param 'DistcpSettingsResponse' distcp_settings: Specifies Distcp-related settings.
        :param bool enable_partition_discovery: Indicates whether to enable partition discovery.
        :param Any file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string).
        :param Any modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string).
        :param Any partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        :param Any recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        :param Any wildcard_file_name: HDFS wildcardFileName. Type: string (or Expression with resultType string).
        :param Any wildcard_folder_path: HDFS wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'HdfsReadSettings')
        if delete_files_after_completion is not None:
            pulumi.set(__self__, "delete_files_after_completion", delete_files_after_completion)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if distcp_settings is not None:
            pulumi.set(__self__, "distcp_settings", distcp_settings)
        if enable_partition_discovery is not None:
            pulumi.set(__self__, "enable_partition_discovery", enable_partition_discovery)
        if file_list_path is not None:
            pulumi.set(__self__, "file_list_path", file_list_path)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if modified_datetime_end is not None:
            pulumi.set(__self__, "modified_datetime_end", modified_datetime_end)
        if modified_datetime_start is not None:
            pulumi.set(__self__, "modified_datetime_start", modified_datetime_start)
        if partition_root_path is not None:
            pulumi.set(__self__, "partition_root_path", partition_root_path)
        if recursive is not None:
            pulumi.set(__self__, "recursive", recursive)
        if wildcard_file_name is not None:
            pulumi.set(__self__, "wildcard_file_name", wildcard_file_name)
        if wildcard_folder_path is not None:
            pulumi.set(__self__, "wildcard_folder_path", wildcard_folder_path)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The read setting type.
        Expected value is 'HdfsReadSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="deleteFilesAfterCompletion")
    def delete_files_after_completion(self) -> Optional[Any]:
        """
        Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "delete_files_after_completion")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="distcpSettings")
    def distcp_settings(self) -> Optional['outputs.DistcpSettingsResponse']:
        """
        Specifies Distcp-related settings.
        """
        return pulumi.get(self, "distcp_settings")

    @property
    @pulumi.getter(name="enablePartitionDiscovery")
    def enable_partition_discovery(self) -> Optional[bool]:
        """
        Indicates whether to enable partition discovery.
        """
        return pulumi.get(self, "enable_partition_discovery")

    @property
    @pulumi.getter(name="fileListPath")
    def file_list_path(self) -> Optional[Any]:
        """
        Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_list_path")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="modifiedDatetimeEnd")
    def modified_datetime_end(self) -> Optional[Any]:
        """
        The end of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_end")

    @property
    @pulumi.getter(name="modifiedDatetimeStart")
    def modified_datetime_start(self) -> Optional[Any]:
        """
        The start of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_start")

    @property
    @pulumi.getter(name="partitionRootPath")
    def partition_root_path(self) -> Optional[Any]:
        """
        Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_root_path")

    @property
    @pulumi.getter
    def recursive(self) -> Optional[Any]:
        """
        If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "recursive")

    @property
    @pulumi.getter(name="wildcardFileName")
    def wildcard_file_name(self) -> Optional[Any]:
        """
        HDFS wildcardFileName. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_file_name")

    @property
    @pulumi.getter(name="wildcardFolderPath")
    def wildcard_folder_path(self) -> Optional[Any]:
        """
        HDFS wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_folder_path")


@pulumi.output_type
class HdfsSourceResponse(dict):
    """
    A copy activity HDFS source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "distcpSettings":
            suggest = "distcp_settings"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HdfsSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HdfsSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HdfsSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 distcp_settings: Optional['outputs.DistcpSettingsResponse'] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 recursive: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity HDFS source.
        :param str type: Copy source type.
               Expected value is 'HdfsSource'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param 'DistcpSettingsResponse' distcp_settings: Specifies Distcp-related settings.
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'HdfsSource')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if distcp_settings is not None:
            pulumi.set(__self__, "distcp_settings", distcp_settings)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if recursive is not None:
            pulumi.set(__self__, "recursive", recursive)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'HdfsSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="distcpSettings")
    def distcp_settings(self) -> Optional['outputs.DistcpSettingsResponse']:
        """
        Specifies Distcp-related settings.
        """
        return pulumi.get(self, "distcp_settings")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def recursive(self) -> Optional[Any]:
        """
        If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "recursive")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class HiveLinkedServiceResponse(dict):
    """
    Hive Server linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"
        elif key == "allowHostNameCNMismatch":
            suggest = "allow_host_name_cn_mismatch"
        elif key == "allowSelfSignedServerCert":
            suggest = "allow_self_signed_server_cert"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "enableSsl":
            suggest = "enable_ssl"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "httpPath":
            suggest = "http_path"
        elif key == "serverType":
            suggest = "server_type"
        elif key == "serviceDiscoveryMode":
            suggest = "service_discovery_mode"
        elif key == "thriftTransportProtocol":
            suggest = "thrift_transport_protocol"
        elif key == "trustedCertPath":
            suggest = "trusted_cert_path"
        elif key == "useNativeQuery":
            suggest = "use_native_query"
        elif key == "useSystemTrustStore":
            suggest = "use_system_trust_store"
        elif key == "zooKeeperNameSpace":
            suggest = "zoo_keeper_name_space"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HiveLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HiveLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HiveLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 authentication_type: str,
                 host: Any,
                 type: str,
                 allow_host_name_cn_mismatch: Optional[Any] = None,
                 allow_self_signed_server_cert: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 enable_ssl: Optional[Any] = None,
                 encrypted_credential: Optional[Any] = None,
                 http_path: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 port: Optional[Any] = None,
                 server_type: Optional[str] = None,
                 service_discovery_mode: Optional[Any] = None,
                 thrift_transport_protocol: Optional[str] = None,
                 trusted_cert_path: Optional[Any] = None,
                 use_native_query: Optional[Any] = None,
                 use_system_trust_store: Optional[Any] = None,
                 username: Optional[Any] = None,
                 zoo_keeper_name_space: Optional[Any] = None):
        """
        Hive Server linked service.
        :param str authentication_type: The authentication method used to access the Hive server.
        :param Any host: IP address or host name of the Hive server, separated by ';' for multiple hosts (only when serviceDiscoveryMode is enable).
        :param str type: Type of linked service.
               Expected value is 'Hive'.
        :param Any allow_host_name_cn_mismatch: Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false.
        :param Any allow_self_signed_server_cert: Specifies whether to allow self-signed certificates from the server. The default value is false.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any enable_ssl: Specifies whether the connections to the server are encrypted using SSL. The default value is false.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Any http_path: The partial URL corresponding to the Hive server.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The password corresponding to the user name that you provided in the Username field
        :param Any port: The TCP port that the Hive server uses to listen for client connections.
        :param str server_type: The type of Hive server.
        :param Any service_discovery_mode: true to indicate using the ZooKeeper service, false not.
        :param str thrift_transport_protocol: The transport protocol to use in the Thrift layer.
        :param Any trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR.
        :param Any use_native_query: Specifies whether the driver uses native HiveQL queries,or converts them into an equivalent form in HiveQL.
        :param Any use_system_trust_store: Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false.
        :param Any username: The user name that you use to access Hive Server.
        :param Any zoo_keeper_name_space: The namespace on ZooKeeper under which Hive Server 2 nodes are added.
        """
        pulumi.set(__self__, "authentication_type", authentication_type)
        pulumi.set(__self__, "host", host)
        pulumi.set(__self__, "type", 'Hive')
        if allow_host_name_cn_mismatch is not None:
            pulumi.set(__self__, "allow_host_name_cn_mismatch", allow_host_name_cn_mismatch)
        if allow_self_signed_server_cert is not None:
            pulumi.set(__self__, "allow_self_signed_server_cert", allow_self_signed_server_cert)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if enable_ssl is not None:
            pulumi.set(__self__, "enable_ssl", enable_ssl)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if http_path is not None:
            pulumi.set(__self__, "http_path", http_path)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if server_type is not None:
            pulumi.set(__self__, "server_type", server_type)
        if service_discovery_mode is not None:
            pulumi.set(__self__, "service_discovery_mode", service_discovery_mode)
        if thrift_transport_protocol is not None:
            pulumi.set(__self__, "thrift_transport_protocol", thrift_transport_protocol)
        if trusted_cert_path is not None:
            pulumi.set(__self__, "trusted_cert_path", trusted_cert_path)
        if use_native_query is not None:
            pulumi.set(__self__, "use_native_query", use_native_query)
        if use_system_trust_store is not None:
            pulumi.set(__self__, "use_system_trust_store", use_system_trust_store)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if zoo_keeper_name_space is not None:
            pulumi.set(__self__, "zoo_keeper_name_space", zoo_keeper_name_space)

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> str:
        """
        The authentication method used to access the Hive server.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter
    def host(self) -> Any:
        """
        IP address or host name of the Hive server, separated by ';' for multiple hosts (only when serviceDiscoveryMode is enable).
        """
        return pulumi.get(self, "host")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Hive'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="allowHostNameCNMismatch")
    def allow_host_name_cn_mismatch(self) -> Optional[Any]:
        """
        Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false.
        """
        return pulumi.get(self, "allow_host_name_cn_mismatch")

    @property
    @pulumi.getter(name="allowSelfSignedServerCert")
    def allow_self_signed_server_cert(self) -> Optional[Any]:
        """
        Specifies whether to allow self-signed certificates from the server. The default value is false.
        """
        return pulumi.get(self, "allow_self_signed_server_cert")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="enableSsl")
    def enable_ssl(self) -> Optional[Any]:
        """
        Specifies whether the connections to the server are encrypted using SSL. The default value is false.
        """
        return pulumi.get(self, "enable_ssl")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter(name="httpPath")
    def http_path(self) -> Optional[Any]:
        """
        The partial URL corresponding to the Hive server.
        """
        return pulumi.get(self, "http_path")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        The password corresponding to the user name that you provided in the Username field
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def port(self) -> Optional[Any]:
        """
        The TCP port that the Hive server uses to listen for client connections.
        """
        return pulumi.get(self, "port")

    @property
    @pulumi.getter(name="serverType")
    def server_type(self) -> Optional[str]:
        """
        The type of Hive server.
        """
        return pulumi.get(self, "server_type")

    @property
    @pulumi.getter(name="serviceDiscoveryMode")
    def service_discovery_mode(self) -> Optional[Any]:
        """
        true to indicate using the ZooKeeper service, false not.
        """
        return pulumi.get(self, "service_discovery_mode")

    @property
    @pulumi.getter(name="thriftTransportProtocol")
    def thrift_transport_protocol(self) -> Optional[str]:
        """
        The transport protocol to use in the Thrift layer.
        """
        return pulumi.get(self, "thrift_transport_protocol")

    @property
    @pulumi.getter(name="trustedCertPath")
    def trusted_cert_path(self) -> Optional[Any]:
        """
        The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR.
        """
        return pulumi.get(self, "trusted_cert_path")

    @property
    @pulumi.getter(name="useNativeQuery")
    def use_native_query(self) -> Optional[Any]:
        """
        Specifies whether the driver uses native HiveQL queries,or converts them into an equivalent form in HiveQL.
        """
        return pulumi.get(self, "use_native_query")

    @property
    @pulumi.getter(name="useSystemTrustStore")
    def use_system_trust_store(self) -> Optional[Any]:
        """
        Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false.
        """
        return pulumi.get(self, "use_system_trust_store")

    @property
    @pulumi.getter
    def username(self) -> Optional[Any]:
        """
        The user name that you use to access Hive Server.
        """
        return pulumi.get(self, "username")

    @property
    @pulumi.getter(name="zooKeeperNameSpace")
    def zoo_keeper_name_space(self) -> Optional[Any]:
        """
        The namespace on ZooKeeper under which Hive Server 2 nodes are added.
        """
        return pulumi.get(self, "zoo_keeper_name_space")


@pulumi.output_type
class HiveObjectDatasetResponse(dict):
    """
    Hive Server dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HiveObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HiveObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HiveObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Hive Server dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'HiveObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The table name of the Hive. Type: string (or Expression with resultType string).
        :param Any table_name: This property will be retired. Please consider using schema + table properties instead.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'HiveObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'HiveObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The table name of the Hive. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        This property will be retired. Please consider using schema + table properties instead.
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class HiveSourceResponse(dict):
    """
    A copy activity Hive Server source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HiveSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HiveSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HiveSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Hive Server source.
        :param str type: Copy source type.
               Expected value is 'HiveSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'HiveSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'HiveSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class HttpDatasetResponse(dict):
    """
    A file in an HTTP web server.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "additionalHeaders":
            suggest = "additional_headers"
        elif key == "relativeUrl":
            suggest = "relative_url"
        elif key == "requestBody":
            suggest = "request_body"
        elif key == "requestMethod":
            suggest = "request_method"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HttpDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HttpDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HttpDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 additional_headers: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 compression: Optional['outputs.DatasetCompressionResponse'] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 format: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 relative_url: Optional[Any] = None,
                 request_body: Optional[Any] = None,
                 request_method: Optional[Any] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        A file in an HTTP web server.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'HttpFile'.
        :param Any additional_headers: The headers for the HTTP Request. e.g. request-header-name-1:request-header-value-1
               ...
               request-header-name-n:request-header-value-n Type: string (or Expression with resultType string).
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param 'DatasetCompressionResponse' compression: The data compression method used on files.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Union['AvroFormatResponse', 'JsonFormatResponse', 'OrcFormatResponse', 'ParquetFormatResponse', 'TextFormatResponse'] format: The format of files.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any relative_url: The relative URL based on the URL in the HttpLinkedService refers to an HTTP file Type: string (or Expression with resultType string).
        :param Any request_body: The body for the HTTP request. Type: string (or Expression with resultType string).
        :param Any request_method: The HTTP method for the HTTP request. Type: string (or Expression with resultType string).
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'HttpFile')
        if additional_headers is not None:
            pulumi.set(__self__, "additional_headers", additional_headers)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if compression is not None:
            pulumi.set(__self__, "compression", compression)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if format is not None:
            pulumi.set(__self__, "format", format)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if relative_url is not None:
            pulumi.set(__self__, "relative_url", relative_url)
        if request_body is not None:
            pulumi.set(__self__, "request_body", request_body)
        if request_method is not None:
            pulumi.set(__self__, "request_method", request_method)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'HttpFile'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalHeaders")
    def additional_headers(self) -> Optional[Any]:
        """
        The headers for the HTTP Request. e.g. request-header-name-1:request-header-value-1
        ...
        request-header-name-n:request-header-value-n Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "additional_headers")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def compression(self) -> Optional['outputs.DatasetCompressionResponse']:
        """
        The data compression method used on files.
        """
        return pulumi.get(self, "compression")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def format(self) -> Optional[Any]:
        """
        The format of files.
        """
        return pulumi.get(self, "format")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="relativeUrl")
    def relative_url(self) -> Optional[Any]:
        """
        The relative URL based on the URL in the HttpLinkedService refers to an HTTP file Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "relative_url")

    @property
    @pulumi.getter(name="requestBody")
    def request_body(self) -> Optional[Any]:
        """
        The body for the HTTP request. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "request_body")

    @property
    @pulumi.getter(name="requestMethod")
    def request_method(self) -> Optional[Any]:
        """
        The HTTP method for the HTTP request. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "request_method")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class HttpLinkedServiceResponse(dict):
    """
    Linked service for an HTTP source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authHeaders":
            suggest = "auth_headers"
        elif key == "authenticationType":
            suggest = "authentication_type"
        elif key == "certThumbprint":
            suggest = "cert_thumbprint"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "embeddedCertData":
            suggest = "embedded_cert_data"
        elif key == "enableServerCertificateValidation":
            suggest = "enable_server_certificate_validation"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "userName":
            suggest = "user_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HttpLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HttpLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HttpLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 url: Any,
                 annotations: Optional[Sequence[Any]] = None,
                 auth_headers: Optional[Any] = None,
                 authentication_type: Optional[str] = None,
                 cert_thumbprint: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 embedded_cert_data: Optional[Any] = None,
                 enable_server_certificate_validation: Optional[Any] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 user_name: Optional[Any] = None):
        """
        Linked service for an HTTP source.
        :param str type: Type of linked service.
               Expected value is 'HttpServer'.
        :param Any url: The base URL of the HTTP endpoint, e.g. http://www.microsoft.com. Type: string (or Expression with resultType string).
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any auth_headers: The additional HTTP headers in the request to RESTful API used for authorization. Type: object (or Expression with resultType object).
        :param str authentication_type: The authentication type to be used to connect to the HTTP server.
        :param Any cert_thumbprint: 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 (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any embedded_cert_data: Base64 encoded certificate data for ClientCertificate authentication. For on-premises copy with ClientCertificate authentication, either CertThumbprint or EmbeddedCertData/Password should be specified. Type: string (or Expression with resultType string).
        :param Any enable_server_certificate_validation: If true, validate the HTTPS server SSL certificate. Default value is true. Type: boolean (or Expression with resultType boolean).
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password for Basic, Digest, Windows, or ClientCertificate with EmbeddedCertData authentication.
        :param Any user_name: User name for Basic, Digest, or Windows authentication. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'HttpServer')
        pulumi.set(__self__, "url", url)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if auth_headers is not None:
            pulumi.set(__self__, "auth_headers", auth_headers)
        if authentication_type is not None:
            pulumi.set(__self__, "authentication_type", authentication_type)
        if cert_thumbprint is not None:
            pulumi.set(__self__, "cert_thumbprint", cert_thumbprint)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if embedded_cert_data is not None:
            pulumi.set(__self__, "embedded_cert_data", embedded_cert_data)
        if enable_server_certificate_validation is not None:
            pulumi.set(__self__, "enable_server_certificate_validation", enable_server_certificate_validation)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if user_name is not None:
            pulumi.set(__self__, "user_name", user_name)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'HttpServer'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def url(self) -> Any:
        """
        The base URL of the HTTP endpoint, e.g. http://www.microsoft.com. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "url")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="authHeaders")
    def auth_headers(self) -> Optional[Any]:
        """
        The additional HTTP headers in the request to RESTful API used for authorization. Type: object (or Expression with resultType object).
        """
        return pulumi.get(self, "auth_headers")

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> Optional[str]:
        """
        The authentication type to be used to connect to the HTTP server.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter(name="certThumbprint")
    def cert_thumbprint(self) -> Optional[Any]:
        """
        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 (or Expression with resultType string).
        """
        return pulumi.get(self, "cert_thumbprint")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="embeddedCertData")
    def embedded_cert_data(self) -> Optional[Any]:
        """
        Base64 encoded certificate data for ClientCertificate authentication. For on-premises copy with ClientCertificate authentication, either CertThumbprint or EmbeddedCertData/Password should be specified. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "embedded_cert_data")

    @property
    @pulumi.getter(name="enableServerCertificateValidation")
    def enable_server_certificate_validation(self) -> Optional[Any]:
        """
        If true, validate the HTTPS server SSL certificate. Default value is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "enable_server_certificate_validation")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        Password for Basic, Digest, Windows, or ClientCertificate with EmbeddedCertData authentication.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="userName")
    def user_name(self) -> Optional[Any]:
        """
        User name for Basic, Digest, or Windows authentication. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "user_name")


@pulumi.output_type
class HttpReadSettingsResponse(dict):
    """
    Sftp read settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalHeaders":
            suggest = "additional_headers"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "enablePartitionDiscovery":
            suggest = "enable_partition_discovery"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "partitionRootPath":
            suggest = "partition_root_path"
        elif key == "requestBody":
            suggest = "request_body"
        elif key == "requestMethod":
            suggest = "request_method"
        elif key == "requestTimeout":
            suggest = "request_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HttpReadSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HttpReadSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HttpReadSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_headers: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 enable_partition_discovery: Optional[bool] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 partition_root_path: Optional[Any] = None,
                 request_body: Optional[Any] = None,
                 request_method: Optional[Any] = None,
                 request_timeout: Optional[Any] = None):
        """
        Sftp read settings.
        :param str type: The read setting type.
               Expected value is 'HttpReadSettings'.
        :param Any additional_headers: The additional HTTP headers in the request to the RESTful API. Type: string (or Expression with resultType string).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param bool enable_partition_discovery: Indicates whether to enable partition discovery.
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        :param Any request_body: The HTTP request body to the RESTful API if requestMethod is POST. Type: string (or Expression with resultType string).
        :param Any request_method: The HTTP method used to call the RESTful API. The default is GET. Type: string (or Expression with resultType string).
        :param Any request_timeout: Specifies the timeout for a HTTP client to get HTTP response from HTTP server.
        """
        pulumi.set(__self__, "type", 'HttpReadSettings')
        if additional_headers is not None:
            pulumi.set(__self__, "additional_headers", additional_headers)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if enable_partition_discovery is not None:
            pulumi.set(__self__, "enable_partition_discovery", enable_partition_discovery)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if partition_root_path is not None:
            pulumi.set(__self__, "partition_root_path", partition_root_path)
        if request_body is not None:
            pulumi.set(__self__, "request_body", request_body)
        if request_method is not None:
            pulumi.set(__self__, "request_method", request_method)
        if request_timeout is not None:
            pulumi.set(__self__, "request_timeout", request_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The read setting type.
        Expected value is 'HttpReadSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalHeaders")
    def additional_headers(self) -> Optional[Any]:
        """
        The additional HTTP headers in the request to the RESTful API. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "additional_headers")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="enablePartitionDiscovery")
    def enable_partition_discovery(self) -> Optional[bool]:
        """
        Indicates whether to enable partition discovery.
        """
        return pulumi.get(self, "enable_partition_discovery")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="partitionRootPath")
    def partition_root_path(self) -> Optional[Any]:
        """
        Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_root_path")

    @property
    @pulumi.getter(name="requestBody")
    def request_body(self) -> Optional[Any]:
        """
        The HTTP request body to the RESTful API if requestMethod is POST. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "request_body")

    @property
    @pulumi.getter(name="requestMethod")
    def request_method(self) -> Optional[Any]:
        """
        The HTTP method used to call the RESTful API. The default is GET. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "request_method")

    @property
    @pulumi.getter(name="requestTimeout")
    def request_timeout(self) -> Optional[Any]:
        """
        Specifies the timeout for a HTTP client to get HTTP response from HTTP server.
        """
        return pulumi.get(self, "request_timeout")


@pulumi.output_type
class HttpServerLocationResponse(dict):
    """
    The location of http server.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "fileName":
            suggest = "file_name"
        elif key == "folderPath":
            suggest = "folder_path"
        elif key == "relativeUrl":
            suggest = "relative_url"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HttpServerLocationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HttpServerLocationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HttpServerLocationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 file_name: Optional[Any] = None,
                 folder_path: Optional[Any] = None,
                 relative_url: Optional[Any] = None):
        """
        The location of http server.
        :param str type: Type of dataset storage location.
               Expected value is 'HttpServerLocation'.
        :param Any file_name: Specify the file name of dataset. Type: string (or Expression with resultType string).
        :param Any folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string)
        :param Any relative_url: Specify the relativeUrl of http server. Type: string (or Expression with resultType string)
        """
        pulumi.set(__self__, "type", 'HttpServerLocation')
        if file_name is not None:
            pulumi.set(__self__, "file_name", file_name)
        if folder_path is not None:
            pulumi.set(__self__, "folder_path", folder_path)
        if relative_url is not None:
            pulumi.set(__self__, "relative_url", relative_url)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset storage location.
        Expected value is 'HttpServerLocation'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="fileName")
    def file_name(self) -> Optional[Any]:
        """
        Specify the file name of dataset. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_name")

    @property
    @pulumi.getter(name="folderPath")
    def folder_path(self) -> Optional[Any]:
        """
        Specify the folder path of dataset. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "folder_path")

    @property
    @pulumi.getter(name="relativeUrl")
    def relative_url(self) -> Optional[Any]:
        """
        Specify the relativeUrl of http server. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "relative_url")


@pulumi.output_type
class HttpSourceResponse(dict):
    """
    A copy activity source for an HTTP file.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "httpRequestTimeout":
            suggest = "http_request_timeout"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HttpSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HttpSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HttpSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 http_request_timeout: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for an HTTP file.
        :param str type: Copy source type.
               Expected value is 'HttpSource'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any http_request_timeout: 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 (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'HttpSource')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if http_request_timeout is not None:
            pulumi.set(__self__, "http_request_timeout", http_request_timeout)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'HttpSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="httpRequestTimeout")
    def http_request_timeout(self) -> Optional[Any]:
        """
        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 (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "http_request_timeout")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class HubspotLinkedServiceResponse(dict):
    """
    Hubspot Service linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "clientId":
            suggest = "client_id"
        elif key == "accessToken":
            suggest = "access_token"
        elif key == "clientSecret":
            suggest = "client_secret"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "refreshToken":
            suggest = "refresh_token"
        elif key == "useEncryptedEndpoints":
            suggest = "use_encrypted_endpoints"
        elif key == "useHostVerification":
            suggest = "use_host_verification"
        elif key == "usePeerVerification":
            suggest = "use_peer_verification"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HubspotLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HubspotLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HubspotLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 client_id: Any,
                 type: str,
                 access_token: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 client_secret: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 refresh_token: Optional[Any] = None,
                 use_encrypted_endpoints: Optional[Any] = None,
                 use_host_verification: Optional[Any] = None,
                 use_peer_verification: Optional[Any] = None):
        """
        Hubspot Service linked service.
        :param Any client_id: The client ID associated with your Hubspot application.
        :param str type: Type of linked service.
               Expected value is 'Hubspot'.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] access_token: The access token obtained when initially authenticating your OAuth integration.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] client_secret: The client secret associated with your Hubspot application.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] refresh_token: The refresh token obtained when initially authenticating your OAuth integration.
        :param Any use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        :param Any use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        :param Any use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        pulumi.set(__self__, "client_id", client_id)
        pulumi.set(__self__, "type", 'Hubspot')
        if access_token is not None:
            pulumi.set(__self__, "access_token", access_token)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if client_secret is not None:
            pulumi.set(__self__, "client_secret", client_secret)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if refresh_token is not None:
            pulumi.set(__self__, "refresh_token", refresh_token)
        if use_encrypted_endpoints is not None:
            pulumi.set(__self__, "use_encrypted_endpoints", use_encrypted_endpoints)
        if use_host_verification is not None:
            pulumi.set(__self__, "use_host_verification", use_host_verification)
        if use_peer_verification is not None:
            pulumi.set(__self__, "use_peer_verification", use_peer_verification)

    @property
    @pulumi.getter(name="clientId")
    def client_id(self) -> Any:
        """
        The client ID associated with your Hubspot application.
        """
        return pulumi.get(self, "client_id")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Hubspot'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="accessToken")
    def access_token(self) -> Optional[Any]:
        """
        The access token obtained when initially authenticating your OAuth integration.
        """
        return pulumi.get(self, "access_token")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="clientSecret")
    def client_secret(self) -> Optional[Any]:
        """
        The client secret associated with your Hubspot application.
        """
        return pulumi.get(self, "client_secret")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="refreshToken")
    def refresh_token(self) -> Optional[Any]:
        """
        The refresh token obtained when initially authenticating your OAuth integration.
        """
        return pulumi.get(self, "refresh_token")

    @property
    @pulumi.getter(name="useEncryptedEndpoints")
    def use_encrypted_endpoints(self) -> Optional[Any]:
        """
        Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        """
        return pulumi.get(self, "use_encrypted_endpoints")

    @property
    @pulumi.getter(name="useHostVerification")
    def use_host_verification(self) -> Optional[Any]:
        """
        Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_host_verification")

    @property
    @pulumi.getter(name="usePeerVerification")
    def use_peer_verification(self) -> Optional[Any]:
        """
        Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_peer_verification")


@pulumi.output_type
class HubspotObjectDatasetResponse(dict):
    """
    Hubspot Service dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HubspotObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HubspotObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HubspotObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Hubspot Service dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'HubspotObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'HubspotObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'HubspotObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class HubspotSourceResponse(dict):
    """
    A copy activity Hubspot Service source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in HubspotSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        HubspotSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        HubspotSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Hubspot Service source.
        :param str type: Copy source type.
               Expected value is 'HubspotSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'HubspotSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'HubspotSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class IfConditionActivityResponse(dict):
    """
    This activity evaluates a boolean expression and executes either the activities under the ifTrueActivities property or the ifFalseActivities property depending on the result of the expression.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dependsOn":
            suggest = "depends_on"
        elif key == "ifFalseActivities":
            suggest = "if_false_activities"
        elif key == "ifTrueActivities":
            suggest = "if_true_activities"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in IfConditionActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        IfConditionActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        IfConditionActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 expression: 'outputs.ExpressionResponse',
                 name: str,
                 type: str,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 if_false_activities: Optional[Sequence[Any]] = None,
                 if_true_activities: Optional[Sequence[Any]] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        This activity evaluates a boolean expression and executes either the activities under the ifTrueActivities property or the ifFalseActivities property depending on the result of the expression.
        :param 'ExpressionResponse' expression: An expression that would evaluate to Boolean. This is used to determine the block of activities (ifTrueActivities or ifFalseActivities) that will be executed.
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'IfCondition'.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Sequence[Union['AppendVariableActivityResponse', 'AzureDataExplorerCommandActivityResponse', 'AzureFunctionActivityResponse', 'AzureMLBatchExecutionActivityResponse', 'AzureMLExecutePipelineActivityResponse', 'AzureMLUpdateResourceActivityResponse', 'ControlActivityResponse', 'CopyActivityResponse', 'CustomActivityResponse', 'DataLakeAnalyticsUSQLActivityResponse', 'DatabricksNotebookActivityResponse', 'DatabricksSparkJarActivityResponse', 'DatabricksSparkPythonActivityResponse', 'DeleteActivityResponse', 'ExecuteDataFlowActivityResponse', 'ExecutePipelineActivityResponse', 'ExecuteSSISPackageActivityResponse', 'ExecuteWranglingDataflowActivityResponse', 'ExecutionActivityResponse', 'FailActivityResponse', 'FilterActivityResponse', 'ForEachActivityResponse', 'GetMetadataActivityResponse', 'HDInsightHiveActivityResponse', 'HDInsightMapReduceActivityResponse', 'HDInsightPigActivityResponse', 'HDInsightSparkActivityResponse', 'HDInsightStreamingActivityResponse', 'IfConditionActivityResponse', 'LookupActivityResponse', 'ScriptActivityResponse', 'SetVariableActivityResponse', 'SqlServerStoredProcedureActivityResponse', 'SwitchActivityResponse', 'UntilActivityResponse', 'ValidationActivityResponse', 'WaitActivityResponse', 'WebActivityResponse', 'WebHookActivityResponse']] if_false_activities: List of activities to execute if expression is evaluated to false. This is an optional property and if not provided, the activity will exit without any action.
        :param Sequence[Union['AppendVariableActivityResponse', 'AzureDataExplorerCommandActivityResponse', 'AzureFunctionActivityResponse', 'AzureMLBatchExecutionActivityResponse', 'AzureMLExecutePipelineActivityResponse', 'AzureMLUpdateResourceActivityResponse', 'ControlActivityResponse', 'CopyActivityResponse', 'CustomActivityResponse', 'DataLakeAnalyticsUSQLActivityResponse', 'DatabricksNotebookActivityResponse', 'DatabricksSparkJarActivityResponse', 'DatabricksSparkPythonActivityResponse', 'DeleteActivityResponse', 'ExecuteDataFlowActivityResponse', 'ExecutePipelineActivityResponse', 'ExecuteSSISPackageActivityResponse', 'ExecuteWranglingDataflowActivityResponse', 'ExecutionActivityResponse', 'FailActivityResponse', 'FilterActivityResponse', 'ForEachActivityResponse', 'GetMetadataActivityResponse', 'HDInsightHiveActivityResponse', 'HDInsightMapReduceActivityResponse', 'HDInsightPigActivityResponse', 'HDInsightSparkActivityResponse', 'HDInsightStreamingActivityResponse', 'IfConditionActivityResponse', 'LookupActivityResponse', 'ScriptActivityResponse', 'SetVariableActivityResponse', 'SqlServerStoredProcedureActivityResponse', 'SwitchActivityResponse', 'UntilActivityResponse', 'ValidationActivityResponse', 'WaitActivityResponse', 'WebActivityResponse', 'WebHookActivityResponse']] if_true_activities: List of activities to execute if expression is evaluated to true. This is an optional property and if not provided, the activity will exit without any action.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "expression", expression)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'IfCondition')
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if if_false_activities is not None:
            pulumi.set(__self__, "if_false_activities", if_false_activities)
        if if_true_activities is not None:
            pulumi.set(__self__, "if_true_activities", if_true_activities)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter
    def expression(self) -> 'outputs.ExpressionResponse':
        """
        An expression that would evaluate to Boolean. This is used to determine the block of activities (ifTrueActivities or ifFalseActivities) that will be executed.
        """
        return pulumi.get(self, "expression")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'IfCondition'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="ifFalseActivities")
    def if_false_activities(self) -> Optional[Sequence[Any]]:
        """
        List of activities to execute if expression is evaluated to false. This is an optional property and if not provided, the activity will exit without any action.
        """
        return pulumi.get(self, "if_false_activities")

    @property
    @pulumi.getter(name="ifTrueActivities")
    def if_true_activities(self) -> Optional[Sequence[Any]]:
        """
        List of activities to execute if expression is evaluated to true. This is an optional property and if not provided, the activity will exit without any action.
        """
        return pulumi.get(self, "if_true_activities")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class ImpalaLinkedServiceResponse(dict):
    """
    Impala server linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"
        elif key == "allowHostNameCNMismatch":
            suggest = "allow_host_name_cn_mismatch"
        elif key == "allowSelfSignedServerCert":
            suggest = "allow_self_signed_server_cert"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "enableSsl":
            suggest = "enable_ssl"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "trustedCertPath":
            suggest = "trusted_cert_path"
        elif key == "useSystemTrustStore":
            suggest = "use_system_trust_store"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ImpalaLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ImpalaLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ImpalaLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 authentication_type: str,
                 host: Any,
                 type: str,
                 allow_host_name_cn_mismatch: Optional[Any] = None,
                 allow_self_signed_server_cert: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 enable_ssl: Optional[Any] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 port: Optional[Any] = None,
                 trusted_cert_path: Optional[Any] = None,
                 use_system_trust_store: Optional[Any] = None,
                 username: Optional[Any] = None):
        """
        Impala server linked service.
        :param str authentication_type: The authentication type to use.
        :param Any host: The IP address or host name of the Impala server. (i.e. 192.168.222.160)
        :param str type: Type of linked service.
               Expected value is 'Impala'.
        :param Any allow_host_name_cn_mismatch: Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false.
        :param Any allow_self_signed_server_cert: Specifies whether to allow self-signed certificates from the server. The default value is false.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any enable_ssl: Specifies whether the connections to the server are encrypted using SSL. The default value is false.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The password corresponding to the user name when using UsernameAndPassword.
        :param Any port: The TCP port that the Impala server uses to listen for client connections. The default value is 21050.
        :param Any trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR.
        :param Any use_system_trust_store: Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false.
        :param Any username: The user name used to access the Impala server. The default value is anonymous when using SASLUsername.
        """
        pulumi.set(__self__, "authentication_type", authentication_type)
        pulumi.set(__self__, "host", host)
        pulumi.set(__self__, "type", 'Impala')
        if allow_host_name_cn_mismatch is not None:
            pulumi.set(__self__, "allow_host_name_cn_mismatch", allow_host_name_cn_mismatch)
        if allow_self_signed_server_cert is not None:
            pulumi.set(__self__, "allow_self_signed_server_cert", allow_self_signed_server_cert)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if enable_ssl is not None:
            pulumi.set(__self__, "enable_ssl", enable_ssl)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if trusted_cert_path is not None:
            pulumi.set(__self__, "trusted_cert_path", trusted_cert_path)
        if use_system_trust_store is not None:
            pulumi.set(__self__, "use_system_trust_store", use_system_trust_store)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> str:
        """
        The authentication type to use.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter
    def host(self) -> Any:
        """
        The IP address or host name of the Impala server. (i.e. 192.168.222.160)
        """
        return pulumi.get(self, "host")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Impala'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="allowHostNameCNMismatch")
    def allow_host_name_cn_mismatch(self) -> Optional[Any]:
        """
        Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false.
        """
        return pulumi.get(self, "allow_host_name_cn_mismatch")

    @property
    @pulumi.getter(name="allowSelfSignedServerCert")
    def allow_self_signed_server_cert(self) -> Optional[Any]:
        """
        Specifies whether to allow self-signed certificates from the server. The default value is false.
        """
        return pulumi.get(self, "allow_self_signed_server_cert")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="enableSsl")
    def enable_ssl(self) -> Optional[Any]:
        """
        Specifies whether the connections to the server are encrypted using SSL. The default value is false.
        """
        return pulumi.get(self, "enable_ssl")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        The password corresponding to the user name when using UsernameAndPassword.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def port(self) -> Optional[Any]:
        """
        The TCP port that the Impala server uses to listen for client connections. The default value is 21050.
        """
        return pulumi.get(self, "port")

    @property
    @pulumi.getter(name="trustedCertPath")
    def trusted_cert_path(self) -> Optional[Any]:
        """
        The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR.
        """
        return pulumi.get(self, "trusted_cert_path")

    @property
    @pulumi.getter(name="useSystemTrustStore")
    def use_system_trust_store(self) -> Optional[Any]:
        """
        Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false.
        """
        return pulumi.get(self, "use_system_trust_store")

    @property
    @pulumi.getter
    def username(self) -> Optional[Any]:
        """
        The user name used to access the Impala server. The default value is anonymous when using SASLUsername.
        """
        return pulumi.get(self, "username")


@pulumi.output_type
class ImpalaObjectDatasetResponse(dict):
    """
    Impala server dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ImpalaObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ImpalaObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ImpalaObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Impala server dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'ImpalaObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The table name of the Impala. Type: string (or Expression with resultType string).
        :param Any table_name: This property will be retired. Please consider using schema + table properties instead.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'ImpalaObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'ImpalaObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The table name of the Impala. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        This property will be retired. Please consider using schema + table properties instead.
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class ImpalaSourceResponse(dict):
    """
    A copy activity Impala server source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ImpalaSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ImpalaSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ImpalaSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Impala server source.
        :param str type: Copy source type.
               Expected value is 'ImpalaSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'ImpalaSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'ImpalaSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class InformixLinkedServiceResponse(dict):
    """
    Informix linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectionString":
            suggest = "connection_string"
        elif key == "authenticationType":
            suggest = "authentication_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "userName":
            suggest = "user_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in InformixLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        InformixLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        InformixLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 connection_string: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 authentication_type: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 credential: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 user_name: Optional[Any] = None):
        """
        Informix linked service.
        :param Any connection_string: The non-access credential portion of the connection string as well as an optional encrypted credential. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str type: Type of linked service.
               Expected value is 'Informix'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any authentication_type: Type of authentication used to connect to the Informix as ODBC data store. Possible values are: Anonymous and Basic. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] credential: The access credential portion of the connection string specified in driver-specific property-value format.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password for Basic authentication.
        :param Any user_name: User name for Basic authentication. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "connection_string", connection_string)
        pulumi.set(__self__, "type", 'Informix')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if authentication_type is not None:
            pulumi.set(__self__, "authentication_type", authentication_type)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if credential is not None:
            pulumi.set(__self__, "credential", credential)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if user_name is not None:
            pulumi.set(__self__, "user_name", user_name)

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Any:
        """
        The non-access credential portion of the connection string as well as an optional encrypted credential. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Informix'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> Optional[Any]:
        """
        Type of authentication used to connect to the Informix as ODBC data store. Possible values are: Anonymous and Basic. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def credential(self) -> Optional[Any]:
        """
        The access credential portion of the connection string specified in driver-specific property-value format.
        """
        return pulumi.get(self, "credential")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        Password for Basic authentication.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="userName")
    def user_name(self) -> Optional[Any]:
        """
        User name for Basic authentication. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "user_name")


@pulumi.output_type
class InformixSinkResponse(dict):
    """
    A copy activity Informix sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "preCopyScript":
            suggest = "pre_copy_script"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in InformixSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        InformixSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        InformixSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 pre_copy_script: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity Informix sink.
        :param str type: Copy sink type.
               Expected value is 'InformixSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any pre_copy_script: A query to execute before starting the copy. Type: string (or Expression with resultType string).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'InformixSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if pre_copy_script is not None:
            pulumi.set(__self__, "pre_copy_script", pre_copy_script)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'InformixSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="preCopyScript")
    def pre_copy_script(self) -> Optional[Any]:
        """
        A query to execute before starting the copy. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "pre_copy_script")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class InformixSourceResponse(dict):
    """
    A copy activity source for Informix.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in InformixSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        InformixSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        InformixSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for Informix.
        :param str type: Copy source type.
               Expected value is 'InformixSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: Database query. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'InformixSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'InformixSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        Database query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class InformixTableDatasetResponse(dict):
    """
    The Informix table dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in InformixTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        InformixTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        InformixTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        The Informix table dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'InformixTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The Informix table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'InformixTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'InformixTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The Informix table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class IntegrationRuntimeComputePropertiesResponse(dict):
    """
    The compute resource properties for managed integration runtime.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dataFlowProperties":
            suggest = "data_flow_properties"
        elif key == "maxParallelExecutionsPerNode":
            suggest = "max_parallel_executions_per_node"
        elif key == "nodeSize":
            suggest = "node_size"
        elif key == "numberOfNodes":
            suggest = "number_of_nodes"
        elif key == "vNetProperties":
            suggest = "v_net_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in IntegrationRuntimeComputePropertiesResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        IntegrationRuntimeComputePropertiesResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        IntegrationRuntimeComputePropertiesResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 data_flow_properties: Optional['outputs.IntegrationRuntimeDataFlowPropertiesResponse'] = None,
                 location: Optional[str] = None,
                 max_parallel_executions_per_node: Optional[int] = None,
                 node_size: Optional[str] = None,
                 number_of_nodes: Optional[int] = None,
                 v_net_properties: Optional['outputs.IntegrationRuntimeVNetPropertiesResponse'] = None):
        """
        The compute resource properties for managed integration runtime.
        :param 'IntegrationRuntimeDataFlowPropertiesResponse' data_flow_properties: Data flow properties for managed integration runtime.
        :param str location: The location for managed integration runtime. The supported regions could be found on https://docs.microsoft.com/en-us/azure/data-factory/data-factory-data-movement-activities
        :param int max_parallel_executions_per_node: Maximum parallel executions count per node for managed integration runtime.
        :param str node_size: The node size requirement to managed integration runtime.
        :param int number_of_nodes: The required number of nodes for managed integration runtime.
        :param 'IntegrationRuntimeVNetPropertiesResponse' v_net_properties: VNet properties for managed integration runtime.
        """
        if data_flow_properties is not None:
            pulumi.set(__self__, "data_flow_properties", data_flow_properties)
        if location is not None:
            pulumi.set(__self__, "location", location)
        if max_parallel_executions_per_node is not None:
            pulumi.set(__self__, "max_parallel_executions_per_node", max_parallel_executions_per_node)
        if node_size is not None:
            pulumi.set(__self__, "node_size", node_size)
        if number_of_nodes is not None:
            pulumi.set(__self__, "number_of_nodes", number_of_nodes)
        if v_net_properties is not None:
            pulumi.set(__self__, "v_net_properties", v_net_properties)

    @property
    @pulumi.getter(name="dataFlowProperties")
    def data_flow_properties(self) -> Optional['outputs.IntegrationRuntimeDataFlowPropertiesResponse']:
        """
        Data flow properties for managed integration runtime.
        """
        return pulumi.get(self, "data_flow_properties")

    @property
    @pulumi.getter
    def location(self) -> Optional[str]:
        """
        The location for managed integration runtime. The supported regions could be found on https://docs.microsoft.com/en-us/azure/data-factory/data-factory-data-movement-activities
        """
        return pulumi.get(self, "location")

    @property
    @pulumi.getter(name="maxParallelExecutionsPerNode")
    def max_parallel_executions_per_node(self) -> Optional[int]:
        """
        Maximum parallel executions count per node for managed integration runtime.
        """
        return pulumi.get(self, "max_parallel_executions_per_node")

    @property
    @pulumi.getter(name="nodeSize")
    def node_size(self) -> Optional[str]:
        """
        The node size requirement to managed integration runtime.
        """
        return pulumi.get(self, "node_size")

    @property
    @pulumi.getter(name="numberOfNodes")
    def number_of_nodes(self) -> Optional[int]:
        """
        The required number of nodes for managed integration runtime.
        """
        return pulumi.get(self, "number_of_nodes")

    @property
    @pulumi.getter(name="vNetProperties")
    def v_net_properties(self) -> Optional['outputs.IntegrationRuntimeVNetPropertiesResponse']:
        """
        VNet properties for managed integration runtime.
        """
        return pulumi.get(self, "v_net_properties")


@pulumi.output_type
class IntegrationRuntimeCustomSetupScriptPropertiesResponse(dict):
    """
    Custom setup script properties for a managed dedicated integration runtime.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "blobContainerUri":
            suggest = "blob_container_uri"
        elif key == "sasToken":
            suggest = "sas_token"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in IntegrationRuntimeCustomSetupScriptPropertiesResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        IntegrationRuntimeCustomSetupScriptPropertiesResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        IntegrationRuntimeCustomSetupScriptPropertiesResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 blob_container_uri: Optional[str] = None,
                 sas_token: Optional['outputs.SecureStringResponse'] = None):
        """
        Custom setup script properties for a managed dedicated integration runtime.
        :param str blob_container_uri: The URI of the Azure blob container that contains the custom setup script.
        :param 'SecureStringResponse' sas_token: The SAS token of the Azure blob container.
        """
        if blob_container_uri is not None:
            pulumi.set(__self__, "blob_container_uri", blob_container_uri)
        if sas_token is not None:
            pulumi.set(__self__, "sas_token", sas_token)

    @property
    @pulumi.getter(name="blobContainerUri")
    def blob_container_uri(self) -> Optional[str]:
        """
        The URI of the Azure blob container that contains the custom setup script.
        """
        return pulumi.get(self, "blob_container_uri")

    @property
    @pulumi.getter(name="sasToken")
    def sas_token(self) -> Optional['outputs.SecureStringResponse']:
        """
        The SAS token of the Azure blob container.
        """
        return pulumi.get(self, "sas_token")


@pulumi.output_type
class IntegrationRuntimeCustomerVirtualNetworkResponse(dict):
    """
    The definition and properties of virtual network to which Azure-SSIS integration runtime will join.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "subnetId":
            suggest = "subnet_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in IntegrationRuntimeCustomerVirtualNetworkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        IntegrationRuntimeCustomerVirtualNetworkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        IntegrationRuntimeCustomerVirtualNetworkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 subnet_id: Optional[str] = None):
        """
        The definition and properties of virtual network to which Azure-SSIS integration runtime will join.
        :param str subnet_id: The ID of subnet to which Azure-SSIS integration runtime will join.
        """
        if subnet_id is not None:
            pulumi.set(__self__, "subnet_id", subnet_id)

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> Optional[str]:
        """
        The ID of subnet to which Azure-SSIS integration runtime will join.
        """
        return pulumi.get(self, "subnet_id")


@pulumi.output_type
class IntegrationRuntimeDataFlowPropertiesResponse(dict):
    """
    Data flow properties for managed integration runtime.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "computeType":
            suggest = "compute_type"
        elif key == "coreCount":
            suggest = "core_count"
        elif key == "timeToLive":
            suggest = "time_to_live"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in IntegrationRuntimeDataFlowPropertiesResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        IntegrationRuntimeDataFlowPropertiesResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        IntegrationRuntimeDataFlowPropertiesResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 cleanup: Optional[bool] = None,
                 compute_type: Optional[str] = None,
                 core_count: Optional[int] = None,
                 time_to_live: Optional[int] = None):
        """
        Data flow properties for managed integration runtime.
        :param bool cleanup: Cluster will not be recycled and it will be used in next data flow activity run until TTL (time to live) is reached if this is set as false. Default is true.
        :param str compute_type: Compute type of the cluster which will execute data flow job.
        :param int core_count: Core count of the cluster which will execute data flow job. Supported values are: 8, 16, 32, 48, 80, 144 and 272.
        :param int time_to_live: Time to live (in minutes) setting of the cluster which will execute data flow job.
        """
        if cleanup is not None:
            pulumi.set(__self__, "cleanup", cleanup)
        if compute_type is not None:
            pulumi.set(__self__, "compute_type", compute_type)
        if core_count is not None:
            pulumi.set(__self__, "core_count", core_count)
        if time_to_live is not None:
            pulumi.set(__self__, "time_to_live", time_to_live)

    @property
    @pulumi.getter
    def cleanup(self) -> Optional[bool]:
        """
        Cluster will not be recycled and it will be used in next data flow activity run until TTL (time to live) is reached if this is set as false. Default is true.
        """
        return pulumi.get(self, "cleanup")

    @property
    @pulumi.getter(name="computeType")
    def compute_type(self) -> Optional[str]:
        """
        Compute type of the cluster which will execute data flow job.
        """
        return pulumi.get(self, "compute_type")

    @property
    @pulumi.getter(name="coreCount")
    def core_count(self) -> Optional[int]:
        """
        Core count of the cluster which will execute data flow job. Supported values are: 8, 16, 32, 48, 80, 144 and 272.
        """
        return pulumi.get(self, "core_count")

    @property
    @pulumi.getter(name="timeToLive")
    def time_to_live(self) -> Optional[int]:
        """
        Time to live (in minutes) setting of the cluster which will execute data flow job.
        """
        return pulumi.get(self, "time_to_live")


@pulumi.output_type
class IntegrationRuntimeDataProxyPropertiesResponse(dict):
    """
    Data proxy properties for a managed dedicated integration runtime.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectVia":
            suggest = "connect_via"
        elif key == "stagingLinkedService":
            suggest = "staging_linked_service"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in IntegrationRuntimeDataProxyPropertiesResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        IntegrationRuntimeDataProxyPropertiesResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        IntegrationRuntimeDataProxyPropertiesResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 connect_via: Optional['outputs.EntityReferenceResponse'] = None,
                 path: Optional[str] = None,
                 staging_linked_service: Optional['outputs.EntityReferenceResponse'] = None):
        """
        Data proxy properties for a managed dedicated integration runtime.
        :param 'EntityReferenceResponse' connect_via: The self-hosted integration runtime reference.
        :param str path: The path to contain the staged data in the Blob storage.
        :param 'EntityReferenceResponse' staging_linked_service: The staging linked service reference.
        """
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if staging_linked_service is not None:
            pulumi.set(__self__, "staging_linked_service", staging_linked_service)

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.EntityReferenceResponse']:
        """
        The self-hosted integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def path(self) -> Optional[str]:
        """
        The path to contain the staged data in the Blob storage.
        """
        return pulumi.get(self, "path")

    @property
    @pulumi.getter(name="stagingLinkedService")
    def staging_linked_service(self) -> Optional['outputs.EntityReferenceResponse']:
        """
        The staging linked service reference.
        """
        return pulumi.get(self, "staging_linked_service")


@pulumi.output_type
class IntegrationRuntimeReferenceResponse(dict):
    """
    Integration runtime reference type.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "referenceName":
            suggest = "reference_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in IntegrationRuntimeReferenceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        IntegrationRuntimeReferenceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        IntegrationRuntimeReferenceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 reference_name: str,
                 type: str,
                 parameters: Optional[Mapping[str, Any]] = None):
        """
        Integration runtime reference type.
        :param str reference_name: Reference integration runtime name.
        :param str type: Type of integration runtime.
        :param Mapping[str, Any] parameters: Arguments for integration runtime.
        """
        pulumi.set(__self__, "reference_name", reference_name)
        pulumi.set(__self__, "type", type)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)

    @property
    @pulumi.getter(name="referenceName")
    def reference_name(self) -> str:
        """
        Reference integration runtime name.
        """
        return pulumi.get(self, "reference_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of integration runtime.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, Any]]:
        """
        Arguments for integration runtime.
        """
        return pulumi.get(self, "parameters")


@pulumi.output_type
class IntegrationRuntimeSsisCatalogInfoResponse(dict):
    """
    Catalog information for managed dedicated integration runtime.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "catalogAdminPassword":
            suggest = "catalog_admin_password"
        elif key == "catalogAdminUserName":
            suggest = "catalog_admin_user_name"
        elif key == "catalogPricingTier":
            suggest = "catalog_pricing_tier"
        elif key == "catalogServerEndpoint":
            suggest = "catalog_server_endpoint"
        elif key == "dualStandbyPairName":
            suggest = "dual_standby_pair_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in IntegrationRuntimeSsisCatalogInfoResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        IntegrationRuntimeSsisCatalogInfoResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        IntegrationRuntimeSsisCatalogInfoResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 catalog_admin_password: Optional['outputs.SecureStringResponse'] = None,
                 catalog_admin_user_name: Optional[str] = None,
                 catalog_pricing_tier: Optional[str] = None,
                 catalog_server_endpoint: Optional[str] = None,
                 dual_standby_pair_name: Optional[str] = None):
        """
        Catalog information for managed dedicated integration runtime.
        :param 'SecureStringResponse' catalog_admin_password: The password of the administrator user account of the catalog database.
        :param str catalog_admin_user_name: The administrator user name of catalog database.
        :param str catalog_pricing_tier: The pricing tier for the catalog database. The valid values could be found in https://azure.microsoft.com/en-us/pricing/details/sql-database/
        :param str catalog_server_endpoint: The catalog database server URL.
        :param str dual_standby_pair_name: The dual standby pair name of Azure-SSIS Integration Runtimes to support SSISDB failover.
        """
        if catalog_admin_password is not None:
            pulumi.set(__self__, "catalog_admin_password", catalog_admin_password)
        if catalog_admin_user_name is not None:
            pulumi.set(__self__, "catalog_admin_user_name", catalog_admin_user_name)
        if catalog_pricing_tier is not None:
            pulumi.set(__self__, "catalog_pricing_tier", catalog_pricing_tier)
        if catalog_server_endpoint is not None:
            pulumi.set(__self__, "catalog_server_endpoint", catalog_server_endpoint)
        if dual_standby_pair_name is not None:
            pulumi.set(__self__, "dual_standby_pair_name", dual_standby_pair_name)

    @property
    @pulumi.getter(name="catalogAdminPassword")
    def catalog_admin_password(self) -> Optional['outputs.SecureStringResponse']:
        """
        The password of the administrator user account of the catalog database.
        """
        return pulumi.get(self, "catalog_admin_password")

    @property
    @pulumi.getter(name="catalogAdminUserName")
    def catalog_admin_user_name(self) -> Optional[str]:
        """
        The administrator user name of catalog database.
        """
        return pulumi.get(self, "catalog_admin_user_name")

    @property
    @pulumi.getter(name="catalogPricingTier")
    def catalog_pricing_tier(self) -> Optional[str]:
        """
        The pricing tier for the catalog database. The valid values could be found in https://azure.microsoft.com/en-us/pricing/details/sql-database/
        """
        return pulumi.get(self, "catalog_pricing_tier")

    @property
    @pulumi.getter(name="catalogServerEndpoint")
    def catalog_server_endpoint(self) -> Optional[str]:
        """
        The catalog database server URL.
        """
        return pulumi.get(self, "catalog_server_endpoint")

    @property
    @pulumi.getter(name="dualStandbyPairName")
    def dual_standby_pair_name(self) -> Optional[str]:
        """
        The dual standby pair name of Azure-SSIS Integration Runtimes to support SSISDB failover.
        """
        return pulumi.get(self, "dual_standby_pair_name")


@pulumi.output_type
class IntegrationRuntimeSsisPropertiesResponse(dict):
    """
    SSIS properties for managed integration runtime.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "catalogInfo":
            suggest = "catalog_info"
        elif key == "customSetupScriptProperties":
            suggest = "custom_setup_script_properties"
        elif key == "dataProxyProperties":
            suggest = "data_proxy_properties"
        elif key == "expressCustomSetupProperties":
            suggest = "express_custom_setup_properties"
        elif key == "licenseType":
            suggest = "license_type"
        elif key == "packageStores":
            suggest = "package_stores"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in IntegrationRuntimeSsisPropertiesResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        IntegrationRuntimeSsisPropertiesResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        IntegrationRuntimeSsisPropertiesResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 catalog_info: Optional['outputs.IntegrationRuntimeSsisCatalogInfoResponse'] = None,
                 credential: Optional['outputs.CredentialReferenceResponse'] = None,
                 custom_setup_script_properties: Optional['outputs.IntegrationRuntimeCustomSetupScriptPropertiesResponse'] = None,
                 data_proxy_properties: Optional['outputs.IntegrationRuntimeDataProxyPropertiesResponse'] = None,
                 edition: Optional[str] = None,
                 express_custom_setup_properties: Optional[Sequence[Any]] = None,
                 license_type: Optional[str] = None,
                 package_stores: Optional[Sequence['outputs.PackageStoreResponse']] = None):
        """
        SSIS properties for managed integration runtime.
        :param 'IntegrationRuntimeSsisCatalogInfoResponse' catalog_info: Catalog information for managed dedicated integration runtime.
        :param 'CredentialReferenceResponse' credential: The credential reference containing authentication information.
        :param 'IntegrationRuntimeCustomSetupScriptPropertiesResponse' custom_setup_script_properties: Custom setup script properties for a managed dedicated integration runtime.
        :param 'IntegrationRuntimeDataProxyPropertiesResponse' data_proxy_properties: Data proxy properties for a managed dedicated integration runtime.
        :param str edition: The edition for the SSIS Integration Runtime
        :param Sequence[Union['AzPowerShellSetupResponse', 'CmdkeySetupResponse', 'ComponentSetupResponse', 'EnvironmentVariableSetupResponse']] express_custom_setup_properties: Custom setup without script properties for a SSIS integration runtime.
        :param str license_type: License type for bringing your own license scenario.
        :param Sequence['PackageStoreResponse'] package_stores: Package stores for the SSIS Integration Runtime.
        """
        if catalog_info is not None:
            pulumi.set(__self__, "catalog_info", catalog_info)
        if credential is not None:
            pulumi.set(__self__, "credential", credential)
        if custom_setup_script_properties is not None:
            pulumi.set(__self__, "custom_setup_script_properties", custom_setup_script_properties)
        if data_proxy_properties is not None:
            pulumi.set(__self__, "data_proxy_properties", data_proxy_properties)
        if edition is not None:
            pulumi.set(__self__, "edition", edition)
        if express_custom_setup_properties is not None:
            pulumi.set(__self__, "express_custom_setup_properties", express_custom_setup_properties)
        if license_type is not None:
            pulumi.set(__self__, "license_type", license_type)
        if package_stores is not None:
            pulumi.set(__self__, "package_stores", package_stores)

    @property
    @pulumi.getter(name="catalogInfo")
    def catalog_info(self) -> Optional['outputs.IntegrationRuntimeSsisCatalogInfoResponse']:
        """
        Catalog information for managed dedicated integration runtime.
        """
        return pulumi.get(self, "catalog_info")

    @property
    @pulumi.getter
    def credential(self) -> Optional['outputs.CredentialReferenceResponse']:
        """
        The credential reference containing authentication information.
        """
        return pulumi.get(self, "credential")

    @property
    @pulumi.getter(name="customSetupScriptProperties")
    def custom_setup_script_properties(self) -> Optional['outputs.IntegrationRuntimeCustomSetupScriptPropertiesResponse']:
        """
        Custom setup script properties for a managed dedicated integration runtime.
        """
        return pulumi.get(self, "custom_setup_script_properties")

    @property
    @pulumi.getter(name="dataProxyProperties")
    def data_proxy_properties(self) -> Optional['outputs.IntegrationRuntimeDataProxyPropertiesResponse']:
        """
        Data proxy properties for a managed dedicated integration runtime.
        """
        return pulumi.get(self, "data_proxy_properties")

    @property
    @pulumi.getter
    def edition(self) -> Optional[str]:
        """
        The edition for the SSIS Integration Runtime
        """
        return pulumi.get(self, "edition")

    @property
    @pulumi.getter(name="expressCustomSetupProperties")
    def express_custom_setup_properties(self) -> Optional[Sequence[Any]]:
        """
        Custom setup without script properties for a SSIS integration runtime.
        """
        return pulumi.get(self, "express_custom_setup_properties")

    @property
    @pulumi.getter(name="licenseType")
    def license_type(self) -> Optional[str]:
        """
        License type for bringing your own license scenario.
        """
        return pulumi.get(self, "license_type")

    @property
    @pulumi.getter(name="packageStores")
    def package_stores(self) -> Optional[Sequence['outputs.PackageStoreResponse']]:
        """
        Package stores for the SSIS Integration Runtime.
        """
        return pulumi.get(self, "package_stores")


@pulumi.output_type
class IntegrationRuntimeVNetPropertiesResponse(dict):
    """
    VNet properties for managed integration runtime.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "publicIPs":
            suggest = "public_ips"
        elif key == "subnetId":
            suggest = "subnet_id"
        elif key == "vNetId":
            suggest = "v_net_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in IntegrationRuntimeVNetPropertiesResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        IntegrationRuntimeVNetPropertiesResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        IntegrationRuntimeVNetPropertiesResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 public_ips: Optional[Sequence[str]] = None,
                 subnet: Optional[str] = None,
                 subnet_id: Optional[str] = None,
                 v_net_id: Optional[str] = None):
        """
        VNet properties for managed integration runtime.
        :param Sequence[str] public_ips: Resource IDs of the public IP addresses that this integration runtime will use.
        :param str subnet: The name of the subnet this integration runtime will join.
        :param str subnet_id: The ID of subnet, to which this Azure-SSIS integration runtime will be joined.
        :param str v_net_id: The ID of the VNet that this integration runtime will join.
        """
        if public_ips is not None:
            pulumi.set(__self__, "public_ips", public_ips)
        if subnet is not None:
            pulumi.set(__self__, "subnet", subnet)
        if subnet_id is not None:
            pulumi.set(__self__, "subnet_id", subnet_id)
        if v_net_id is not None:
            pulumi.set(__self__, "v_net_id", v_net_id)

    @property
    @pulumi.getter(name="publicIPs")
    def public_ips(self) -> Optional[Sequence[str]]:
        """
        Resource IDs of the public IP addresses that this integration runtime will use.
        """
        return pulumi.get(self, "public_ips")

    @property
    @pulumi.getter
    def subnet(self) -> Optional[str]:
        """
        The name of the subnet this integration runtime will join.
        """
        return pulumi.get(self, "subnet")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> Optional[str]:
        """
        The ID of subnet, to which this Azure-SSIS integration runtime will be joined.
        """
        return pulumi.get(self, "subnet_id")

    @property
    @pulumi.getter(name="vNetId")
    def v_net_id(self) -> Optional[str]:
        """
        The ID of the VNet that this integration runtime will join.
        """
        return pulumi.get(self, "v_net_id")


@pulumi.output_type
class JiraLinkedServiceResponse(dict):
    """
    Jira Service linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "useEncryptedEndpoints":
            suggest = "use_encrypted_endpoints"
        elif key == "useHostVerification":
            suggest = "use_host_verification"
        elif key == "usePeerVerification":
            suggest = "use_peer_verification"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in JiraLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        JiraLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        JiraLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 host: Any,
                 type: str,
                 username: Any,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 port: Optional[Any] = None,
                 use_encrypted_endpoints: Optional[Any] = None,
                 use_host_verification: Optional[Any] = None,
                 use_peer_verification: Optional[Any] = None):
        """
        Jira Service linked service.
        :param Any host: The IP address or host name of the Jira service. (e.g. jira.example.com)
        :param str type: Type of linked service.
               Expected value is 'Jira'.
        :param Any username: The user name that you use to access Jira Service.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The password corresponding to the user name that you provided in the username field.
        :param Any port: The TCP port that the Jira server uses to listen for client connections. The default value is 443 if connecting through HTTPS, or 8080 if connecting through HTTP.
        :param Any use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        :param Any use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        :param Any use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        pulumi.set(__self__, "host", host)
        pulumi.set(__self__, "type", 'Jira')
        pulumi.set(__self__, "username", username)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if use_encrypted_endpoints is not None:
            pulumi.set(__self__, "use_encrypted_endpoints", use_encrypted_endpoints)
        if use_host_verification is not None:
            pulumi.set(__self__, "use_host_verification", use_host_verification)
        if use_peer_verification is not None:
            pulumi.set(__self__, "use_peer_verification", use_peer_verification)

    @property
    @pulumi.getter
    def host(self) -> Any:
        """
        The IP address or host name of the Jira service. (e.g. jira.example.com)
        """
        return pulumi.get(self, "host")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Jira'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def username(self) -> Any:
        """
        The user name that you use to access Jira Service.
        """
        return pulumi.get(self, "username")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        The password corresponding to the user name that you provided in the username field.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def port(self) -> Optional[Any]:
        """
        The TCP port that the Jira server uses to listen for client connections. The default value is 443 if connecting through HTTPS, or 8080 if connecting through HTTP.
        """
        return pulumi.get(self, "port")

    @property
    @pulumi.getter(name="useEncryptedEndpoints")
    def use_encrypted_endpoints(self) -> Optional[Any]:
        """
        Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        """
        return pulumi.get(self, "use_encrypted_endpoints")

    @property
    @pulumi.getter(name="useHostVerification")
    def use_host_verification(self) -> Optional[Any]:
        """
        Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_host_verification")

    @property
    @pulumi.getter(name="usePeerVerification")
    def use_peer_verification(self) -> Optional[Any]:
        """
        Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_peer_verification")


@pulumi.output_type
class JiraObjectDatasetResponse(dict):
    """
    Jira Service dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in JiraObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        JiraObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        JiraObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Jira Service dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'JiraObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'JiraObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'JiraObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class JiraSourceResponse(dict):
    """
    A copy activity Jira Service source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in JiraSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        JiraSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        JiraSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Jira Service source.
        :param str type: Copy source type.
               Expected value is 'JiraSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'JiraSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'JiraSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class JsonDatasetResponse(dict):
    """
    Json dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "encodingName":
            suggest = "encoding_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in JsonDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        JsonDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        JsonDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 location: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 compression: Optional['outputs.DatasetCompressionResponse'] = None,
                 description: Optional[str] = None,
                 encoding_name: Optional[Any] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        Json dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param Union['AmazonS3CompatibleLocationResponse', 'AmazonS3LocationResponse', 'AzureBlobFSLocationResponse', 'AzureBlobStorageLocationResponse', 'AzureDataLakeStoreLocationResponse', 'AzureFileStorageLocationResponse', 'FileServerLocationResponse', 'FtpServerLocationResponse', 'GoogleCloudStorageLocationResponse', 'HdfsLocationResponse', 'HttpServerLocationResponse', 'OracleCloudStorageLocationResponse', 'SftpLocationResponse'] location: The location of the json data storage.
        :param str type: Type of dataset.
               Expected value is 'Json'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param 'DatasetCompressionResponse' compression: The data compression method used for the json dataset.
        :param str description: Dataset description.
        :param Any encoding_name: The code page name of the preferred encoding. If not specified, the default value is UTF-8, unless BOM denotes another Unicode encoding. Refer to the name column of the table in the following link to set supported values: https://msdn.microsoft.com/library/system.text.encoding.aspx. Type: string (or Expression with resultType string).
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "location", location)
        pulumi.set(__self__, "type", 'Json')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if compression is not None:
            pulumi.set(__self__, "compression", compression)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encoding_name is not None:
            pulumi.set(__self__, "encoding_name", encoding_name)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def location(self) -> Any:
        """
        The location of the json data storage.
        """
        return pulumi.get(self, "location")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'Json'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def compression(self) -> Optional['outputs.DatasetCompressionResponse']:
        """
        The data compression method used for the json dataset.
        """
        return pulumi.get(self, "compression")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encodingName")
    def encoding_name(self) -> Optional[Any]:
        """
        The code page name of the preferred encoding. If not specified, the default value is UTF-8, unless BOM denotes another Unicode encoding. Refer to the name column of the table in the following link to set supported values: https://msdn.microsoft.com/library/system.text.encoding.aspx. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encoding_name")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class JsonFormatResponse(dict):
    """
    The data stored in JSON format.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "encodingName":
            suggest = "encoding_name"
        elif key == "filePattern":
            suggest = "file_pattern"
        elif key == "jsonNodeReference":
            suggest = "json_node_reference"
        elif key == "jsonPathDefinition":
            suggest = "json_path_definition"
        elif key == "nestingSeparator":
            suggest = "nesting_separator"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in JsonFormatResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        JsonFormatResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        JsonFormatResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 deserializer: Optional[Any] = None,
                 encoding_name: Optional[Any] = None,
                 file_pattern: Optional[Any] = None,
                 json_node_reference: Optional[Any] = None,
                 json_path_definition: Optional[Any] = None,
                 nesting_separator: Optional[Any] = None,
                 serializer: Optional[Any] = None):
        """
        The data stored in JSON format.
        :param str type: Type of dataset storage format.
               Expected value is 'JsonFormat'.
        :param Any deserializer: Deserializer. Type: string (or Expression with resultType string).
        :param Any encoding_name: The code page name of the preferred encoding. If not provided, the default value is 'utf-8', unless the byte order mark (BOM) denotes another Unicode encoding. The full list of supported values can be found in the 'Name' column of the table of encodings in the following reference: https://go.microsoft.com/fwlink/?linkid=861078. Type: string (or Expression with resultType string).
        :param Any file_pattern: File pattern of JSON. To be more specific, the way of separating a collection of JSON objects. The default value is 'setOfObjects'. It is case-sensitive.
        :param Any json_node_reference: The JSONPath of the JSON array element to be flattened. Example: "$.ArrayPath". Type: string (or Expression with resultType string).
        :param Any json_path_definition: The JSONPath definition for each column mapping with a customized column name to extract data from JSON file. For fields under root object, start with "$"; for fields inside the array chosen by jsonNodeReference property, start from the array element. Example: {"Column1": "$.Column1Path", "Column2": "Column2PathInArray"}. Type: object (or Expression with resultType object).
        :param Any nesting_separator: The character used to separate nesting levels. Default value is '.' (dot). Type: string (or Expression with resultType string).
        :param Any serializer: Serializer. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'JsonFormat')
        if deserializer is not None:
            pulumi.set(__self__, "deserializer", deserializer)
        if encoding_name is not None:
            pulumi.set(__self__, "encoding_name", encoding_name)
        if file_pattern is not None:
            pulumi.set(__self__, "file_pattern", file_pattern)
        if json_node_reference is not None:
            pulumi.set(__self__, "json_node_reference", json_node_reference)
        if json_path_definition is not None:
            pulumi.set(__self__, "json_path_definition", json_path_definition)
        if nesting_separator is not None:
            pulumi.set(__self__, "nesting_separator", nesting_separator)
        if serializer is not None:
            pulumi.set(__self__, "serializer", serializer)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset storage format.
        Expected value is 'JsonFormat'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def deserializer(self) -> Optional[Any]:
        """
        Deserializer. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "deserializer")

    @property
    @pulumi.getter(name="encodingName")
    def encoding_name(self) -> Optional[Any]:
        """
        The code page name of the preferred encoding. If not provided, the default value is 'utf-8', unless the byte order mark (BOM) denotes another Unicode encoding. The full list of supported values can be found in the 'Name' column of the table of encodings in the following reference: https://go.microsoft.com/fwlink/?linkid=861078. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encoding_name")

    @property
    @pulumi.getter(name="filePattern")
    def file_pattern(self) -> Optional[Any]:
        """
        File pattern of JSON. To be more specific, the way of separating a collection of JSON objects. The default value is 'setOfObjects'. It is case-sensitive.
        """
        return pulumi.get(self, "file_pattern")

    @property
    @pulumi.getter(name="jsonNodeReference")
    def json_node_reference(self) -> Optional[Any]:
        """
        The JSONPath of the JSON array element to be flattened. Example: "$.ArrayPath". Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "json_node_reference")

    @property
    @pulumi.getter(name="jsonPathDefinition")
    def json_path_definition(self) -> Optional[Any]:
        """
        The JSONPath definition for each column mapping with a customized column name to extract data from JSON file. For fields under root object, start with "$"; for fields inside the array chosen by jsonNodeReference property, start from the array element. Example: {"Column1": "$.Column1Path", "Column2": "Column2PathInArray"}. Type: object (or Expression with resultType object).
        """
        return pulumi.get(self, "json_path_definition")

    @property
    @pulumi.getter(name="nestingSeparator")
    def nesting_separator(self) -> Optional[Any]:
        """
        The character used to separate nesting levels. Default value is '.' (dot). Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "nesting_separator")

    @property
    @pulumi.getter
    def serializer(self) -> Optional[Any]:
        """
        Serializer. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "serializer")


@pulumi.output_type
class JsonReadSettingsResponse(dict):
    """
    Json read settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "compressionProperties":
            suggest = "compression_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in JsonReadSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        JsonReadSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        JsonReadSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 compression_properties: Optional[Any] = None):
        """
        Json read settings.
        :param str type: The read setting type.
               Expected value is 'JsonReadSettings'.
        :param Union['TarGZipReadSettingsResponse', 'TarReadSettingsResponse', 'ZipDeflateReadSettingsResponse'] compression_properties: Compression settings.
        """
        pulumi.set(__self__, "type", 'JsonReadSettings')
        if compression_properties is not None:
            pulumi.set(__self__, "compression_properties", compression_properties)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The read setting type.
        Expected value is 'JsonReadSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="compressionProperties")
    def compression_properties(self) -> Optional[Any]:
        """
        Compression settings.
        """
        return pulumi.get(self, "compression_properties")


@pulumi.output_type
class JsonSinkResponse(dict):
    """
    A copy activity Json sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "formatSettings":
            suggest = "format_settings"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "storeSettings":
            suggest = "store_settings"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in JsonSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        JsonSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        JsonSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 format_settings: Optional['outputs.JsonWriteSettingsResponse'] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 store_settings: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity Json sink.
        :param str type: Copy sink type.
               Expected value is 'JsonSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param 'JsonWriteSettingsResponse' format_settings: Json format settings.
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Union['AzureBlobFSWriteSettingsResponse', 'AzureBlobStorageWriteSettingsResponse', 'AzureDataLakeStoreWriteSettingsResponse', 'AzureFileStorageWriteSettingsResponse', 'FileServerWriteSettingsResponse', 'SftpWriteSettingsResponse'] store_settings: Json store settings.
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'JsonSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if format_settings is not None:
            pulumi.set(__self__, "format_settings", format_settings)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if store_settings is not None:
            pulumi.set(__self__, "store_settings", store_settings)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'JsonSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="formatSettings")
    def format_settings(self) -> Optional['outputs.JsonWriteSettingsResponse']:
        """
        Json format settings.
        """
        return pulumi.get(self, "format_settings")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="storeSettings")
    def store_settings(self) -> Optional[Any]:
        """
        Json store settings.
        """
        return pulumi.get(self, "store_settings")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class JsonSourceResponse(dict):
    """
    A copy activity Json source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "formatSettings":
            suggest = "format_settings"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"
        elif key == "storeSettings":
            suggest = "store_settings"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in JsonSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        JsonSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        JsonSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 format_settings: Optional['outputs.JsonReadSettingsResponse'] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None,
                 store_settings: Optional[Any] = None):
        """
        A copy activity Json source.
        :param str type: Copy source type.
               Expected value is 'JsonSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param 'JsonReadSettingsResponse' format_settings: Json format settings.
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Union['AmazonS3CompatibleReadSettingsResponse', 'AmazonS3ReadSettingsResponse', 'AzureBlobFSReadSettingsResponse', 'AzureBlobStorageReadSettingsResponse', 'AzureDataLakeStoreReadSettingsResponse', 'AzureFileStorageReadSettingsResponse', 'FileServerReadSettingsResponse', 'FtpReadSettingsResponse', 'GoogleCloudStorageReadSettingsResponse', 'HdfsReadSettingsResponse', 'HttpReadSettingsResponse', 'OracleCloudStorageReadSettingsResponse', 'SftpReadSettingsResponse'] store_settings: Json store settings.
        """
        pulumi.set(__self__, "type", 'JsonSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if format_settings is not None:
            pulumi.set(__self__, "format_settings", format_settings)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)
        if store_settings is not None:
            pulumi.set(__self__, "store_settings", store_settings)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'JsonSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="formatSettings")
    def format_settings(self) -> Optional['outputs.JsonReadSettingsResponse']:
        """
        Json format settings.
        """
        return pulumi.get(self, "format_settings")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")

    @property
    @pulumi.getter(name="storeSettings")
    def store_settings(self) -> Optional[Any]:
        """
        Json store settings.
        """
        return pulumi.get(self, "store_settings")


@pulumi.output_type
class JsonWriteSettingsResponse(dict):
    """
    Json write settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "filePattern":
            suggest = "file_pattern"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in JsonWriteSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        JsonWriteSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        JsonWriteSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 file_pattern: Optional[Any] = None):
        """
        Json write settings.
        :param str type: The write setting type.
               Expected value is 'JsonWriteSettings'.
        :param Any file_pattern: File pattern of JSON. This setting controls the way a collection of JSON objects will be treated. The default value is 'setOfObjects'. It is case-sensitive.
        """
        pulumi.set(__self__, "type", 'JsonWriteSettings')
        if file_pattern is not None:
            pulumi.set(__self__, "file_pattern", file_pattern)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The write setting type.
        Expected value is 'JsonWriteSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="filePattern")
    def file_pattern(self) -> Optional[Any]:
        """
        File pattern of JSON. This setting controls the way a collection of JSON objects will be treated. The default value is 'setOfObjects'. It is case-sensitive.
        """
        return pulumi.get(self, "file_pattern")


@pulumi.output_type
class LinkedIntegrationRuntimeKeyAuthorizationResponse(dict):
    """
    The key authorization type integration runtime.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authorizationType":
            suggest = "authorization_type"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in LinkedIntegrationRuntimeKeyAuthorizationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        LinkedIntegrationRuntimeKeyAuthorizationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        LinkedIntegrationRuntimeKeyAuthorizationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 authorization_type: str,
                 key: 'outputs.SecureStringResponse'):
        """
        The key authorization type integration runtime.
        :param str authorization_type: The authorization type for integration runtime sharing.
               Expected value is 'Key'.
        :param 'SecureStringResponse' key: The key used for authorization.
        """
        pulumi.set(__self__, "authorization_type", 'Key')
        pulumi.set(__self__, "key", key)

    @property
    @pulumi.getter(name="authorizationType")
    def authorization_type(self) -> str:
        """
        The authorization type for integration runtime sharing.
        Expected value is 'Key'.
        """
        return pulumi.get(self, "authorization_type")

    @property
    @pulumi.getter
    def key(self) -> 'outputs.SecureStringResponse':
        """
        The key used for authorization.
        """
        return pulumi.get(self, "key")


@pulumi.output_type
class LinkedIntegrationRuntimeRbacAuthorizationResponse(dict):
    """
    The role based access control (RBAC) authorization type integration runtime.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authorizationType":
            suggest = "authorization_type"
        elif key == "resourceId":
            suggest = "resource_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in LinkedIntegrationRuntimeRbacAuthorizationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        LinkedIntegrationRuntimeRbacAuthorizationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        LinkedIntegrationRuntimeRbacAuthorizationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 authorization_type: str,
                 resource_id: str,
                 credential: Optional['outputs.CredentialReferenceResponse'] = None):
        """
        The role based access control (RBAC) authorization type integration runtime.
        :param str authorization_type: The authorization type for integration runtime sharing.
               Expected value is 'RBAC'.
        :param str resource_id: The resource identifier of the integration runtime to be shared.
        :param 'CredentialReferenceResponse' credential: The credential reference containing authentication information.
        """
        pulumi.set(__self__, "authorization_type", 'RBAC')
        pulumi.set(__self__, "resource_id", resource_id)
        if credential is not None:
            pulumi.set(__self__, "credential", credential)

    @property
    @pulumi.getter(name="authorizationType")
    def authorization_type(self) -> str:
        """
        The authorization type for integration runtime sharing.
        Expected value is 'RBAC'.
        """
        return pulumi.get(self, "authorization_type")

    @property
    @pulumi.getter(name="resourceId")
    def resource_id(self) -> str:
        """
        The resource identifier of the integration runtime to be shared.
        """
        return pulumi.get(self, "resource_id")

    @property
    @pulumi.getter
    def credential(self) -> Optional['outputs.CredentialReferenceResponse']:
        """
        The credential reference containing authentication information.
        """
        return pulumi.get(self, "credential")


@pulumi.output_type
class LinkedIntegrationRuntimeResponse(dict):
    """
    The linked integration runtime information.
    """
    def __init__(__self__, *,
                 create_time: str,
                 data_factory_location: str,
                 data_factory_name: str,
                 name: str,
                 subscription_id: str):
        """
        The linked integration runtime information.
        :param str create_time: The creating time of the linked integration runtime.
        :param str data_factory_location: The location of the data factory for which the linked integration runtime belong to.
        :param str data_factory_name: The name of the data factory for which the linked integration runtime belong to.
        :param str name: The name of the linked integration runtime.
        :param str subscription_id: The subscription ID for which the linked integration runtime belong to.
        """
        pulumi.set(__self__, "create_time", create_time)
        pulumi.set(__self__, "data_factory_location", data_factory_location)
        pulumi.set(__self__, "data_factory_name", data_factory_name)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "subscription_id", subscription_id)

    @property
    @pulumi.getter(name="createTime")
    def create_time(self) -> str:
        """
        The creating time of the linked integration runtime.
        """
        return pulumi.get(self, "create_time")

    @property
    @pulumi.getter(name="dataFactoryLocation")
    def data_factory_location(self) -> str:
        """
        The location of the data factory for which the linked integration runtime belong to.
        """
        return pulumi.get(self, "data_factory_location")

    @property
    @pulumi.getter(name="dataFactoryName")
    def data_factory_name(self) -> str:
        """
        The name of the data factory for which the linked integration runtime belong to.
        """
        return pulumi.get(self, "data_factory_name")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        The name of the linked integration runtime.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="subscriptionId")
    def subscription_id(self) -> str:
        """
        The subscription ID for which the linked integration runtime belong to.
        """
        return pulumi.get(self, "subscription_id")


@pulumi.output_type
class LinkedServiceReferenceResponse(dict):
    """
    Linked service reference type.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "referenceName":
            suggest = "reference_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in LinkedServiceReferenceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        LinkedServiceReferenceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        LinkedServiceReferenceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 reference_name: str,
                 type: str,
                 parameters: Optional[Mapping[str, Any]] = None):
        """
        Linked service reference type.
        :param str reference_name: Reference LinkedService name.
        :param str type: Linked service reference type.
        :param Mapping[str, Any] parameters: Arguments for LinkedService.
        """
        pulumi.set(__self__, "reference_name", reference_name)
        pulumi.set(__self__, "type", type)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)

    @property
    @pulumi.getter(name="referenceName")
    def reference_name(self) -> str:
        """
        Reference LinkedService name.
        """
        return pulumi.get(self, "reference_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Linked service reference type.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, Any]]:
        """
        Arguments for LinkedService.
        """
        return pulumi.get(self, "parameters")


@pulumi.output_type
class LogLocationSettingsResponse(dict):
    """
    Log location settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in LogLocationSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        LogLocationSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        LogLocationSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 path: Optional[Any] = None):
        """
        Log location settings.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Log storage linked service reference.
        :param Any path: The path to storage for storing detailed logs of activity execution. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        if path is not None:
            pulumi.set(__self__, "path", path)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Log storage linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def path(self) -> Optional[Any]:
        """
        The path to storage for storing detailed logs of activity execution. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "path")


@pulumi.output_type
class LogSettingsResponse(dict):
    """
    Log settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "logLocationSettings":
            suggest = "log_location_settings"
        elif key == "copyActivityLogSettings":
            suggest = "copy_activity_log_settings"
        elif key == "enableCopyActivityLog":
            suggest = "enable_copy_activity_log"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in LogSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        LogSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        LogSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 log_location_settings: 'outputs.LogLocationSettingsResponse',
                 copy_activity_log_settings: Optional['outputs.CopyActivityLogSettingsResponse'] = None,
                 enable_copy_activity_log: Optional[Any] = None):
        """
        Log settings.
        :param 'LogLocationSettingsResponse' log_location_settings: Log location settings customer needs to provide when enabling log.
        :param 'CopyActivityLogSettingsResponse' copy_activity_log_settings: Specifies settings for copy activity log.
        :param Any enable_copy_activity_log: Specifies whether to enable copy activity log. Type: boolean (or Expression with resultType boolean).
        """
        pulumi.set(__self__, "log_location_settings", log_location_settings)
        if copy_activity_log_settings is not None:
            pulumi.set(__self__, "copy_activity_log_settings", copy_activity_log_settings)
        if enable_copy_activity_log is not None:
            pulumi.set(__self__, "enable_copy_activity_log", enable_copy_activity_log)

    @property
    @pulumi.getter(name="logLocationSettings")
    def log_location_settings(self) -> 'outputs.LogLocationSettingsResponse':
        """
        Log location settings customer needs to provide when enabling log.
        """
        return pulumi.get(self, "log_location_settings")

    @property
    @pulumi.getter(name="copyActivityLogSettings")
    def copy_activity_log_settings(self) -> Optional['outputs.CopyActivityLogSettingsResponse']:
        """
        Specifies settings for copy activity log.
        """
        return pulumi.get(self, "copy_activity_log_settings")

    @property
    @pulumi.getter(name="enableCopyActivityLog")
    def enable_copy_activity_log(self) -> Optional[Any]:
        """
        Specifies whether to enable copy activity log. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "enable_copy_activity_log")


@pulumi.output_type
class LogStorageSettingsResponse(dict):
    """
    (Deprecated. Please use LogSettings) Log storage settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "enableReliableLogging":
            suggest = "enable_reliable_logging"
        elif key == "logLevel":
            suggest = "log_level"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in LogStorageSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        LogStorageSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        LogStorageSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 enable_reliable_logging: Optional[Any] = None,
                 log_level: Optional[Any] = None,
                 path: Optional[Any] = None):
        """
        (Deprecated. Please use LogSettings) Log storage settings.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Log storage linked service reference.
        :param Any enable_reliable_logging: Specifies whether to enable reliable logging. Type: boolean (or Expression with resultType boolean).
        :param Any log_level: Gets or sets the log level, support: Info, Warning. Type: string (or Expression with resultType string).
        :param Any path: The path to storage for storing detailed logs of activity execution. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        if enable_reliable_logging is not None:
            pulumi.set(__self__, "enable_reliable_logging", enable_reliable_logging)
        if log_level is not None:
            pulumi.set(__self__, "log_level", log_level)
        if path is not None:
            pulumi.set(__self__, "path", path)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Log storage linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter(name="enableReliableLogging")
    def enable_reliable_logging(self) -> Optional[Any]:
        """
        Specifies whether to enable reliable logging. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "enable_reliable_logging")

    @property
    @pulumi.getter(name="logLevel")
    def log_level(self) -> Optional[Any]:
        """
        Gets or sets the log level, support: Info, Warning. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "log_level")

    @property
    @pulumi.getter
    def path(self) -> Optional[Any]:
        """
        The path to storage for storing detailed logs of activity execution. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "path")


@pulumi.output_type
class LookupActivityResponse(dict):
    """
    Lookup activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dependsOn":
            suggest = "depends_on"
        elif key == "firstRowOnly":
            suggest = "first_row_only"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in LookupActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        LookupActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        LookupActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 dataset: 'outputs.DatasetReferenceResponse',
                 name: str,
                 source: Any,
                 type: str,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 first_row_only: Optional[Any] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        Lookup activity.
        :param 'DatasetReferenceResponse' dataset: Lookup activity dataset reference.
        :param str name: Activity name.
        :param Union['AmazonMWSSourceResponse', 'AmazonRdsForOracleSourceResponse', 'AmazonRdsForSqlServerSourceResponse', 'AmazonRedshiftSourceResponse', 'AvroSourceResponse', 'AzureBlobFSSourceResponse', 'AzureDataExplorerSourceResponse', 'AzureDataLakeStoreSourceResponse', 'AzureDatabricksDeltaLakeSourceResponse', 'AzureMariaDBSourceResponse', 'AzureMySqlSourceResponse', 'AzurePostgreSqlSourceResponse', 'AzureSqlSourceResponse', 'AzureTableSourceResponse', 'BinarySourceResponse', 'BlobSourceResponse', 'CassandraSourceResponse', 'CommonDataServiceForAppsSourceResponse', 'ConcurSourceResponse', 'CosmosDbMongoDbApiSourceResponse', 'CosmosDbSqlApiSourceResponse', 'CouchbaseSourceResponse', 'Db2SourceResponse', 'DelimitedTextSourceResponse', 'DocumentDbCollectionSourceResponse', 'DrillSourceResponse', 'DynamicsAXSourceResponse', 'DynamicsCrmSourceResponse', 'DynamicsSourceResponse', 'EloquaSourceResponse', 'ExcelSourceResponse', 'FileSystemSourceResponse', 'GoogleAdWordsSourceResponse', 'GoogleBigQuerySourceResponse', 'GreenplumSourceResponse', 'HBaseSourceResponse', 'HdfsSourceResponse', 'HiveSourceResponse', 'HttpSourceResponse', 'HubspotSourceResponse', 'ImpalaSourceResponse', 'InformixSourceResponse', 'JiraSourceResponse', 'JsonSourceResponse', 'MagentoSourceResponse', 'MariaDBSourceResponse', 'MarketoSourceResponse', 'MicrosoftAccessSourceResponse', 'MongoDbAtlasSourceResponse', 'MongoDbSourceResponse', 'MongoDbV2SourceResponse', 'MySqlSourceResponse', 'NetezzaSourceResponse', 'ODataSourceResponse', 'OdbcSourceResponse', 'Office365SourceResponse', 'OracleServiceCloudSourceResponse', 'OracleSourceResponse', 'OrcSourceResponse', 'ParquetSourceResponse', 'PaypalSourceResponse', 'PhoenixSourceResponse', 'PostgreSqlSourceResponse', 'PrestoSourceResponse', 'QuickBooksSourceResponse', 'RelationalSourceResponse', 'ResponsysSourceResponse', 'RestSourceResponse', 'SalesforceMarketingCloudSourceResponse', 'SalesforceServiceCloudSourceResponse', 'SalesforceSourceResponse', 'SapBwSourceResponse', 'SapCloudForCustomerSourceResponse', 'SapEccSourceResponse', 'SapHanaSourceResponse', 'SapOpenHubSourceResponse', 'SapTableSourceResponse', 'ServiceNowSourceResponse', 'SharePointOnlineListSourceResponse', 'ShopifySourceResponse', 'SnowflakeSourceResponse', 'SparkSourceResponse', 'SqlDWSourceResponse', 'SqlMISourceResponse', 'SqlServerSourceResponse', 'SqlSourceResponse', 'SquareSourceResponse', 'SybaseSourceResponse', 'TabularSourceResponse', 'TeradataSourceResponse', 'VerticaSourceResponse', 'WebSourceResponse', 'XeroSourceResponse', 'XmlSourceResponse', 'ZohoSourceResponse'] source: Dataset-specific source properties, same as copy activity source.
        :param str type: Type of activity.
               Expected value is 'Lookup'.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Any first_row_only: Whether to return first row or all rows. Default value is true. Type: boolean (or Expression with resultType boolean).
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "dataset", dataset)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "source", source)
        pulumi.set(__self__, "type", 'Lookup')
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if first_row_only is not None:
            pulumi.set(__self__, "first_row_only", first_row_only)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter
    def dataset(self) -> 'outputs.DatasetReferenceResponse':
        """
        Lookup activity dataset reference.
        """
        return pulumi.get(self, "dataset")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def source(self) -> Any:
        """
        Dataset-specific source properties, same as copy activity source.
        """
        return pulumi.get(self, "source")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'Lookup'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="firstRowOnly")
    def first_row_only(self) -> Optional[Any]:
        """
        Whether to return first row or all rows. Default value is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "first_row_only")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class MagentoLinkedServiceResponse(dict):
    """
    Magento server linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accessToken":
            suggest = "access_token"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "useEncryptedEndpoints":
            suggest = "use_encrypted_endpoints"
        elif key == "useHostVerification":
            suggest = "use_host_verification"
        elif key == "usePeerVerification":
            suggest = "use_peer_verification"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MagentoLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MagentoLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MagentoLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 host: Any,
                 type: str,
                 access_token: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 use_encrypted_endpoints: Optional[Any] = None,
                 use_host_verification: Optional[Any] = None,
                 use_peer_verification: Optional[Any] = None):
        """
        Magento server linked service.
        :param Any host: The URL of the Magento instance. (i.e. 192.168.222.110/magento3)
        :param str type: Type of linked service.
               Expected value is 'Magento'.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] access_token: The access token from Magento.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Any use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        :param Any use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        :param Any use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        pulumi.set(__self__, "host", host)
        pulumi.set(__self__, "type", 'Magento')
        if access_token is not None:
            pulumi.set(__self__, "access_token", access_token)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if use_encrypted_endpoints is not None:
            pulumi.set(__self__, "use_encrypted_endpoints", use_encrypted_endpoints)
        if use_host_verification is not None:
            pulumi.set(__self__, "use_host_verification", use_host_verification)
        if use_peer_verification is not None:
            pulumi.set(__self__, "use_peer_verification", use_peer_verification)

    @property
    @pulumi.getter
    def host(self) -> Any:
        """
        The URL of the Magento instance. (i.e. 192.168.222.110/magento3)
        """
        return pulumi.get(self, "host")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Magento'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="accessToken")
    def access_token(self) -> Optional[Any]:
        """
        The access token from Magento.
        """
        return pulumi.get(self, "access_token")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="useEncryptedEndpoints")
    def use_encrypted_endpoints(self) -> Optional[Any]:
        """
        Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        """
        return pulumi.get(self, "use_encrypted_endpoints")

    @property
    @pulumi.getter(name="useHostVerification")
    def use_host_verification(self) -> Optional[Any]:
        """
        Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_host_verification")

    @property
    @pulumi.getter(name="usePeerVerification")
    def use_peer_verification(self) -> Optional[Any]:
        """
        Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_peer_verification")


@pulumi.output_type
class MagentoObjectDatasetResponse(dict):
    """
    Magento server dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MagentoObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MagentoObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MagentoObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Magento server dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'MagentoObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'MagentoObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'MagentoObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class MagentoSourceResponse(dict):
    """
    A copy activity Magento server source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MagentoSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MagentoSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MagentoSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Magento server source.
        :param str type: Copy source type.
               Expected value is 'MagentoSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'MagentoSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'MagentoSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class ManagedIntegrationRuntimeErrorResponse(dict):
    """
    Error definition for managed integration runtime.
    """
    def __init__(__self__, *,
                 code: str,
                 message: str,
                 parameters: Sequence[str],
                 time: str):
        """
        Error definition for managed integration runtime.
        :param str code: Error code.
        :param str message: Error message.
        :param Sequence[str] parameters: Managed integration runtime error parameters.
        :param str time: The time when the error occurred.
        """
        pulumi.set(__self__, "code", code)
        pulumi.set(__self__, "message", message)
        pulumi.set(__self__, "parameters", parameters)
        pulumi.set(__self__, "time", time)

    @property
    @pulumi.getter
    def code(self) -> str:
        """
        Error code.
        """
        return pulumi.get(self, "code")

    @property
    @pulumi.getter
    def message(self) -> str:
        """
        Error message.
        """
        return pulumi.get(self, "message")

    @property
    @pulumi.getter
    def parameters(self) -> Sequence[str]:
        """
        Managed integration runtime error parameters.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def time(self) -> str:
        """
        The time when the error occurred.
        """
        return pulumi.get(self, "time")


@pulumi.output_type
class ManagedIntegrationRuntimeNodeResponse(dict):
    """
    Properties of integration runtime node.
    """
    def __init__(__self__, *,
                 node_id: str,
                 status: str,
                 errors: Optional[Sequence['outputs.ManagedIntegrationRuntimeErrorResponse']] = None):
        """
        Properties of integration runtime node.
        :param str node_id: The managed integration runtime node id.
        :param str status: The managed integration runtime node status.
        :param Sequence['ManagedIntegrationRuntimeErrorResponse'] errors: The errors that occurred on this integration runtime node.
        """
        pulumi.set(__self__, "node_id", node_id)
        pulumi.set(__self__, "status", status)
        if errors is not None:
            pulumi.set(__self__, "errors", errors)

    @property
    @pulumi.getter(name="nodeId")
    def node_id(self) -> str:
        """
        The managed integration runtime node id.
        """
        return pulumi.get(self, "node_id")

    @property
    @pulumi.getter
    def status(self) -> str:
        """
        The managed integration runtime node status.
        """
        return pulumi.get(self, "status")

    @property
    @pulumi.getter
    def errors(self) -> Optional[Sequence['outputs.ManagedIntegrationRuntimeErrorResponse']]:
        """
        The errors that occurred on this integration runtime node.
        """
        return pulumi.get(self, "errors")


@pulumi.output_type
class ManagedIntegrationRuntimeOperationResultResponse(dict):
    """
    Properties of managed integration runtime operation result.
    """
    def __init__(__self__, *,
                 activity_id: str,
                 error_code: str,
                 parameters: Sequence[str],
                 result: str,
                 start_time: str,
                 type: str):
        """
        Properties of managed integration runtime operation result.
        :param str activity_id: The activity id for the operation request.
        :param str error_code: The error code.
        :param Sequence[str] parameters: Managed integration runtime error parameters.
        :param str result: The operation result.
        :param str start_time: The start time of the operation.
        :param str type: The operation type. Could be start or stop.
        """
        pulumi.set(__self__, "activity_id", activity_id)
        pulumi.set(__self__, "error_code", error_code)
        pulumi.set(__self__, "parameters", parameters)
        pulumi.set(__self__, "result", result)
        pulumi.set(__self__, "start_time", start_time)
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="activityId")
    def activity_id(self) -> str:
        """
        The activity id for the operation request.
        """
        return pulumi.get(self, "activity_id")

    @property
    @pulumi.getter(name="errorCode")
    def error_code(self) -> str:
        """
        The error code.
        """
        return pulumi.get(self, "error_code")

    @property
    @pulumi.getter
    def parameters(self) -> Sequence[str]:
        """
        Managed integration runtime error parameters.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def result(self) -> str:
        """
        The operation result.
        """
        return pulumi.get(self, "result")

    @property
    @pulumi.getter(name="startTime")
    def start_time(self) -> str:
        """
        The start time of the operation.
        """
        return pulumi.get(self, "start_time")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The operation type. Could be start or stop.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class ManagedIntegrationRuntimeResponse(dict):
    """
    Managed integration runtime, including managed elastic and managed dedicated integration runtimes.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "computeProperties":
            suggest = "compute_properties"
        elif key == "customerVirtualNetwork":
            suggest = "customer_virtual_network"
        elif key == "managedVirtualNetwork":
            suggest = "managed_virtual_network"
        elif key == "ssisProperties":
            suggest = "ssis_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ManagedIntegrationRuntimeResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ManagedIntegrationRuntimeResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ManagedIntegrationRuntimeResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 state: str,
                 type: str,
                 compute_properties: Optional['outputs.IntegrationRuntimeComputePropertiesResponse'] = None,
                 customer_virtual_network: Optional['outputs.IntegrationRuntimeCustomerVirtualNetworkResponse'] = None,
                 description: Optional[str] = None,
                 managed_virtual_network: Optional['outputs.ManagedVirtualNetworkReferenceResponse'] = None,
                 ssis_properties: Optional['outputs.IntegrationRuntimeSsisPropertiesResponse'] = None):
        """
        Managed integration runtime, including managed elastic and managed dedicated integration runtimes.
        :param str state: Integration runtime state, only valid for managed dedicated integration runtime.
        :param str type: The type of integration runtime.
               Expected value is 'Managed'.
        :param 'IntegrationRuntimeComputePropertiesResponse' compute_properties: The compute resource for managed integration runtime.
        :param 'IntegrationRuntimeCustomerVirtualNetworkResponse' customer_virtual_network: The name of virtual network to which Azure-SSIS integration runtime will join
        :param str description: Integration runtime description.
        :param 'ManagedVirtualNetworkReferenceResponse' managed_virtual_network: Managed Virtual Network reference.
        :param 'IntegrationRuntimeSsisPropertiesResponse' ssis_properties: SSIS properties for managed integration runtime.
        """
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "type", 'Managed')
        if compute_properties is not None:
            pulumi.set(__self__, "compute_properties", compute_properties)
        if customer_virtual_network is not None:
            pulumi.set(__self__, "customer_virtual_network", customer_virtual_network)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if managed_virtual_network is not None:
            pulumi.set(__self__, "managed_virtual_network", managed_virtual_network)
        if ssis_properties is not None:
            pulumi.set(__self__, "ssis_properties", ssis_properties)

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        Integration runtime state, only valid for managed dedicated integration runtime.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of integration runtime.
        Expected value is 'Managed'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="computeProperties")
    def compute_properties(self) -> Optional['outputs.IntegrationRuntimeComputePropertiesResponse']:
        """
        The compute resource for managed integration runtime.
        """
        return pulumi.get(self, "compute_properties")

    @property
    @pulumi.getter(name="customerVirtualNetwork")
    def customer_virtual_network(self) -> Optional['outputs.IntegrationRuntimeCustomerVirtualNetworkResponse']:
        """
        The name of virtual network to which Azure-SSIS integration runtime will join
        """
        return pulumi.get(self, "customer_virtual_network")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Integration runtime description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="managedVirtualNetwork")
    def managed_virtual_network(self) -> Optional['outputs.ManagedVirtualNetworkReferenceResponse']:
        """
        Managed Virtual Network reference.
        """
        return pulumi.get(self, "managed_virtual_network")

    @property
    @pulumi.getter(name="ssisProperties")
    def ssis_properties(self) -> Optional['outputs.IntegrationRuntimeSsisPropertiesResponse']:
        """
        SSIS properties for managed integration runtime.
        """
        return pulumi.get(self, "ssis_properties")


@pulumi.output_type
class ManagedIntegrationRuntimeStatusResponse(dict):
    """
    Managed integration runtime status.
    """
    def __init__(__self__, *,
                 create_time: str,
                 data_factory_name: str,
                 last_operation: 'outputs.ManagedIntegrationRuntimeOperationResultResponse',
                 nodes: Sequence['outputs.ManagedIntegrationRuntimeNodeResponse'],
                 other_errors: Sequence['outputs.ManagedIntegrationRuntimeErrorResponse'],
                 state: str,
                 type: str):
        """
        Managed integration runtime status.
        :param str create_time: The time at which the integration runtime was created, in ISO8601 format.
        :param str data_factory_name: The data factory name which the integration runtime belong to.
        :param 'ManagedIntegrationRuntimeOperationResultResponse' last_operation: The last operation result that occurred on this integration runtime.
        :param Sequence['ManagedIntegrationRuntimeNodeResponse'] nodes: The list of nodes for managed integration runtime.
        :param Sequence['ManagedIntegrationRuntimeErrorResponse'] other_errors: The errors that occurred on this integration runtime.
        :param str state: The state of integration runtime.
        :param str type: The type of integration runtime.
               Expected value is 'Managed'.
        """
        pulumi.set(__self__, "create_time", create_time)
        pulumi.set(__self__, "data_factory_name", data_factory_name)
        pulumi.set(__self__, "last_operation", last_operation)
        pulumi.set(__self__, "nodes", nodes)
        pulumi.set(__self__, "other_errors", other_errors)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "type", 'Managed')

    @property
    @pulumi.getter(name="createTime")
    def create_time(self) -> str:
        """
        The time at which the integration runtime was created, in ISO8601 format.
        """
        return pulumi.get(self, "create_time")

    @property
    @pulumi.getter(name="dataFactoryName")
    def data_factory_name(self) -> str:
        """
        The data factory name which the integration runtime belong to.
        """
        return pulumi.get(self, "data_factory_name")

    @property
    @pulumi.getter(name="lastOperation")
    def last_operation(self) -> 'outputs.ManagedIntegrationRuntimeOperationResultResponse':
        """
        The last operation result that occurred on this integration runtime.
        """
        return pulumi.get(self, "last_operation")

    @property
    @pulumi.getter
    def nodes(self) -> Sequence['outputs.ManagedIntegrationRuntimeNodeResponse']:
        """
        The list of nodes for managed integration runtime.
        """
        return pulumi.get(self, "nodes")

    @property
    @pulumi.getter(name="otherErrors")
    def other_errors(self) -> Sequence['outputs.ManagedIntegrationRuntimeErrorResponse']:
        """
        The errors that occurred on this integration runtime.
        """
        return pulumi.get(self, "other_errors")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        The state of integration runtime.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of integration runtime.
        Expected value is 'Managed'.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class ManagedPrivateEndpointResponse(dict):
    """
    Properties of a managed private endpoint
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "isReserved":
            suggest = "is_reserved"
        elif key == "provisioningState":
            suggest = "provisioning_state"
        elif key == "connectionState":
            suggest = "connection_state"
        elif key == "groupId":
            suggest = "group_id"
        elif key == "privateLinkResourceId":
            suggest = "private_link_resource_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ManagedPrivateEndpointResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ManagedPrivateEndpointResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ManagedPrivateEndpointResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 is_reserved: bool,
                 provisioning_state: str,
                 connection_state: Optional['outputs.ConnectionStatePropertiesResponse'] = None,
                 fqdns: Optional[Sequence[str]] = None,
                 group_id: Optional[str] = None,
                 private_link_resource_id: Optional[str] = None):
        """
        Properties of a managed private endpoint
        :param bool is_reserved: Denotes whether the managed private endpoint is reserved
        :param str provisioning_state: The managed private endpoint provisioning state
        :param 'ConnectionStatePropertiesResponse' connection_state: The managed private endpoint connection state
        :param Sequence[str] fqdns: Fully qualified domain names
        :param str group_id: The groupId to which the managed private endpoint is created
        :param str private_link_resource_id: The ARM resource ID of the resource to which the managed private endpoint is created
        """
        pulumi.set(__self__, "is_reserved", is_reserved)
        pulumi.set(__self__, "provisioning_state", provisioning_state)
        if connection_state is not None:
            pulumi.set(__self__, "connection_state", connection_state)
        if fqdns is not None:
            pulumi.set(__self__, "fqdns", fqdns)
        if group_id is not None:
            pulumi.set(__self__, "group_id", group_id)
        if private_link_resource_id is not None:
            pulumi.set(__self__, "private_link_resource_id", private_link_resource_id)

    @property
    @pulumi.getter(name="isReserved")
    def is_reserved(self) -> bool:
        """
        Denotes whether the managed private endpoint is reserved
        """
        return pulumi.get(self, "is_reserved")

    @property
    @pulumi.getter(name="provisioningState")
    def provisioning_state(self) -> str:
        """
        The managed private endpoint provisioning state
        """
        return pulumi.get(self, "provisioning_state")

    @property
    @pulumi.getter(name="connectionState")
    def connection_state(self) -> Optional['outputs.ConnectionStatePropertiesResponse']:
        """
        The managed private endpoint connection state
        """
        return pulumi.get(self, "connection_state")

    @property
    @pulumi.getter
    def fqdns(self) -> Optional[Sequence[str]]:
        """
        Fully qualified domain names
        """
        return pulumi.get(self, "fqdns")

    @property
    @pulumi.getter(name="groupId")
    def group_id(self) -> Optional[str]:
        """
        The groupId to which the managed private endpoint is created
        """
        return pulumi.get(self, "group_id")

    @property
    @pulumi.getter(name="privateLinkResourceId")
    def private_link_resource_id(self) -> Optional[str]:
        """
        The ARM resource ID of the resource to which the managed private endpoint is created
        """
        return pulumi.get(self, "private_link_resource_id")


@pulumi.output_type
class ManagedVirtualNetworkReferenceResponse(dict):
    """
    Managed Virtual Network reference type.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "referenceName":
            suggest = "reference_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ManagedVirtualNetworkReferenceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ManagedVirtualNetworkReferenceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ManagedVirtualNetworkReferenceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 reference_name: str,
                 type: str):
        """
        Managed Virtual Network reference type.
        :param str reference_name: Reference ManagedVirtualNetwork name.
        :param str type: Managed Virtual Network reference type.
        """
        pulumi.set(__self__, "reference_name", reference_name)
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="referenceName")
    def reference_name(self) -> str:
        """
        Reference ManagedVirtualNetwork name.
        """
        return pulumi.get(self, "reference_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Managed Virtual Network reference type.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class MappingDataFlowResponse(dict):
    """
    Mapping data flow.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "scriptLines":
            suggest = "script_lines"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MappingDataFlowResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MappingDataFlowResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MappingDataFlowResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DataFlowResponseFolder'] = None,
                 script: Optional[str] = None,
                 script_lines: Optional[Sequence[str]] = None,
                 sinks: Optional[Sequence['outputs.DataFlowSinkResponse']] = None,
                 sources: Optional[Sequence['outputs.DataFlowSourceResponse']] = None,
                 transformations: Optional[Sequence['outputs.TransformationResponse']] = None):
        """
        Mapping data flow.
        :param str type: Type of data flow.
               Expected value is 'MappingDataFlow'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the data flow.
        :param str description: The description of the data flow.
        :param 'DataFlowResponseFolder' folder: The folder that this data flow is in. If not specified, Data flow will appear at the root level.
        :param str script: DataFlow script.
        :param Sequence[str] script_lines: Data flow script lines.
        :param Sequence['DataFlowSinkResponse'] sinks: List of sinks in data flow.
        :param Sequence['DataFlowSourceResponse'] sources: List of sources in data flow.
        :param Sequence['TransformationResponse'] transformations: List of transformations in data flow.
        """
        pulumi.set(__self__, "type", 'MappingDataFlow')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if script is not None:
            pulumi.set(__self__, "script", script)
        if script_lines is not None:
            pulumi.set(__self__, "script_lines", script_lines)
        if sinks is not None:
            pulumi.set(__self__, "sinks", sinks)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if transformations is not None:
            pulumi.set(__self__, "transformations", transformations)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of data flow.
        Expected value is 'MappingDataFlow'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the data flow.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        The description of the data flow.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DataFlowResponseFolder']:
        """
        The folder that this data flow is in. If not specified, Data flow will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def script(self) -> Optional[str]:
        """
        DataFlow script.
        """
        return pulumi.get(self, "script")

    @property
    @pulumi.getter(name="scriptLines")
    def script_lines(self) -> Optional[Sequence[str]]:
        """
        Data flow script lines.
        """
        return pulumi.get(self, "script_lines")

    @property
    @pulumi.getter
    def sinks(self) -> Optional[Sequence['outputs.DataFlowSinkResponse']]:
        """
        List of sinks in data flow.
        """
        return pulumi.get(self, "sinks")

    @property
    @pulumi.getter
    def sources(self) -> Optional[Sequence['outputs.DataFlowSourceResponse']]:
        """
        List of sources in data flow.
        """
        return pulumi.get(self, "sources")

    @property
    @pulumi.getter
    def transformations(self) -> Optional[Sequence['outputs.TransformationResponse']]:
        """
        List of transformations in data flow.
        """
        return pulumi.get(self, "transformations")


@pulumi.output_type
class MariaDBLinkedServiceResponse(dict):
    """
    MariaDB server linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectVia":
            suggest = "connect_via"
        elif key == "connectionString":
            suggest = "connection_string"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MariaDBLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MariaDBLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MariaDBLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 connection_string: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 pwd: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None):
        """
        MariaDB server linked service.
        :param str type: Type of linked service.
               Expected value is 'MariaDB'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param 'AzureKeyVaultSecretReferenceResponse' pwd: The Azure key vault secret reference of password in connection string.
        """
        pulumi.set(__self__, "type", 'MariaDB')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if connection_string is not None:
            pulumi.set(__self__, "connection_string", connection_string)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pwd is not None:
            pulumi.set(__self__, "pwd", pwd)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'MariaDB'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Optional[Any]:
        """
        An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def pwd(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of password in connection string.
        """
        return pulumi.get(self, "pwd")


@pulumi.output_type
class MariaDBSourceResponse(dict):
    """
    A copy activity MariaDB server source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MariaDBSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MariaDBSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MariaDBSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity MariaDB server source.
        :param str type: Copy source type.
               Expected value is 'MariaDBSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'MariaDBSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'MariaDBSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class MariaDBTableDatasetResponse(dict):
    """
    MariaDB server dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MariaDBTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MariaDBTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MariaDBTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        MariaDB server dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'MariaDBTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'MariaDBTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'MariaDBTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class MarketoLinkedServiceResponse(dict):
    """
    Marketo server linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "clientId":
            suggest = "client_id"
        elif key == "clientSecret":
            suggest = "client_secret"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "useEncryptedEndpoints":
            suggest = "use_encrypted_endpoints"
        elif key == "useHostVerification":
            suggest = "use_host_verification"
        elif key == "usePeerVerification":
            suggest = "use_peer_verification"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MarketoLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MarketoLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MarketoLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 client_id: Any,
                 endpoint: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 client_secret: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 use_encrypted_endpoints: Optional[Any] = None,
                 use_host_verification: Optional[Any] = None,
                 use_peer_verification: Optional[Any] = None):
        """
        Marketo server linked service.
        :param Any client_id: The client Id of your Marketo service.
        :param Any endpoint: The endpoint of the Marketo server. (i.e. 123-ABC-321.mktorest.com)
        :param str type: Type of linked service.
               Expected value is 'Marketo'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] client_secret: The client secret of your Marketo service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Any use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        :param Any use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        :param Any use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        pulumi.set(__self__, "client_id", client_id)
        pulumi.set(__self__, "endpoint", endpoint)
        pulumi.set(__self__, "type", 'Marketo')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if client_secret is not None:
            pulumi.set(__self__, "client_secret", client_secret)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if use_encrypted_endpoints is not None:
            pulumi.set(__self__, "use_encrypted_endpoints", use_encrypted_endpoints)
        if use_host_verification is not None:
            pulumi.set(__self__, "use_host_verification", use_host_verification)
        if use_peer_verification is not None:
            pulumi.set(__self__, "use_peer_verification", use_peer_verification)

    @property
    @pulumi.getter(name="clientId")
    def client_id(self) -> Any:
        """
        The client Id of your Marketo service.
        """
        return pulumi.get(self, "client_id")

    @property
    @pulumi.getter
    def endpoint(self) -> Any:
        """
        The endpoint of the Marketo server. (i.e. 123-ABC-321.mktorest.com)
        """
        return pulumi.get(self, "endpoint")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Marketo'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="clientSecret")
    def client_secret(self) -> Optional[Any]:
        """
        The client secret of your Marketo service.
        """
        return pulumi.get(self, "client_secret")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="useEncryptedEndpoints")
    def use_encrypted_endpoints(self) -> Optional[Any]:
        """
        Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        """
        return pulumi.get(self, "use_encrypted_endpoints")

    @property
    @pulumi.getter(name="useHostVerification")
    def use_host_verification(self) -> Optional[Any]:
        """
        Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_host_verification")

    @property
    @pulumi.getter(name="usePeerVerification")
    def use_peer_verification(self) -> Optional[Any]:
        """
        Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_peer_verification")


@pulumi.output_type
class MarketoObjectDatasetResponse(dict):
    """
    Marketo server dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MarketoObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MarketoObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MarketoObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Marketo server dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'MarketoObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'MarketoObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'MarketoObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class MarketoSourceResponse(dict):
    """
    A copy activity Marketo server source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MarketoSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MarketoSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MarketoSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Marketo server source.
        :param str type: Copy source type.
               Expected value is 'MarketoSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'MarketoSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'MarketoSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class MetadataItemResponse(dict):
    """
    Specify the name and value of custom metadata item.
    """
    def __init__(__self__, *,
                 name: Optional[Any] = None,
                 value: Optional[Any] = None):
        """
        Specify the name and value of custom metadata item.
        :param Any name: Metadata item key name. Type: string (or Expression with resultType string).
        :param Any value: Metadata item value. Type: string (or Expression with resultType string).
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def name(self) -> Optional[Any]:
        """
        Metadata item key name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> Optional[Any]:
        """
        Metadata item value. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class MicrosoftAccessLinkedServiceResponse(dict):
    """
    Microsoft Access linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectionString":
            suggest = "connection_string"
        elif key == "authenticationType":
            suggest = "authentication_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "userName":
            suggest = "user_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MicrosoftAccessLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MicrosoftAccessLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MicrosoftAccessLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 connection_string: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 authentication_type: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 credential: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 user_name: Optional[Any] = None):
        """
        Microsoft Access linked service.
        :param Any connection_string: The non-access credential portion of the connection string as well as an optional encrypted credential. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str type: Type of linked service.
               Expected value is 'MicrosoftAccess'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any authentication_type: Type of authentication used to connect to the Microsoft Access as ODBC data store. Possible values are: Anonymous and Basic. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] credential: The access credential portion of the connection string specified in driver-specific property-value format.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password for Basic authentication.
        :param Any user_name: User name for Basic authentication. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "connection_string", connection_string)
        pulumi.set(__self__, "type", 'MicrosoftAccess')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if authentication_type is not None:
            pulumi.set(__self__, "authentication_type", authentication_type)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if credential is not None:
            pulumi.set(__self__, "credential", credential)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if user_name is not None:
            pulumi.set(__self__, "user_name", user_name)

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Any:
        """
        The non-access credential portion of the connection string as well as an optional encrypted credential. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'MicrosoftAccess'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> Optional[Any]:
        """
        Type of authentication used to connect to the Microsoft Access as ODBC data store. Possible values are: Anonymous and Basic. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def credential(self) -> Optional[Any]:
        """
        The access credential portion of the connection string specified in driver-specific property-value format.
        """
        return pulumi.get(self, "credential")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        Password for Basic authentication.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="userName")
    def user_name(self) -> Optional[Any]:
        """
        User name for Basic authentication. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "user_name")


@pulumi.output_type
class MicrosoftAccessSinkResponse(dict):
    """
    A copy activity Microsoft Access sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "preCopyScript":
            suggest = "pre_copy_script"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MicrosoftAccessSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MicrosoftAccessSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MicrosoftAccessSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 pre_copy_script: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity Microsoft Access sink.
        :param str type: Copy sink type.
               Expected value is 'MicrosoftAccessSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any pre_copy_script: A query to execute before starting the copy. Type: string (or Expression with resultType string).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'MicrosoftAccessSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if pre_copy_script is not None:
            pulumi.set(__self__, "pre_copy_script", pre_copy_script)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'MicrosoftAccessSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="preCopyScript")
    def pre_copy_script(self) -> Optional[Any]:
        """
        A query to execute before starting the copy. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "pre_copy_script")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class MicrosoftAccessSourceResponse(dict):
    """
    A copy activity source for Microsoft Access.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MicrosoftAccessSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MicrosoftAccessSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MicrosoftAccessSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for Microsoft Access.
        :param str type: Copy source type.
               Expected value is 'MicrosoftAccessSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: Database query. Type: string (or Expression with resultType string).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'MicrosoftAccessSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'MicrosoftAccessSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        Database query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class MicrosoftAccessTableDatasetResponse(dict):
    """
    The Microsoft Access table dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MicrosoftAccessTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MicrosoftAccessTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MicrosoftAccessTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        The Microsoft Access table dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'MicrosoftAccessTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The Microsoft Access table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'MicrosoftAccessTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'MicrosoftAccessTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The Microsoft Access table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class MongoDbAtlasCollectionDatasetResponse(dict):
    """
    The MongoDB Atlas database dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MongoDbAtlasCollectionDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MongoDbAtlasCollectionDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MongoDbAtlasCollectionDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 collection: Any,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        The MongoDB Atlas database dataset.
        :param Any collection: The collection name of the MongoDB Atlas database. Type: string (or Expression with resultType string).
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'MongoDbAtlasCollection'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "collection", collection)
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'MongoDbAtlasCollection')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter
    def collection(self) -> Any:
        """
        The collection name of the MongoDB Atlas database. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "collection")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'MongoDbAtlasCollection'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class MongoDbAtlasLinkedServiceResponse(dict):
    """
    Linked service for MongoDB Atlas data source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectionString":
            suggest = "connection_string"
        elif key == "connectVia":
            suggest = "connect_via"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MongoDbAtlasLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MongoDbAtlasLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MongoDbAtlasLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 connection_string: Any,
                 database: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None):
        """
        Linked service for MongoDB Atlas data source.
        :param Any connection_string: The MongoDB Atlas connection string. Type: string, SecureString or AzureKeyVaultSecretReference. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param Any database: The name of the MongoDB Atlas database that you want to access. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'MongoDbAtlas'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        """
        pulumi.set(__self__, "connection_string", connection_string)
        pulumi.set(__self__, "database", database)
        pulumi.set(__self__, "type", 'MongoDbAtlas')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Any:
        """
        The MongoDB Atlas connection string. Type: string, SecureString or AzureKeyVaultSecretReference. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def database(self) -> Any:
        """
        The name of the MongoDB Atlas database that you want to access. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "database")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'MongoDbAtlas'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")


@pulumi.output_type
class MongoDbAtlasSinkResponse(dict):
    """
    A copy activity MongoDB Atlas sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"
        elif key == "writeBehavior":
            suggest = "write_behavior"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MongoDbAtlasSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MongoDbAtlasSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MongoDbAtlasSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None,
                 write_behavior: Optional[Any] = None):
        """
        A copy activity MongoDB Atlas sink.
        :param str type: Copy sink type.
               Expected value is 'MongoDbAtlasSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_behavior: Specifies whether the document with same key to be overwritten (upsert) rather than throw exception (insert). The default value is "insert". Type: string (or Expression with resultType string). Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'MongoDbAtlasSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)
        if write_behavior is not None:
            pulumi.set(__self__, "write_behavior", write_behavior)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'MongoDbAtlasSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")

    @property
    @pulumi.getter(name="writeBehavior")
    def write_behavior(self) -> Optional[Any]:
        """
        Specifies whether the document with same key to be overwritten (upsert) rather than throw exception (insert). The default value is "insert". Type: string (or Expression with resultType string). Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "write_behavior")


@pulumi.output_type
class MongoDbAtlasSourceResponse(dict):
    """
    A copy activity source for a MongoDB Atlas database.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "batchSize":
            suggest = "batch_size"
        elif key == "cursorMethods":
            suggest = "cursor_methods"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MongoDbAtlasSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MongoDbAtlasSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MongoDbAtlasSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 batch_size: Optional[Any] = None,
                 cursor_methods: Optional['outputs.MongoDbCursorMethodsPropertiesResponse'] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 filter: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for a MongoDB Atlas database.
        :param str type: Copy source type.
               Expected value is 'MongoDbAtlasSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any batch_size: Specifies the number of documents to return in each batch of the response from MongoDB Atlas instance. In most cases, modifying the batch size will not affect the user or the application. This property's main purpose is to avoid hit the limitation of response size. Type: integer (or Expression with resultType integer).
        :param 'MongoDbCursorMethodsPropertiesResponse' cursor_methods: Cursor methods for Mongodb query
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any filter: Specifies selection filter using query operators. To return all documents in a collection, omit this parameter or pass an empty document ({}). Type: string (or Expression with resultType string).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'MongoDbAtlasSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if batch_size is not None:
            pulumi.set(__self__, "batch_size", batch_size)
        if cursor_methods is not None:
            pulumi.set(__self__, "cursor_methods", cursor_methods)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if filter is not None:
            pulumi.set(__self__, "filter", filter)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'MongoDbAtlasSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="batchSize")
    def batch_size(self) -> Optional[Any]:
        """
        Specifies the number of documents to return in each batch of the response from MongoDB Atlas instance. In most cases, modifying the batch size will not affect the user or the application. This property's main purpose is to avoid hit the limitation of response size. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "batch_size")

    @property
    @pulumi.getter(name="cursorMethods")
    def cursor_methods(self) -> Optional['outputs.MongoDbCursorMethodsPropertiesResponse']:
        """
        Cursor methods for Mongodb query
        """
        return pulumi.get(self, "cursor_methods")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter
    def filter(self) -> Optional[Any]:
        """
        Specifies selection filter using query operators. To return all documents in a collection, omit this parameter or pass an empty document ({}). Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "filter")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class MongoDbCollectionDatasetResponse(dict):
    """
    The MongoDB database dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "collectionName":
            suggest = "collection_name"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MongoDbCollectionDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MongoDbCollectionDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MongoDbCollectionDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 collection_name: Any,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        The MongoDB database dataset.
        :param Any collection_name: The table name of the MongoDB database. Type: string (or Expression with resultType string).
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'MongoDbCollection'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "collection_name", collection_name)
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'MongoDbCollection')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="collectionName")
    def collection_name(self) -> Any:
        """
        The table name of the MongoDB database. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "collection_name")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'MongoDbCollection'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class MongoDbCursorMethodsPropertiesResponse(dict):
    """
    Cursor methods for Mongodb query
    """
    def __init__(__self__, *,
                 limit: Optional[Any] = None,
                 project: Optional[Any] = None,
                 skip: Optional[Any] = None,
                 sort: Optional[Any] = None):
        """
        Cursor methods for Mongodb query
        :param Any limit: Specifies the maximum number of documents the server returns. limit() is analogous to the LIMIT statement in a SQL database. Type: integer (or Expression with resultType integer).
        :param Any project: Specifies the fields to return in the documents that match the query filter. To return all fields in the matching documents, omit this parameter. Type: string (or Expression with resultType string).
        :param Any skip: Specifies the how many documents skipped and where MongoDB begins returning results. This approach may be useful in implementing paginated results. Type: integer (or Expression with resultType integer).
        :param Any sort: Specifies the order in which the query returns matching documents. Type: string (or Expression with resultType string). Type: string (or Expression with resultType string).
        """
        if limit is not None:
            pulumi.set(__self__, "limit", limit)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if skip is not None:
            pulumi.set(__self__, "skip", skip)
        if sort is not None:
            pulumi.set(__self__, "sort", sort)

    @property
    @pulumi.getter
    def limit(self) -> Optional[Any]:
        """
        Specifies the maximum number of documents the server returns. limit() is analogous to the LIMIT statement in a SQL database. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "limit")

    @property
    @pulumi.getter
    def project(self) -> Optional[Any]:
        """
        Specifies the fields to return in the documents that match the query filter. To return all fields in the matching documents, omit this parameter. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "project")

    @property
    @pulumi.getter
    def skip(self) -> Optional[Any]:
        """
        Specifies the how many documents skipped and where MongoDB begins returning results. This approach may be useful in implementing paginated results. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "skip")

    @property
    @pulumi.getter
    def sort(self) -> Optional[Any]:
        """
        Specifies the order in which the query returns matching documents. Type: string (or Expression with resultType string). Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sort")


@pulumi.output_type
class MongoDbLinkedServiceResponse(dict):
    """
    Linked service for MongoDb data source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "databaseName":
            suggest = "database_name"
        elif key == "allowSelfSignedServerCert":
            suggest = "allow_self_signed_server_cert"
        elif key == "authSource":
            suggest = "auth_source"
        elif key == "authenticationType":
            suggest = "authentication_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "enableSsl":
            suggest = "enable_ssl"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MongoDbLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MongoDbLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MongoDbLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 database_name: Any,
                 server: Any,
                 type: str,
                 allow_self_signed_server_cert: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 auth_source: Optional[Any] = None,
                 authentication_type: Optional[str] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 enable_ssl: Optional[Any] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 port: Optional[Any] = None,
                 username: Optional[Any] = None):
        """
        Linked service for MongoDb data source.
        :param Any database_name: The name of the MongoDB database that you want to access. Type: string (or Expression with resultType string).
        :param Any server: The IP address or server name of the MongoDB server. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'MongoDb'.
        :param Any allow_self_signed_server_cert: Specifies whether to allow self-signed certificates from the server. The default value is false. Type: boolean (or Expression with resultType boolean).
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any auth_source: Database to verify the username and password. Type: string (or Expression with resultType string).
        :param str authentication_type: The authentication type to be used to connect to the MongoDB database.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any enable_ssl: Specifies whether the connections to the server are encrypted using SSL. The default value is false. Type: boolean (or Expression with resultType boolean).
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password for authentication.
        :param Any port: The TCP port number that the MongoDB server uses to listen for client connections. The default value is 27017. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any username: Username for authentication. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "database_name", database_name)
        pulumi.set(__self__, "server", server)
        pulumi.set(__self__, "type", 'MongoDb')
        if allow_self_signed_server_cert is not None:
            pulumi.set(__self__, "allow_self_signed_server_cert", allow_self_signed_server_cert)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if auth_source is not None:
            pulumi.set(__self__, "auth_source", auth_source)
        if authentication_type is not None:
            pulumi.set(__self__, "authentication_type", authentication_type)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if enable_ssl is not None:
            pulumi.set(__self__, "enable_ssl", enable_ssl)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter(name="databaseName")
    def database_name(self) -> Any:
        """
        The name of the MongoDB database that you want to access. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "database_name")

    @property
    @pulumi.getter
    def server(self) -> Any:
        """
        The IP address or server name of the MongoDB server. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "server")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'MongoDb'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="allowSelfSignedServerCert")
    def allow_self_signed_server_cert(self) -> Optional[Any]:
        """
        Specifies whether to allow self-signed certificates from the server. The default value is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "allow_self_signed_server_cert")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="authSource")
    def auth_source(self) -> Optional[Any]:
        """
        Database to verify the username and password. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "auth_source")

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> Optional[str]:
        """
        The authentication type to be used to connect to the MongoDB database.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="enableSsl")
    def enable_ssl(self) -> Optional[Any]:
        """
        Specifies whether the connections to the server are encrypted using SSL. The default value is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "enable_ssl")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        Password for authentication.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def port(self) -> Optional[Any]:
        """
        The TCP port number that the MongoDB server uses to listen for client connections. The default value is 27017. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "port")

    @property
    @pulumi.getter
    def username(self) -> Optional[Any]:
        """
        Username for authentication. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "username")


@pulumi.output_type
class MongoDbSourceResponse(dict):
    """
    A copy activity source for a MongoDB database.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MongoDbSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MongoDbSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MongoDbSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for a MongoDB database.
        :param str type: Copy source type.
               Expected value is 'MongoDbSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: Database query. Should be a SQL-92 query expression. Type: string (or Expression with resultType string).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'MongoDbSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'MongoDbSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        Database query. Should be a SQL-92 query expression. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class MongoDbV2CollectionDatasetResponse(dict):
    """
    The MongoDB database dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MongoDbV2CollectionDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MongoDbV2CollectionDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MongoDbV2CollectionDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 collection: Any,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        The MongoDB database dataset.
        :param Any collection: The collection name of the MongoDB database. Type: string (or Expression with resultType string).
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'MongoDbV2Collection'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "collection", collection)
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'MongoDbV2Collection')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter
    def collection(self) -> Any:
        """
        The collection name of the MongoDB database. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "collection")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'MongoDbV2Collection'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class MongoDbV2LinkedServiceResponse(dict):
    """
    Linked service for MongoDB data source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectionString":
            suggest = "connection_string"
        elif key == "connectVia":
            suggest = "connect_via"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MongoDbV2LinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MongoDbV2LinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MongoDbV2LinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 connection_string: Any,
                 database: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None):
        """
        Linked service for MongoDB data source.
        :param Any connection_string: The MongoDB connection string. Type: string, SecureString or AzureKeyVaultSecretReference. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param Any database: The name of the MongoDB database that you want to access. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'MongoDbV2'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        """
        pulumi.set(__self__, "connection_string", connection_string)
        pulumi.set(__self__, "database", database)
        pulumi.set(__self__, "type", 'MongoDbV2')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Any:
        """
        The MongoDB connection string. Type: string, SecureString or AzureKeyVaultSecretReference. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def database(self) -> Any:
        """
        The name of the MongoDB database that you want to access. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "database")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'MongoDbV2'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")


@pulumi.output_type
class MongoDbV2SinkResponse(dict):
    """
    A copy activity MongoDB sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"
        elif key == "writeBehavior":
            suggest = "write_behavior"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MongoDbV2SinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MongoDbV2SinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MongoDbV2SinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None,
                 write_behavior: Optional[Any] = None):
        """
        A copy activity MongoDB sink.
        :param str type: Copy sink type.
               Expected value is 'MongoDbV2Sink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_behavior: Specifies whether the document with same key to be overwritten (upsert) rather than throw exception (insert). The default value is "insert". Type: string (or Expression with resultType string). Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'MongoDbV2Sink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)
        if write_behavior is not None:
            pulumi.set(__self__, "write_behavior", write_behavior)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'MongoDbV2Sink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")

    @property
    @pulumi.getter(name="writeBehavior")
    def write_behavior(self) -> Optional[Any]:
        """
        Specifies whether the document with same key to be overwritten (upsert) rather than throw exception (insert). The default value is "insert". Type: string (or Expression with resultType string). Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "write_behavior")


@pulumi.output_type
class MongoDbV2SourceResponse(dict):
    """
    A copy activity source for a MongoDB database.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "batchSize":
            suggest = "batch_size"
        elif key == "cursorMethods":
            suggest = "cursor_methods"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MongoDbV2SourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MongoDbV2SourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MongoDbV2SourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 batch_size: Optional[Any] = None,
                 cursor_methods: Optional['outputs.MongoDbCursorMethodsPropertiesResponse'] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 filter: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for a MongoDB database.
        :param str type: Copy source type.
               Expected value is 'MongoDbV2Source'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any batch_size: Specifies the number of documents to return in each batch of the response from MongoDB instance. In most cases, modifying the batch size will not affect the user or the application. This property's main purpose is to avoid hit the limitation of response size. Type: integer (or Expression with resultType integer).
        :param 'MongoDbCursorMethodsPropertiesResponse' cursor_methods: Cursor methods for Mongodb query
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any filter: Specifies selection filter using query operators. To return all documents in a collection, omit this parameter or pass an empty document ({}). Type: string (or Expression with resultType string).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'MongoDbV2Source')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if batch_size is not None:
            pulumi.set(__self__, "batch_size", batch_size)
        if cursor_methods is not None:
            pulumi.set(__self__, "cursor_methods", cursor_methods)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if filter is not None:
            pulumi.set(__self__, "filter", filter)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'MongoDbV2Source'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="batchSize")
    def batch_size(self) -> Optional[Any]:
        """
        Specifies the number of documents to return in each batch of the response from MongoDB instance. In most cases, modifying the batch size will not affect the user or the application. This property's main purpose is to avoid hit the limitation of response size. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "batch_size")

    @property
    @pulumi.getter(name="cursorMethods")
    def cursor_methods(self) -> Optional['outputs.MongoDbCursorMethodsPropertiesResponse']:
        """
        Cursor methods for Mongodb query
        """
        return pulumi.get(self, "cursor_methods")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter
    def filter(self) -> Optional[Any]:
        """
        Specifies selection filter using query operators. To return all documents in a collection, omit this parameter or pass an empty document ({}). Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "filter")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class MultiplePipelineTriggerResponse(dict):
    """
    Base class for all triggers that support one to many model for trigger to pipeline.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "runtimeState":
            suggest = "runtime_state"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MultiplePipelineTriggerResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MultiplePipelineTriggerResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MultiplePipelineTriggerResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 runtime_state: str,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 pipelines: Optional[Sequence['outputs.TriggerPipelineReferenceResponse']] = None):
        """
        Base class for all triggers that support one to many model for trigger to pipeline.
        :param str runtime_state: Indicates if trigger is running or not. Updated when Start/Stop APIs are called on the Trigger.
        :param str type: Trigger type.
               Expected value is 'MultiplePipelineTrigger'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the trigger.
        :param str description: Trigger description.
        :param Sequence['TriggerPipelineReferenceResponse'] pipelines: Pipelines that need to be started.
        """
        pulumi.set(__self__, "runtime_state", runtime_state)
        pulumi.set(__self__, "type", 'MultiplePipelineTrigger')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if pipelines is not None:
            pulumi.set(__self__, "pipelines", pipelines)

    @property
    @pulumi.getter(name="runtimeState")
    def runtime_state(self) -> str:
        """
        Indicates if trigger is running or not. Updated when Start/Stop APIs are called on the Trigger.
        """
        return pulumi.get(self, "runtime_state")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Trigger type.
        Expected value is 'MultiplePipelineTrigger'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the trigger.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Trigger description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def pipelines(self) -> Optional[Sequence['outputs.TriggerPipelineReferenceResponse']]:
        """
        Pipelines that need to be started.
        """
        return pulumi.get(self, "pipelines")


@pulumi.output_type
class MySqlLinkedServiceResponse(dict):
    """
    Linked service for MySQL data source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectionString":
            suggest = "connection_string"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MySqlLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MySqlLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MySqlLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 connection_string: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None):
        """
        Linked service for MySQL data source.
        :param Any connection_string: The connection string.
        :param str type: Type of linked service.
               Expected value is 'MySql'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param 'AzureKeyVaultSecretReferenceResponse' password: The Azure key vault secret reference of password in connection string.
        """
        pulumi.set(__self__, "connection_string", connection_string)
        pulumi.set(__self__, "type", 'MySql')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Any:
        """
        The connection string.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'MySql'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of password in connection string.
        """
        return pulumi.get(self, "password")


@pulumi.output_type
class MySqlSourceResponse(dict):
    """
    A copy activity source for MySQL databases.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MySqlSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MySqlSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MySqlSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for MySQL databases.
        :param str type: Copy source type.
               Expected value is 'MySqlSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: Database query. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'MySqlSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'MySqlSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        Database query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class MySqlTableDatasetResponse(dict):
    """
    The MySQL table dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in MySqlTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        MySqlTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        MySqlTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        The MySQL table dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'MySqlTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The MySQL table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'MySqlTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'MySqlTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The MySQL table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class NetezzaLinkedServiceResponse(dict):
    """
    Netezza linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectVia":
            suggest = "connect_via"
        elif key == "connectionString":
            suggest = "connection_string"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in NetezzaLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        NetezzaLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        NetezzaLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 connection_string: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 pwd: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None):
        """
        Netezza linked service.
        :param str type: Type of linked service.
               Expected value is 'Netezza'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param 'AzureKeyVaultSecretReferenceResponse' pwd: The Azure key vault secret reference of password in connection string.
        """
        pulumi.set(__self__, "type", 'Netezza')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if connection_string is not None:
            pulumi.set(__self__, "connection_string", connection_string)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pwd is not None:
            pulumi.set(__self__, "pwd", pwd)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Netezza'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Optional[Any]:
        """
        An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def pwd(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of password in connection string.
        """
        return pulumi.get(self, "pwd")


@pulumi.output_type
class NetezzaPartitionSettingsResponse(dict):
    """
    The settings that will be leveraged for Netezza source partitioning.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "partitionColumnName":
            suggest = "partition_column_name"
        elif key == "partitionLowerBound":
            suggest = "partition_lower_bound"
        elif key == "partitionUpperBound":
            suggest = "partition_upper_bound"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in NetezzaPartitionSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        NetezzaPartitionSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        NetezzaPartitionSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 partition_column_name: Optional[Any] = None,
                 partition_lower_bound: Optional[Any] = None,
                 partition_upper_bound: Optional[Any] = None):
        """
        The settings that will be leveraged for Netezza source partitioning.
        :param Any partition_column_name: The name of the column in integer type that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        :param Any partition_lower_bound: The minimum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        :param Any partition_upper_bound: The maximum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        """
        if partition_column_name is not None:
            pulumi.set(__self__, "partition_column_name", partition_column_name)
        if partition_lower_bound is not None:
            pulumi.set(__self__, "partition_lower_bound", partition_lower_bound)
        if partition_upper_bound is not None:
            pulumi.set(__self__, "partition_upper_bound", partition_upper_bound)

    @property
    @pulumi.getter(name="partitionColumnName")
    def partition_column_name(self) -> Optional[Any]:
        """
        The name of the column in integer type that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_column_name")

    @property
    @pulumi.getter(name="partitionLowerBound")
    def partition_lower_bound(self) -> Optional[Any]:
        """
        The minimum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_lower_bound")

    @property
    @pulumi.getter(name="partitionUpperBound")
    def partition_upper_bound(self) -> Optional[Any]:
        """
        The maximum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_upper_bound")


@pulumi.output_type
class NetezzaSourceResponse(dict):
    """
    A copy activity Netezza source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "partitionOption":
            suggest = "partition_option"
        elif key == "partitionSettings":
            suggest = "partition_settings"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in NetezzaSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        NetezzaSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        NetezzaSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 partition_option: Optional[Any] = None,
                 partition_settings: Optional['outputs.NetezzaPartitionSettingsResponse'] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Netezza source.
        :param str type: Copy source type.
               Expected value is 'NetezzaSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any partition_option: The partition mechanism that will be used for Netezza read in parallel. Possible values include: "None", "DataSlice", "DynamicRange".
        :param 'NetezzaPartitionSettingsResponse' partition_settings: The settings that will be leveraged for Netezza source partitioning.
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'NetezzaSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if partition_option is not None:
            pulumi.set(__self__, "partition_option", partition_option)
        if partition_settings is not None:
            pulumi.set(__self__, "partition_settings", partition_settings)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'NetezzaSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="partitionOption")
    def partition_option(self) -> Optional[Any]:
        """
        The partition mechanism that will be used for Netezza read in parallel. Possible values include: "None", "DataSlice", "DynamicRange".
        """
        return pulumi.get(self, "partition_option")

    @property
    @pulumi.getter(name="partitionSettings")
    def partition_settings(self) -> Optional['outputs.NetezzaPartitionSettingsResponse']:
        """
        The settings that will be leveraged for Netezza source partitioning.
        """
        return pulumi.get(self, "partition_settings")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class NetezzaTableDatasetResponse(dict):
    """
    Netezza dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in NetezzaTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        NetezzaTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        NetezzaTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Netezza dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'NetezzaTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The table name of the Netezza. Type: string (or Expression with resultType string).
        :param Any table_name: This property will be retired. Please consider using schema + table properties instead.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'NetezzaTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'NetezzaTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The table name of the Netezza. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        This property will be retired. Please consider using schema + table properties instead.
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class ODataLinkedServiceResponse(dict):
    """
    Open Data Protocol (OData) linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "aadResourceId":
            suggest = "aad_resource_id"
        elif key == "aadServicePrincipalCredentialType":
            suggest = "aad_service_principal_credential_type"
        elif key == "authHeaders":
            suggest = "auth_headers"
        elif key == "authenticationType":
            suggest = "authentication_type"
        elif key == "azureCloudType":
            suggest = "azure_cloud_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "servicePrincipalEmbeddedCert":
            suggest = "service_principal_embedded_cert"
        elif key == "servicePrincipalEmbeddedCertPassword":
            suggest = "service_principal_embedded_cert_password"
        elif key == "servicePrincipalId":
            suggest = "service_principal_id"
        elif key == "servicePrincipalKey":
            suggest = "service_principal_key"
        elif key == "userName":
            suggest = "user_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ODataLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ODataLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ODataLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 url: Any,
                 aad_resource_id: Optional[Any] = None,
                 aad_service_principal_credential_type: Optional[str] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 auth_headers: Optional[Any] = None,
                 authentication_type: Optional[str] = None,
                 azure_cloud_type: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 service_principal_embedded_cert: Optional[Any] = None,
                 service_principal_embedded_cert_password: Optional[Any] = None,
                 service_principal_id: Optional[Any] = None,
                 service_principal_key: Optional[Any] = None,
                 tenant: Optional[Any] = None,
                 user_name: Optional[Any] = None):
        """
        Open Data Protocol (OData) linked service.
        :param str type: Type of linked service.
               Expected value is 'OData'.
        :param Any url: The URL of the OData service endpoint. Type: string (or Expression with resultType string).
        :param Any aad_resource_id: Specify the resource you are requesting authorization to use Directory. Type: string (or Expression with resultType string).
        :param str aad_service_principal_credential_type: Specify the credential type (key or cert) is used for service principal.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any auth_headers: The additional HTTP headers in the request to RESTful API used for authorization. Type: object (or Expression with resultType object).
        :param str authentication_type: Type of authentication used to connect to the OData service.
        :param Any azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password of the OData service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_embedded_cert: Specify the base64 encoded certificate of your application registered in Azure Active Directory. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_embedded_cert_password: Specify the password of your certificate if your certificate has a password and you are using AadServicePrincipal authentication. Type: string (or Expression with resultType string).
        :param Any service_principal_id: Specify the application id of your application registered in Azure Active Directory. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_key: Specify the secret of your application registered in Azure Active Directory. Type: string (or Expression with resultType string).
        :param Any tenant: Specify the tenant information (domain name or tenant ID) under which your application resides. Type: string (or Expression with resultType string).
        :param Any user_name: User name of the OData service. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'OData')
        pulumi.set(__self__, "url", url)
        if aad_resource_id is not None:
            pulumi.set(__self__, "aad_resource_id", aad_resource_id)
        if aad_service_principal_credential_type is not None:
            pulumi.set(__self__, "aad_service_principal_credential_type", aad_service_principal_credential_type)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if auth_headers is not None:
            pulumi.set(__self__, "auth_headers", auth_headers)
        if authentication_type is not None:
            pulumi.set(__self__, "authentication_type", authentication_type)
        if azure_cloud_type is not None:
            pulumi.set(__self__, "azure_cloud_type", azure_cloud_type)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if service_principal_embedded_cert is not None:
            pulumi.set(__self__, "service_principal_embedded_cert", service_principal_embedded_cert)
        if service_principal_embedded_cert_password is not None:
            pulumi.set(__self__, "service_principal_embedded_cert_password", service_principal_embedded_cert_password)
        if service_principal_id is not None:
            pulumi.set(__self__, "service_principal_id", service_principal_id)
        if service_principal_key is not None:
            pulumi.set(__self__, "service_principal_key", service_principal_key)
        if tenant is not None:
            pulumi.set(__self__, "tenant", tenant)
        if user_name is not None:
            pulumi.set(__self__, "user_name", user_name)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'OData'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def url(self) -> Any:
        """
        The URL of the OData service endpoint. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "url")

    @property
    @pulumi.getter(name="aadResourceId")
    def aad_resource_id(self) -> Optional[Any]:
        """
        Specify the resource you are requesting authorization to use Directory. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "aad_resource_id")

    @property
    @pulumi.getter(name="aadServicePrincipalCredentialType")
    def aad_service_principal_credential_type(self) -> Optional[str]:
        """
        Specify the credential type (key or cert) is used for service principal.
        """
        return pulumi.get(self, "aad_service_principal_credential_type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="authHeaders")
    def auth_headers(self) -> Optional[Any]:
        """
        The additional HTTP headers in the request to RESTful API used for authorization. Type: object (or Expression with resultType object).
        """
        return pulumi.get(self, "auth_headers")

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> Optional[str]:
        """
        Type of authentication used to connect to the OData service.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter(name="azureCloudType")
    def azure_cloud_type(self) -> Optional[Any]:
        """
        Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "azure_cloud_type")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        Password of the OData service.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="servicePrincipalEmbeddedCert")
    def service_principal_embedded_cert(self) -> Optional[Any]:
        """
        Specify the base64 encoded certificate of your application registered in Azure Active Directory. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_embedded_cert")

    @property
    @pulumi.getter(name="servicePrincipalEmbeddedCertPassword")
    def service_principal_embedded_cert_password(self) -> Optional[Any]:
        """
        Specify the password of your certificate if your certificate has a password and you are using AadServicePrincipal authentication. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_embedded_cert_password")

    @property
    @pulumi.getter(name="servicePrincipalId")
    def service_principal_id(self) -> Optional[Any]:
        """
        Specify the application id of your application registered in Azure Active Directory. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_id")

    @property
    @pulumi.getter(name="servicePrincipalKey")
    def service_principal_key(self) -> Optional[Any]:
        """
        Specify the secret of your application registered in Azure Active Directory. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_key")

    @property
    @pulumi.getter
    def tenant(self) -> Optional[Any]:
        """
        Specify the tenant information (domain name or tenant ID) under which your application resides. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "tenant")

    @property
    @pulumi.getter(name="userName")
    def user_name(self) -> Optional[Any]:
        """
        User name of the OData service. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "user_name")


@pulumi.output_type
class ODataResourceDatasetResponse(dict):
    """
    The Open Data Protocol (OData) resource dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ODataResourceDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ODataResourceDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ODataResourceDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 path: Optional[Any] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        The Open Data Protocol (OData) resource dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'ODataResource'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any path: The OData resource path. Type: string (or Expression with resultType string).
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'ODataResource')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'ODataResource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def path(self) -> Optional[Any]:
        """
        The OData resource path. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "path")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class ODataSourceResponse(dict):
    """
    A copy activity source for OData source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "httpRequestTimeout":
            suggest = "http_request_timeout"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ODataSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ODataSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ODataSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 http_request_timeout: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for OData source.
        :param str type: Copy source type.
               Expected value is 'ODataSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any http_request_timeout: The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:05:00. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: OData query. For example, "$top=1". Type: string (or Expression with resultType string).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'ODataSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if http_request_timeout is not None:
            pulumi.set(__self__, "http_request_timeout", http_request_timeout)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'ODataSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="httpRequestTimeout")
    def http_request_timeout(self) -> Optional[Any]:
        """
        The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:05:00. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "http_request_timeout")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        OData query. For example, "$top=1". Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class OdbcLinkedServiceResponse(dict):
    """
    Open Database Connectivity (ODBC) linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectionString":
            suggest = "connection_string"
        elif key == "authenticationType":
            suggest = "authentication_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "userName":
            suggest = "user_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OdbcLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OdbcLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OdbcLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 connection_string: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 authentication_type: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 credential: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 user_name: Optional[Any] = None):
        """
        Open Database Connectivity (ODBC) linked service.
        :param Any connection_string: The non-access credential portion of the connection string as well as an optional encrypted credential. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str type: Type of linked service.
               Expected value is 'Odbc'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any authentication_type: Type of authentication used to connect to the ODBC data store. Possible values are: Anonymous and Basic. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] credential: The access credential portion of the connection string specified in driver-specific property-value format.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password for Basic authentication.
        :param Any user_name: User name for Basic authentication. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "connection_string", connection_string)
        pulumi.set(__self__, "type", 'Odbc')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if authentication_type is not None:
            pulumi.set(__self__, "authentication_type", authentication_type)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if credential is not None:
            pulumi.set(__self__, "credential", credential)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if user_name is not None:
            pulumi.set(__self__, "user_name", user_name)

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Any:
        """
        The non-access credential portion of the connection string as well as an optional encrypted credential. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Odbc'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> Optional[Any]:
        """
        Type of authentication used to connect to the ODBC data store. Possible values are: Anonymous and Basic. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def credential(self) -> Optional[Any]:
        """
        The access credential portion of the connection string specified in driver-specific property-value format.
        """
        return pulumi.get(self, "credential")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        Password for Basic authentication.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="userName")
    def user_name(self) -> Optional[Any]:
        """
        User name for Basic authentication. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "user_name")


@pulumi.output_type
class OdbcSinkResponse(dict):
    """
    A copy activity ODBC sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "preCopyScript":
            suggest = "pre_copy_script"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OdbcSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OdbcSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OdbcSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 pre_copy_script: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity ODBC sink.
        :param str type: Copy sink type.
               Expected value is 'OdbcSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any pre_copy_script: A query to execute before starting the copy. Type: string (or Expression with resultType string).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'OdbcSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if pre_copy_script is not None:
            pulumi.set(__self__, "pre_copy_script", pre_copy_script)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'OdbcSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="preCopyScript")
    def pre_copy_script(self) -> Optional[Any]:
        """
        A query to execute before starting the copy. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "pre_copy_script")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class OdbcSourceResponse(dict):
    """
    A copy activity source for ODBC databases.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OdbcSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OdbcSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OdbcSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for ODBC databases.
        :param str type: Copy source type.
               Expected value is 'OdbcSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: Database query. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'OdbcSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'OdbcSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        Database query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class OdbcTableDatasetResponse(dict):
    """
    The ODBC table dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OdbcTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OdbcTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OdbcTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        The ODBC table dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'OdbcTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The ODBC table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'OdbcTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'OdbcTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The ODBC table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class Office365DatasetResponse(dict):
    """
    The Office365 account.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in Office365DatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        Office365DatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        Office365DatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 table_name: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 predicate: Optional[Any] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        The Office365 account.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param Any table_name: Name of the dataset to extract from Office 365. Type: string (or Expression with resultType string).
        :param str type: Type of dataset.
               Expected value is 'Office365Table'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any predicate: A predicate expression that can be used to filter the specific rows to extract from Office 365. Type: string (or Expression with resultType string).
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "table_name", table_name)
        pulumi.set(__self__, "type", 'Office365Table')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if predicate is not None:
            pulumi.set(__self__, "predicate", predicate)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Any:
        """
        Name of the dataset to extract from Office 365. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'Office365Table'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def predicate(self) -> Optional[Any]:
        """
        A predicate expression that can be used to filter the specific rows to extract from Office 365. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "predicate")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class Office365LinkedServiceResponse(dict):
    """
    Office365 linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "office365TenantId":
            suggest = "office365_tenant_id"
        elif key == "servicePrincipalId":
            suggest = "service_principal_id"
        elif key == "servicePrincipalKey":
            suggest = "service_principal_key"
        elif key == "servicePrincipalTenantId":
            suggest = "service_principal_tenant_id"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in Office365LinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        Office365LinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        Office365LinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 office365_tenant_id: Any,
                 service_principal_id: Any,
                 service_principal_key: Any,
                 service_principal_tenant_id: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None):
        """
        Office365 linked service.
        :param Any office365_tenant_id: Azure tenant ID to which the Office 365 account belongs. Type: string (or Expression with resultType string).
        :param Any service_principal_id: Specify the application's client ID. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_key: Specify the application's key.
        :param Any service_principal_tenant_id: Specify the tenant information under which your Azure AD web application resides. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'Office365'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        """
        pulumi.set(__self__, "office365_tenant_id", office365_tenant_id)
        pulumi.set(__self__, "service_principal_id", service_principal_id)
        pulumi.set(__self__, "service_principal_key", service_principal_key)
        pulumi.set(__self__, "service_principal_tenant_id", service_principal_tenant_id)
        pulumi.set(__self__, "type", 'Office365')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)

    @property
    @pulumi.getter(name="office365TenantId")
    def office365_tenant_id(self) -> Any:
        """
        Azure tenant ID to which the Office 365 account belongs. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "office365_tenant_id")

    @property
    @pulumi.getter(name="servicePrincipalId")
    def service_principal_id(self) -> Any:
        """
        Specify the application's client ID. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_id")

    @property
    @pulumi.getter(name="servicePrincipalKey")
    def service_principal_key(self) -> Any:
        """
        Specify the application's key.
        """
        return pulumi.get(self, "service_principal_key")

    @property
    @pulumi.getter(name="servicePrincipalTenantId")
    def service_principal_tenant_id(self) -> Any:
        """
        Specify the tenant information under which your Azure AD web application resides. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_tenant_id")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Office365'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")


@pulumi.output_type
class Office365SourceResponse(dict):
    """
    A copy activity source for an Office 365 service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "allowedGroups":
            suggest = "allowed_groups"
        elif key == "dateFilterColumn":
            suggest = "date_filter_column"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "endTime":
            suggest = "end_time"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "outputColumns":
            suggest = "output_columns"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"
        elif key == "startTime":
            suggest = "start_time"
        elif key == "userScopeFilterUri":
            suggest = "user_scope_filter_uri"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in Office365SourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        Office365SourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        Office365SourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 allowed_groups: Optional[Any] = None,
                 date_filter_column: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 end_time: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 output_columns: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None,
                 start_time: Optional[Any] = None,
                 user_scope_filter_uri: Optional[Any] = None):
        """
        A copy activity source for an Office 365 service.
        :param str type: Copy source type.
               Expected value is 'Office365Source'.
        :param Any allowed_groups: The groups containing all the users. Type: array of strings (or Expression with resultType array of strings).
        :param Any date_filter_column: The Column to apply the <paramref name="StartTime"/> and <paramref name="EndTime"/>. Type: string (or Expression with resultType string).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any end_time: End time of the requested range for this dataset. Type: string (or Expression with resultType string).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any output_columns: The columns to be read out from the Office 365 table. Type: array of objects (or Expression with resultType array of objects). Example: [ { "name": "Id" }, { "name": "CreatedDateTime" } ]
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any start_time: Start time of the requested range for this dataset. Type: string (or Expression with resultType string).
        :param Any user_scope_filter_uri: The user scope uri. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'Office365Source')
        if allowed_groups is not None:
            pulumi.set(__self__, "allowed_groups", allowed_groups)
        if date_filter_column is not None:
            pulumi.set(__self__, "date_filter_column", date_filter_column)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if end_time is not None:
            pulumi.set(__self__, "end_time", end_time)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if output_columns is not None:
            pulumi.set(__self__, "output_columns", output_columns)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)
        if start_time is not None:
            pulumi.set(__self__, "start_time", start_time)
        if user_scope_filter_uri is not None:
            pulumi.set(__self__, "user_scope_filter_uri", user_scope_filter_uri)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'Office365Source'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="allowedGroups")
    def allowed_groups(self) -> Optional[Any]:
        """
        The groups containing all the users. Type: array of strings (or Expression with resultType array of strings).
        """
        return pulumi.get(self, "allowed_groups")

    @property
    @pulumi.getter(name="dateFilterColumn")
    def date_filter_column(self) -> Optional[Any]:
        """
        The Column to apply the <paramref name="StartTime"/> and <paramref name="EndTime"/>. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "date_filter_column")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="endTime")
    def end_time(self) -> Optional[Any]:
        """
        End time of the requested range for this dataset. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "end_time")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="outputColumns")
    def output_columns(self) -> Optional[Any]:
        """
        The columns to be read out from the Office 365 table. Type: array of objects (or Expression with resultType array of objects). Example: [ { "name": "Id" }, { "name": "CreatedDateTime" } ]
        """
        return pulumi.get(self, "output_columns")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")

    @property
    @pulumi.getter(name="startTime")
    def start_time(self) -> Optional[Any]:
        """
        Start time of the requested range for this dataset. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "start_time")

    @property
    @pulumi.getter(name="userScopeFilterUri")
    def user_scope_filter_uri(self) -> Optional[Any]:
        """
        The user scope uri. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "user_scope_filter_uri")


@pulumi.output_type
class OracleCloudStorageLinkedServiceResponse(dict):
    """
    Linked service for Oracle Cloud Storage.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accessKeyId":
            suggest = "access_key_id"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "secretAccessKey":
            suggest = "secret_access_key"
        elif key == "serviceUrl":
            suggest = "service_url"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OracleCloudStorageLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OracleCloudStorageLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OracleCloudStorageLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 access_key_id: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 secret_access_key: Optional[Any] = None,
                 service_url: Optional[Any] = None):
        """
        Linked service for Oracle Cloud Storage.
        :param str type: Type of linked service.
               Expected value is 'OracleCloudStorage'.
        :param Any access_key_id: The access key identifier of the Oracle Cloud Storage Identity and Access Management (IAM) user. Type: string (or Expression with resultType string).
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] secret_access_key: The secret access key of the Oracle Cloud Storage Identity and Access Management (IAM) user.
        :param Any service_url: This value specifies the endpoint to access with the Oracle Cloud Storage Connector. This is an optional property; change it only if you want to try a different service endpoint or want to switch between https and http. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'OracleCloudStorage')
        if access_key_id is not None:
            pulumi.set(__self__, "access_key_id", access_key_id)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if secret_access_key is not None:
            pulumi.set(__self__, "secret_access_key", secret_access_key)
        if service_url is not None:
            pulumi.set(__self__, "service_url", service_url)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'OracleCloudStorage'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="accessKeyId")
    def access_key_id(self) -> Optional[Any]:
        """
        The access key identifier of the Oracle Cloud Storage Identity and Access Management (IAM) user. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "access_key_id")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="secretAccessKey")
    def secret_access_key(self) -> Optional[Any]:
        """
        The secret access key of the Oracle Cloud Storage Identity and Access Management (IAM) user.
        """
        return pulumi.get(self, "secret_access_key")

    @property
    @pulumi.getter(name="serviceUrl")
    def service_url(self) -> Optional[Any]:
        """
        This value specifies the endpoint to access with the Oracle Cloud Storage Connector. This is an optional property; change it only if you want to try a different service endpoint or want to switch between https and http. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_url")


@pulumi.output_type
class OracleCloudStorageLocationResponse(dict):
    """
    The location of Oracle Cloud Storage dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "bucketName":
            suggest = "bucket_name"
        elif key == "fileName":
            suggest = "file_name"
        elif key == "folderPath":
            suggest = "folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OracleCloudStorageLocationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OracleCloudStorageLocationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OracleCloudStorageLocationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 bucket_name: Optional[Any] = None,
                 file_name: Optional[Any] = None,
                 folder_path: Optional[Any] = None,
                 version: Optional[Any] = None):
        """
        The location of Oracle Cloud Storage dataset.
        :param str type: Type of dataset storage location.
               Expected value is 'OracleCloudStorageLocation'.
        :param Any bucket_name: Specify the bucketName of Oracle Cloud Storage. Type: string (or Expression with resultType string)
        :param Any file_name: Specify the file name of dataset. Type: string (or Expression with resultType string).
        :param Any folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string)
        :param Any version: Specify the version of Oracle Cloud Storage. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'OracleCloudStorageLocation')
        if bucket_name is not None:
            pulumi.set(__self__, "bucket_name", bucket_name)
        if file_name is not None:
            pulumi.set(__self__, "file_name", file_name)
        if folder_path is not None:
            pulumi.set(__self__, "folder_path", folder_path)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset storage location.
        Expected value is 'OracleCloudStorageLocation'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="bucketName")
    def bucket_name(self) -> Optional[Any]:
        """
        Specify the bucketName of Oracle Cloud Storage. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "bucket_name")

    @property
    @pulumi.getter(name="fileName")
    def file_name(self) -> Optional[Any]:
        """
        Specify the file name of dataset. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_name")

    @property
    @pulumi.getter(name="folderPath")
    def folder_path(self) -> Optional[Any]:
        """
        Specify the folder path of dataset. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "folder_path")

    @property
    @pulumi.getter
    def version(self) -> Optional[Any]:
        """
        Specify the version of Oracle Cloud Storage. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "version")


@pulumi.output_type
class OracleCloudStorageReadSettingsResponse(dict):
    """
    Oracle Cloud Storage read settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deleteFilesAfterCompletion":
            suggest = "delete_files_after_completion"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "enablePartitionDiscovery":
            suggest = "enable_partition_discovery"
        elif key == "fileListPath":
            suggest = "file_list_path"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "modifiedDatetimeEnd":
            suggest = "modified_datetime_end"
        elif key == "modifiedDatetimeStart":
            suggest = "modified_datetime_start"
        elif key == "partitionRootPath":
            suggest = "partition_root_path"
        elif key == "wildcardFileName":
            suggest = "wildcard_file_name"
        elif key == "wildcardFolderPath":
            suggest = "wildcard_folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OracleCloudStorageReadSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OracleCloudStorageReadSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OracleCloudStorageReadSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 delete_files_after_completion: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 enable_partition_discovery: Optional[bool] = None,
                 file_list_path: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 modified_datetime_end: Optional[Any] = None,
                 modified_datetime_start: Optional[Any] = None,
                 partition_root_path: Optional[Any] = None,
                 prefix: Optional[Any] = None,
                 recursive: Optional[Any] = None,
                 wildcard_file_name: Optional[Any] = None,
                 wildcard_folder_path: Optional[Any] = None):
        """
        Oracle Cloud Storage read settings.
        :param str type: The read setting type.
               Expected value is 'OracleCloudStorageReadSettings'.
        :param Any delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param bool enable_partition_discovery: Indicates whether to enable partition discovery.
        :param Any file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string).
        :param Any modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string).
        :param Any partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        :param Any prefix: The prefix filter for the Oracle Cloud Storage object name. Type: string (or Expression with resultType string).
        :param Any recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        :param Any wildcard_file_name: Oracle Cloud Storage wildcardFileName. Type: string (or Expression with resultType string).
        :param Any wildcard_folder_path: Oracle Cloud Storage wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'OracleCloudStorageReadSettings')
        if delete_files_after_completion is not None:
            pulumi.set(__self__, "delete_files_after_completion", delete_files_after_completion)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if enable_partition_discovery is not None:
            pulumi.set(__self__, "enable_partition_discovery", enable_partition_discovery)
        if file_list_path is not None:
            pulumi.set(__self__, "file_list_path", file_list_path)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if modified_datetime_end is not None:
            pulumi.set(__self__, "modified_datetime_end", modified_datetime_end)
        if modified_datetime_start is not None:
            pulumi.set(__self__, "modified_datetime_start", modified_datetime_start)
        if partition_root_path is not None:
            pulumi.set(__self__, "partition_root_path", partition_root_path)
        if prefix is not None:
            pulumi.set(__self__, "prefix", prefix)
        if recursive is not None:
            pulumi.set(__self__, "recursive", recursive)
        if wildcard_file_name is not None:
            pulumi.set(__self__, "wildcard_file_name", wildcard_file_name)
        if wildcard_folder_path is not None:
            pulumi.set(__self__, "wildcard_folder_path", wildcard_folder_path)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The read setting type.
        Expected value is 'OracleCloudStorageReadSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="deleteFilesAfterCompletion")
    def delete_files_after_completion(self) -> Optional[Any]:
        """
        Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "delete_files_after_completion")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="enablePartitionDiscovery")
    def enable_partition_discovery(self) -> Optional[bool]:
        """
        Indicates whether to enable partition discovery.
        """
        return pulumi.get(self, "enable_partition_discovery")

    @property
    @pulumi.getter(name="fileListPath")
    def file_list_path(self) -> Optional[Any]:
        """
        Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_list_path")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="modifiedDatetimeEnd")
    def modified_datetime_end(self) -> Optional[Any]:
        """
        The end of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_end")

    @property
    @pulumi.getter(name="modifiedDatetimeStart")
    def modified_datetime_start(self) -> Optional[Any]:
        """
        The start of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_start")

    @property
    @pulumi.getter(name="partitionRootPath")
    def partition_root_path(self) -> Optional[Any]:
        """
        Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_root_path")

    @property
    @pulumi.getter
    def prefix(self) -> Optional[Any]:
        """
        The prefix filter for the Oracle Cloud Storage object name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "prefix")

    @property
    @pulumi.getter
    def recursive(self) -> Optional[Any]:
        """
        If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "recursive")

    @property
    @pulumi.getter(name="wildcardFileName")
    def wildcard_file_name(self) -> Optional[Any]:
        """
        Oracle Cloud Storage wildcardFileName. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_file_name")

    @property
    @pulumi.getter(name="wildcardFolderPath")
    def wildcard_folder_path(self) -> Optional[Any]:
        """
        Oracle Cloud Storage wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_folder_path")


@pulumi.output_type
class OracleLinkedServiceResponse(dict):
    """
    Oracle database.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectionString":
            suggest = "connection_string"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OracleLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OracleLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OracleLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 connection_string: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None):
        """
        Oracle database.
        :param Any connection_string: The connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str type: Type of linked service.
               Expected value is 'Oracle'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param 'AzureKeyVaultSecretReferenceResponse' password: The Azure key vault secret reference of password in connection string.
        """
        pulumi.set(__self__, "connection_string", connection_string)
        pulumi.set(__self__, "type", 'Oracle')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Any:
        """
        The connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Oracle'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of password in connection string.
        """
        return pulumi.get(self, "password")


@pulumi.output_type
class OraclePartitionSettingsResponse(dict):
    """
    The settings that will be leveraged for Oracle source partitioning.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "partitionColumnName":
            suggest = "partition_column_name"
        elif key == "partitionLowerBound":
            suggest = "partition_lower_bound"
        elif key == "partitionNames":
            suggest = "partition_names"
        elif key == "partitionUpperBound":
            suggest = "partition_upper_bound"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OraclePartitionSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OraclePartitionSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OraclePartitionSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 partition_column_name: Optional[Any] = None,
                 partition_lower_bound: Optional[Any] = None,
                 partition_names: Optional[Sequence[Any]] = None,
                 partition_upper_bound: Optional[Any] = None):
        """
        The settings that will be leveraged for Oracle source partitioning.
        :param Any partition_column_name: The name of the column in integer type that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        :param Any partition_lower_bound: The minimum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        :param Sequence[Any] partition_names: Names of the physical partitions of Oracle table. 
        :param Any partition_upper_bound: The maximum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        """
        if partition_column_name is not None:
            pulumi.set(__self__, "partition_column_name", partition_column_name)
        if partition_lower_bound is not None:
            pulumi.set(__self__, "partition_lower_bound", partition_lower_bound)
        if partition_names is not None:
            pulumi.set(__self__, "partition_names", partition_names)
        if partition_upper_bound is not None:
            pulumi.set(__self__, "partition_upper_bound", partition_upper_bound)

    @property
    @pulumi.getter(name="partitionColumnName")
    def partition_column_name(self) -> Optional[Any]:
        """
        The name of the column in integer type that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_column_name")

    @property
    @pulumi.getter(name="partitionLowerBound")
    def partition_lower_bound(self) -> Optional[Any]:
        """
        The minimum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_lower_bound")

    @property
    @pulumi.getter(name="partitionNames")
    def partition_names(self) -> Optional[Sequence[Any]]:
        """
        Names of the physical partitions of Oracle table. 
        """
        return pulumi.get(self, "partition_names")

    @property
    @pulumi.getter(name="partitionUpperBound")
    def partition_upper_bound(self) -> Optional[Any]:
        """
        The maximum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_upper_bound")


@pulumi.output_type
class OracleServiceCloudLinkedServiceResponse(dict):
    """
    Oracle Service Cloud linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "useEncryptedEndpoints":
            suggest = "use_encrypted_endpoints"
        elif key == "useHostVerification":
            suggest = "use_host_verification"
        elif key == "usePeerVerification":
            suggest = "use_peer_verification"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OracleServiceCloudLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OracleServiceCloudLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OracleServiceCloudLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 host: Any,
                 password: Any,
                 type: str,
                 username: Any,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 use_encrypted_endpoints: Optional[Any] = None,
                 use_host_verification: Optional[Any] = None,
                 use_peer_verification: Optional[Any] = None):
        """
        Oracle Service Cloud linked service.
        :param Any host: The URL of the Oracle Service Cloud instance.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The password corresponding to the user name that you provided in the username key.
        :param str type: Type of linked service.
               Expected value is 'OracleServiceCloud'.
        :param Any username: The user name that you use to access Oracle Service Cloud server.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Any use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. Type: boolean (or Expression with resultType boolean).
        :param Any use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean).
        :param Any use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean).
        """
        pulumi.set(__self__, "host", host)
        pulumi.set(__self__, "password", password)
        pulumi.set(__self__, "type", 'OracleServiceCloud')
        pulumi.set(__self__, "username", username)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if use_encrypted_endpoints is not None:
            pulumi.set(__self__, "use_encrypted_endpoints", use_encrypted_endpoints)
        if use_host_verification is not None:
            pulumi.set(__self__, "use_host_verification", use_host_verification)
        if use_peer_verification is not None:
            pulumi.set(__self__, "use_peer_verification", use_peer_verification)

    @property
    @pulumi.getter
    def host(self) -> Any:
        """
        The URL of the Oracle Service Cloud instance.
        """
        return pulumi.get(self, "host")

    @property
    @pulumi.getter
    def password(self) -> Any:
        """
        The password corresponding to the user name that you provided in the username key.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'OracleServiceCloud'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def username(self) -> Any:
        """
        The user name that you use to access Oracle Service Cloud server.
        """
        return pulumi.get(self, "username")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="useEncryptedEndpoints")
    def use_encrypted_endpoints(self) -> Optional[Any]:
        """
        Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "use_encrypted_endpoints")

    @property
    @pulumi.getter(name="useHostVerification")
    def use_host_verification(self) -> Optional[Any]:
        """
        Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "use_host_verification")

    @property
    @pulumi.getter(name="usePeerVerification")
    def use_peer_verification(self) -> Optional[Any]:
        """
        Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "use_peer_verification")


@pulumi.output_type
class OracleServiceCloudObjectDatasetResponse(dict):
    """
    Oracle Service Cloud dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OracleServiceCloudObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OracleServiceCloudObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OracleServiceCloudObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Oracle Service Cloud dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'OracleServiceCloudObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'OracleServiceCloudObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'OracleServiceCloudObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class OracleServiceCloudSourceResponse(dict):
    """
    A copy activity Oracle Service Cloud source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OracleServiceCloudSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OracleServiceCloudSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OracleServiceCloudSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Oracle Service Cloud source.
        :param str type: Copy source type.
               Expected value is 'OracleServiceCloudSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'OracleServiceCloudSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'OracleServiceCloudSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class OracleSinkResponse(dict):
    """
    A copy activity Oracle sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "preCopyScript":
            suggest = "pre_copy_script"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OracleSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OracleSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OracleSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 pre_copy_script: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity Oracle sink.
        :param str type: Copy sink type.
               Expected value is 'OracleSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'OracleSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if pre_copy_script is not None:
            pulumi.set(__self__, "pre_copy_script", pre_copy_script)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'OracleSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="preCopyScript")
    def pre_copy_script(self) -> Optional[Any]:
        """
        SQL pre-copy script. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "pre_copy_script")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class OracleSourceResponse(dict):
    """
    A copy activity Oracle source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "oracleReaderQuery":
            suggest = "oracle_reader_query"
        elif key == "partitionOption":
            suggest = "partition_option"
        elif key == "partitionSettings":
            suggest = "partition_settings"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OracleSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OracleSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OracleSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 oracle_reader_query: Optional[Any] = None,
                 partition_option: Optional[Any] = None,
                 partition_settings: Optional['outputs.OraclePartitionSettingsResponse'] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Oracle source.
        :param str type: Copy source type.
               Expected value is 'OracleSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any oracle_reader_query: Oracle reader query. Type: string (or Expression with resultType string).
        :param Any partition_option: The partition mechanism that will be used for Oracle read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange".
        :param 'OraclePartitionSettingsResponse' partition_settings: The settings that will be leveraged for Oracle source partitioning.
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'OracleSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if oracle_reader_query is not None:
            pulumi.set(__self__, "oracle_reader_query", oracle_reader_query)
        if partition_option is not None:
            pulumi.set(__self__, "partition_option", partition_option)
        if partition_settings is not None:
            pulumi.set(__self__, "partition_settings", partition_settings)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'OracleSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="oracleReaderQuery")
    def oracle_reader_query(self) -> Optional[Any]:
        """
        Oracle reader query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "oracle_reader_query")

    @property
    @pulumi.getter(name="partitionOption")
    def partition_option(self) -> Optional[Any]:
        """
        The partition mechanism that will be used for Oracle read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange".
        """
        return pulumi.get(self, "partition_option")

    @property
    @pulumi.getter(name="partitionSettings")
    def partition_settings(self) -> Optional['outputs.OraclePartitionSettingsResponse']:
        """
        The settings that will be leveraged for Oracle source partitioning.
        """
        return pulumi.get(self, "partition_settings")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class OracleTableDatasetResponse(dict):
    """
    The on-premises Oracle database dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OracleTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OracleTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OracleTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        The on-premises Oracle database dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'OracleTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The table name of the on-premises Oracle database. Type: string (or Expression with resultType string).
        :param Any table_name: This property will be retired. Please consider using schema + table properties instead.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'OracleTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'OracleTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The table name of the on-premises Oracle database. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        This property will be retired. Please consider using schema + table properties instead.
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class OrcDatasetResponse(dict):
    """
    ORC dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "orcCompressionCodec":
            suggest = "orc_compression_codec"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OrcDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OrcDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OrcDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 location: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 orc_compression_codec: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        ORC dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param Union['AmazonS3CompatibleLocationResponse', 'AmazonS3LocationResponse', 'AzureBlobFSLocationResponse', 'AzureBlobStorageLocationResponse', 'AzureDataLakeStoreLocationResponse', 'AzureFileStorageLocationResponse', 'FileServerLocationResponse', 'FtpServerLocationResponse', 'GoogleCloudStorageLocationResponse', 'HdfsLocationResponse', 'HttpServerLocationResponse', 'OracleCloudStorageLocationResponse', 'SftpLocationResponse'] location: The location of the ORC data storage.
        :param str type: Type of dataset.
               Expected value is 'Orc'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Any orc_compression_codec: The data orcCompressionCodec. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "location", location)
        pulumi.set(__self__, "type", 'Orc')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if orc_compression_codec is not None:
            pulumi.set(__self__, "orc_compression_codec", orc_compression_codec)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def location(self) -> Any:
        """
        The location of the ORC data storage.
        """
        return pulumi.get(self, "location")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'Orc'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter(name="orcCompressionCodec")
    def orc_compression_codec(self) -> Optional[Any]:
        """
        The data orcCompressionCodec. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "orc_compression_codec")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class OrcFormatResponse(dict):
    """
    The data stored in Optimized Row Columnar (ORC) format.
    """
    def __init__(__self__, *,
                 type: str,
                 deserializer: Optional[Any] = None,
                 serializer: Optional[Any] = None):
        """
        The data stored in Optimized Row Columnar (ORC) format.
        :param str type: Type of dataset storage format.
               Expected value is 'OrcFormat'.
        :param Any deserializer: Deserializer. Type: string (or Expression with resultType string).
        :param Any serializer: Serializer. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'OrcFormat')
        if deserializer is not None:
            pulumi.set(__self__, "deserializer", deserializer)
        if serializer is not None:
            pulumi.set(__self__, "serializer", serializer)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset storage format.
        Expected value is 'OrcFormat'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def deserializer(self) -> Optional[Any]:
        """
        Deserializer. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "deserializer")

    @property
    @pulumi.getter
    def serializer(self) -> Optional[Any]:
        """
        Serializer. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "serializer")


@pulumi.output_type
class OrcSinkResponse(dict):
    """
    A copy activity ORC sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "formatSettings":
            suggest = "format_settings"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "storeSettings":
            suggest = "store_settings"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OrcSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OrcSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OrcSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 format_settings: Optional['outputs.OrcWriteSettingsResponse'] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 store_settings: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity ORC sink.
        :param str type: Copy sink type.
               Expected value is 'OrcSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param 'OrcWriteSettingsResponse' format_settings: ORC format settings.
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Union['AzureBlobFSWriteSettingsResponse', 'AzureBlobStorageWriteSettingsResponse', 'AzureDataLakeStoreWriteSettingsResponse', 'AzureFileStorageWriteSettingsResponse', 'FileServerWriteSettingsResponse', 'SftpWriteSettingsResponse'] store_settings: ORC store settings.
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'OrcSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if format_settings is not None:
            pulumi.set(__self__, "format_settings", format_settings)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if store_settings is not None:
            pulumi.set(__self__, "store_settings", store_settings)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'OrcSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="formatSettings")
    def format_settings(self) -> Optional['outputs.OrcWriteSettingsResponse']:
        """
        ORC format settings.
        """
        return pulumi.get(self, "format_settings")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="storeSettings")
    def store_settings(self) -> Optional[Any]:
        """
        ORC store settings.
        """
        return pulumi.get(self, "store_settings")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class OrcSourceResponse(dict):
    """
    A copy activity ORC source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"
        elif key == "storeSettings":
            suggest = "store_settings"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OrcSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OrcSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OrcSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None,
                 store_settings: Optional[Any] = None):
        """
        A copy activity ORC source.
        :param str type: Copy source type.
               Expected value is 'OrcSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Union['AmazonS3CompatibleReadSettingsResponse', 'AmazonS3ReadSettingsResponse', 'AzureBlobFSReadSettingsResponse', 'AzureBlobStorageReadSettingsResponse', 'AzureDataLakeStoreReadSettingsResponse', 'AzureFileStorageReadSettingsResponse', 'FileServerReadSettingsResponse', 'FtpReadSettingsResponse', 'GoogleCloudStorageReadSettingsResponse', 'HdfsReadSettingsResponse', 'HttpReadSettingsResponse', 'OracleCloudStorageReadSettingsResponse', 'SftpReadSettingsResponse'] store_settings: ORC store settings.
        """
        pulumi.set(__self__, "type", 'OrcSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)
        if store_settings is not None:
            pulumi.set(__self__, "store_settings", store_settings)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'OrcSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")

    @property
    @pulumi.getter(name="storeSettings")
    def store_settings(self) -> Optional[Any]:
        """
        ORC store settings.
        """
        return pulumi.get(self, "store_settings")


@pulumi.output_type
class OrcWriteSettingsResponse(dict):
    """
    Orc write settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "fileNamePrefix":
            suggest = "file_name_prefix"
        elif key == "maxRowsPerFile":
            suggest = "max_rows_per_file"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OrcWriteSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OrcWriteSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OrcWriteSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 file_name_prefix: Optional[Any] = None,
                 max_rows_per_file: Optional[Any] = None):
        """
        Orc write settings.
        :param str type: The write setting type.
               Expected value is 'OrcWriteSettings'.
        :param Any file_name_prefix: Specifies the file name pattern <fileNamePrefix>_<fileIndex>.<fileExtension> when copy from non-file based store without partitionOptions. Type: string (or Expression with resultType string).
        :param Any max_rows_per_file: Limit the written file's row count to be smaller than or equal to the specified count. Type: integer (or Expression with resultType integer).
        """
        pulumi.set(__self__, "type", 'OrcWriteSettings')
        if file_name_prefix is not None:
            pulumi.set(__self__, "file_name_prefix", file_name_prefix)
        if max_rows_per_file is not None:
            pulumi.set(__self__, "max_rows_per_file", max_rows_per_file)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The write setting type.
        Expected value is 'OrcWriteSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="fileNamePrefix")
    def file_name_prefix(self) -> Optional[Any]:
        """
        Specifies the file name pattern <fileNamePrefix>_<fileIndex>.<fileExtension> when copy from non-file based store without partitionOptions. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_name_prefix")

    @property
    @pulumi.getter(name="maxRowsPerFile")
    def max_rows_per_file(self) -> Optional[Any]:
        """
        Limit the written file's row count to be smaller than or equal to the specified count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_rows_per_file")


@pulumi.output_type
class PackageStoreResponse(dict):
    """
    Package store for the SSIS integration runtime.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "packageStoreLinkedService":
            suggest = "package_store_linked_service"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in PackageStoreResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        PackageStoreResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        PackageStoreResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 package_store_linked_service: 'outputs.EntityReferenceResponse'):
        """
        Package store for the SSIS integration runtime.
        :param str name: The name of the package store
        :param 'EntityReferenceResponse' package_store_linked_service: The package store linked service reference.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "package_store_linked_service", package_store_linked_service)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        The name of the package store
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="packageStoreLinkedService")
    def package_store_linked_service(self) -> 'outputs.EntityReferenceResponse':
        """
        The package store linked service reference.
        """
        return pulumi.get(self, "package_store_linked_service")


@pulumi.output_type
class ParameterSpecificationResponse(dict):
    """
    Definition of a single parameter for an entity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "defaultValue":
            suggest = "default_value"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ParameterSpecificationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ParameterSpecificationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ParameterSpecificationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 default_value: Optional[Any] = None):
        """
        Definition of a single parameter for an entity.
        :param str type: Parameter type.
        :param Any default_value: Default value of parameter.
        """
        pulumi.set(__self__, "type", type)
        if default_value is not None:
            pulumi.set(__self__, "default_value", default_value)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Parameter type.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="defaultValue")
    def default_value(self) -> Optional[Any]:
        """
        Default value of parameter.
        """
        return pulumi.get(self, "default_value")


@pulumi.output_type
class ParquetDatasetResponse(dict):
    """
    Parquet dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "compressionCodec":
            suggest = "compression_codec"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ParquetDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ParquetDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ParquetDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 location: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 compression_codec: Optional[Any] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        Parquet dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param Union['AmazonS3CompatibleLocationResponse', 'AmazonS3LocationResponse', 'AzureBlobFSLocationResponse', 'AzureBlobStorageLocationResponse', 'AzureDataLakeStoreLocationResponse', 'AzureFileStorageLocationResponse', 'FileServerLocationResponse', 'FtpServerLocationResponse', 'GoogleCloudStorageLocationResponse', 'HdfsLocationResponse', 'HttpServerLocationResponse', 'OracleCloudStorageLocationResponse', 'SftpLocationResponse'] location: The location of the parquet storage.
        :param str type: Type of dataset.
               Expected value is 'Parquet'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param Any compression_codec: The data compressionCodec. Type: string (or Expression with resultType string).
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "location", location)
        pulumi.set(__self__, "type", 'Parquet')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if compression_codec is not None:
            pulumi.set(__self__, "compression_codec", compression_codec)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def location(self) -> Any:
        """
        The location of the parquet storage.
        """
        return pulumi.get(self, "location")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'Parquet'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="compressionCodec")
    def compression_codec(self) -> Optional[Any]:
        """
        The data compressionCodec. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "compression_codec")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class ParquetFormatResponse(dict):
    """
    The data stored in Parquet format.
    """
    def __init__(__self__, *,
                 type: str,
                 deserializer: Optional[Any] = None,
                 serializer: Optional[Any] = None):
        """
        The data stored in Parquet format.
        :param str type: Type of dataset storage format.
               Expected value is 'ParquetFormat'.
        :param Any deserializer: Deserializer. Type: string (or Expression with resultType string).
        :param Any serializer: Serializer. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'ParquetFormat')
        if deserializer is not None:
            pulumi.set(__self__, "deserializer", deserializer)
        if serializer is not None:
            pulumi.set(__self__, "serializer", serializer)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset storage format.
        Expected value is 'ParquetFormat'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def deserializer(self) -> Optional[Any]:
        """
        Deserializer. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "deserializer")

    @property
    @pulumi.getter
    def serializer(self) -> Optional[Any]:
        """
        Serializer. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "serializer")


@pulumi.output_type
class ParquetSinkResponse(dict):
    """
    A copy activity Parquet sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "formatSettings":
            suggest = "format_settings"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "storeSettings":
            suggest = "store_settings"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ParquetSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ParquetSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ParquetSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 format_settings: Optional['outputs.ParquetWriteSettingsResponse'] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 store_settings: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity Parquet sink.
        :param str type: Copy sink type.
               Expected value is 'ParquetSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param 'ParquetWriteSettingsResponse' format_settings: Parquet format settings.
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Union['AzureBlobFSWriteSettingsResponse', 'AzureBlobStorageWriteSettingsResponse', 'AzureDataLakeStoreWriteSettingsResponse', 'AzureFileStorageWriteSettingsResponse', 'FileServerWriteSettingsResponse', 'SftpWriteSettingsResponse'] store_settings: Parquet store settings.
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'ParquetSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if format_settings is not None:
            pulumi.set(__self__, "format_settings", format_settings)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if store_settings is not None:
            pulumi.set(__self__, "store_settings", store_settings)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'ParquetSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="formatSettings")
    def format_settings(self) -> Optional['outputs.ParquetWriteSettingsResponse']:
        """
        Parquet format settings.
        """
        return pulumi.get(self, "format_settings")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="storeSettings")
    def store_settings(self) -> Optional[Any]:
        """
        Parquet store settings.
        """
        return pulumi.get(self, "store_settings")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class ParquetSourceResponse(dict):
    """
    A copy activity Parquet source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"
        elif key == "storeSettings":
            suggest = "store_settings"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ParquetSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ParquetSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ParquetSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None,
                 store_settings: Optional[Any] = None):
        """
        A copy activity Parquet source.
        :param str type: Copy source type.
               Expected value is 'ParquetSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Union['AmazonS3CompatibleReadSettingsResponse', 'AmazonS3ReadSettingsResponse', 'AzureBlobFSReadSettingsResponse', 'AzureBlobStorageReadSettingsResponse', 'AzureDataLakeStoreReadSettingsResponse', 'AzureFileStorageReadSettingsResponse', 'FileServerReadSettingsResponse', 'FtpReadSettingsResponse', 'GoogleCloudStorageReadSettingsResponse', 'HdfsReadSettingsResponse', 'HttpReadSettingsResponse', 'OracleCloudStorageReadSettingsResponse', 'SftpReadSettingsResponse'] store_settings: Parquet store settings.
        """
        pulumi.set(__self__, "type", 'ParquetSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)
        if store_settings is not None:
            pulumi.set(__self__, "store_settings", store_settings)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'ParquetSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")

    @property
    @pulumi.getter(name="storeSettings")
    def store_settings(self) -> Optional[Any]:
        """
        Parquet store settings.
        """
        return pulumi.get(self, "store_settings")


@pulumi.output_type
class ParquetWriteSettingsResponse(dict):
    """
    Parquet write settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "fileNamePrefix":
            suggest = "file_name_prefix"
        elif key == "maxRowsPerFile":
            suggest = "max_rows_per_file"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ParquetWriteSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ParquetWriteSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ParquetWriteSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 file_name_prefix: Optional[Any] = None,
                 max_rows_per_file: Optional[Any] = None):
        """
        Parquet write settings.
        :param str type: The write setting type.
               Expected value is 'ParquetWriteSettings'.
        :param Any file_name_prefix: Specifies the file name pattern <fileNamePrefix>_<fileIndex>.<fileExtension> when copy from non-file based store without partitionOptions. Type: string (or Expression with resultType string).
        :param Any max_rows_per_file: Limit the written file's row count to be smaller than or equal to the specified count. Type: integer (or Expression with resultType integer).
        """
        pulumi.set(__self__, "type", 'ParquetWriteSettings')
        if file_name_prefix is not None:
            pulumi.set(__self__, "file_name_prefix", file_name_prefix)
        if max_rows_per_file is not None:
            pulumi.set(__self__, "max_rows_per_file", max_rows_per_file)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The write setting type.
        Expected value is 'ParquetWriteSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="fileNamePrefix")
    def file_name_prefix(self) -> Optional[Any]:
        """
        Specifies the file name pattern <fileNamePrefix>_<fileIndex>.<fileExtension> when copy from non-file based store without partitionOptions. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_name_prefix")

    @property
    @pulumi.getter(name="maxRowsPerFile")
    def max_rows_per_file(self) -> Optional[Any]:
        """
        Limit the written file's row count to be smaller than or equal to the specified count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_rows_per_file")


@pulumi.output_type
class PaypalLinkedServiceResponse(dict):
    """
    Paypal Service linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "clientId":
            suggest = "client_id"
        elif key == "clientSecret":
            suggest = "client_secret"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "useEncryptedEndpoints":
            suggest = "use_encrypted_endpoints"
        elif key == "useHostVerification":
            suggest = "use_host_verification"
        elif key == "usePeerVerification":
            suggest = "use_peer_verification"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in PaypalLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        PaypalLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        PaypalLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 client_id: Any,
                 host: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 client_secret: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 use_encrypted_endpoints: Optional[Any] = None,
                 use_host_verification: Optional[Any] = None,
                 use_peer_verification: Optional[Any] = None):
        """
        Paypal Service linked service.
        :param Any client_id: The client ID associated with your PayPal application.
        :param Any host: The URL of the PayPal instance. (i.e. api.sandbox.paypal.com)
        :param str type: Type of linked service.
               Expected value is 'Paypal'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] client_secret: The client secret associated with your PayPal application.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Any use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        :param Any use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        :param Any use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        pulumi.set(__self__, "client_id", client_id)
        pulumi.set(__self__, "host", host)
        pulumi.set(__self__, "type", 'Paypal')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if client_secret is not None:
            pulumi.set(__self__, "client_secret", client_secret)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if use_encrypted_endpoints is not None:
            pulumi.set(__self__, "use_encrypted_endpoints", use_encrypted_endpoints)
        if use_host_verification is not None:
            pulumi.set(__self__, "use_host_verification", use_host_verification)
        if use_peer_verification is not None:
            pulumi.set(__self__, "use_peer_verification", use_peer_verification)

    @property
    @pulumi.getter(name="clientId")
    def client_id(self) -> Any:
        """
        The client ID associated with your PayPal application.
        """
        return pulumi.get(self, "client_id")

    @property
    @pulumi.getter
    def host(self) -> Any:
        """
        The URL of the PayPal instance. (i.e. api.sandbox.paypal.com)
        """
        return pulumi.get(self, "host")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Paypal'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="clientSecret")
    def client_secret(self) -> Optional[Any]:
        """
        The client secret associated with your PayPal application.
        """
        return pulumi.get(self, "client_secret")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="useEncryptedEndpoints")
    def use_encrypted_endpoints(self) -> Optional[Any]:
        """
        Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        """
        return pulumi.get(self, "use_encrypted_endpoints")

    @property
    @pulumi.getter(name="useHostVerification")
    def use_host_verification(self) -> Optional[Any]:
        """
        Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_host_verification")

    @property
    @pulumi.getter(name="usePeerVerification")
    def use_peer_verification(self) -> Optional[Any]:
        """
        Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_peer_verification")


@pulumi.output_type
class PaypalObjectDatasetResponse(dict):
    """
    Paypal Service dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in PaypalObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        PaypalObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        PaypalObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Paypal Service dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'PaypalObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'PaypalObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'PaypalObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class PaypalSourceResponse(dict):
    """
    A copy activity Paypal Service source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in PaypalSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        PaypalSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        PaypalSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Paypal Service source.
        :param str type: Copy source type.
               Expected value is 'PaypalSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'PaypalSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'PaypalSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class PhoenixLinkedServiceResponse(dict):
    """
    Phoenix server linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"
        elif key == "allowHostNameCNMismatch":
            suggest = "allow_host_name_cn_mismatch"
        elif key == "allowSelfSignedServerCert":
            suggest = "allow_self_signed_server_cert"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "enableSsl":
            suggest = "enable_ssl"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "httpPath":
            suggest = "http_path"
        elif key == "trustedCertPath":
            suggest = "trusted_cert_path"
        elif key == "useSystemTrustStore":
            suggest = "use_system_trust_store"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in PhoenixLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        PhoenixLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        PhoenixLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 authentication_type: str,
                 host: Any,
                 type: str,
                 allow_host_name_cn_mismatch: Optional[Any] = None,
                 allow_self_signed_server_cert: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 enable_ssl: Optional[Any] = None,
                 encrypted_credential: Optional[Any] = None,
                 http_path: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 port: Optional[Any] = None,
                 trusted_cert_path: Optional[Any] = None,
                 use_system_trust_store: Optional[Any] = None,
                 username: Optional[Any] = None):
        """
        Phoenix server linked service.
        :param str authentication_type: The authentication mechanism used to connect to the Phoenix server.
        :param Any host: The IP address or host name of the Phoenix server. (i.e. 192.168.222.160)
        :param str type: Type of linked service.
               Expected value is 'Phoenix'.
        :param Any allow_host_name_cn_mismatch: Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false.
        :param Any allow_self_signed_server_cert: Specifies whether to allow self-signed certificates from the server. The default value is false.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any enable_ssl: Specifies whether the connections to the server are encrypted using SSL. The default value is false.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Any http_path: The partial URL corresponding to the Phoenix server. (i.e. /gateway/sandbox/phoenix/version). The default value is hbasephoenix if using WindowsAzureHDInsightService.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The password corresponding to the user name.
        :param Any port: The TCP port that the Phoenix server uses to listen for client connections. The default value is 8765.
        :param Any trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR.
        :param Any use_system_trust_store: Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false.
        :param Any username: The user name used to connect to the Phoenix server.
        """
        pulumi.set(__self__, "authentication_type", authentication_type)
        pulumi.set(__self__, "host", host)
        pulumi.set(__self__, "type", 'Phoenix')
        if allow_host_name_cn_mismatch is not None:
            pulumi.set(__self__, "allow_host_name_cn_mismatch", allow_host_name_cn_mismatch)
        if allow_self_signed_server_cert is not None:
            pulumi.set(__self__, "allow_self_signed_server_cert", allow_self_signed_server_cert)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if enable_ssl is not None:
            pulumi.set(__self__, "enable_ssl", enable_ssl)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if http_path is not None:
            pulumi.set(__self__, "http_path", http_path)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if trusted_cert_path is not None:
            pulumi.set(__self__, "trusted_cert_path", trusted_cert_path)
        if use_system_trust_store is not None:
            pulumi.set(__self__, "use_system_trust_store", use_system_trust_store)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> str:
        """
        The authentication mechanism used to connect to the Phoenix server.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter
    def host(self) -> Any:
        """
        The IP address or host name of the Phoenix server. (i.e. 192.168.222.160)
        """
        return pulumi.get(self, "host")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Phoenix'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="allowHostNameCNMismatch")
    def allow_host_name_cn_mismatch(self) -> Optional[Any]:
        """
        Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false.
        """
        return pulumi.get(self, "allow_host_name_cn_mismatch")

    @property
    @pulumi.getter(name="allowSelfSignedServerCert")
    def allow_self_signed_server_cert(self) -> Optional[Any]:
        """
        Specifies whether to allow self-signed certificates from the server. The default value is false.
        """
        return pulumi.get(self, "allow_self_signed_server_cert")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="enableSsl")
    def enable_ssl(self) -> Optional[Any]:
        """
        Specifies whether the connections to the server are encrypted using SSL. The default value is false.
        """
        return pulumi.get(self, "enable_ssl")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter(name="httpPath")
    def http_path(self) -> Optional[Any]:
        """
        The partial URL corresponding to the Phoenix server. (i.e. /gateway/sandbox/phoenix/version). The default value is hbasephoenix if using WindowsAzureHDInsightService.
        """
        return pulumi.get(self, "http_path")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        The password corresponding to the user name.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def port(self) -> Optional[Any]:
        """
        The TCP port that the Phoenix server uses to listen for client connections. The default value is 8765.
        """
        return pulumi.get(self, "port")

    @property
    @pulumi.getter(name="trustedCertPath")
    def trusted_cert_path(self) -> Optional[Any]:
        """
        The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR.
        """
        return pulumi.get(self, "trusted_cert_path")

    @property
    @pulumi.getter(name="useSystemTrustStore")
    def use_system_trust_store(self) -> Optional[Any]:
        """
        Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false.
        """
        return pulumi.get(self, "use_system_trust_store")

    @property
    @pulumi.getter
    def username(self) -> Optional[Any]:
        """
        The user name used to connect to the Phoenix server.
        """
        return pulumi.get(self, "username")


@pulumi.output_type
class PhoenixObjectDatasetResponse(dict):
    """
    Phoenix server dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in PhoenixObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        PhoenixObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        PhoenixObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Phoenix server dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'PhoenixObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The table name of the Phoenix. Type: string (or Expression with resultType string).
        :param Any table_name: This property will be retired. Please consider using schema + table properties instead.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'PhoenixObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'PhoenixObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The table name of the Phoenix. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        This property will be retired. Please consider using schema + table properties instead.
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class PhoenixSourceResponse(dict):
    """
    A copy activity Phoenix server source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in PhoenixSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        PhoenixSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        PhoenixSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Phoenix server source.
        :param str type: Copy source type.
               Expected value is 'PhoenixSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'PhoenixSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'PhoenixSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class PipelineElapsedTimeMetricPolicyResponse(dict):
    """
    Pipeline ElapsedTime Metric Policy.
    """
    def __init__(__self__, *,
                 duration: Optional[Any] = None):
        """
        Pipeline ElapsedTime Metric Policy.
        :param Any duration: TimeSpan value, after which an Azure Monitoring Metric is fired.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)

    @property
    @pulumi.getter
    def duration(self) -> Optional[Any]:
        """
        TimeSpan value, after which an Azure Monitoring Metric is fired.
        """
        return pulumi.get(self, "duration")


@pulumi.output_type
class PipelinePolicyResponse(dict):
    """
    Pipeline Policy.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "elapsedTimeMetric":
            suggest = "elapsed_time_metric"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in PipelinePolicyResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        PipelinePolicyResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        PipelinePolicyResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 elapsed_time_metric: Optional['outputs.PipelineElapsedTimeMetricPolicyResponse'] = None):
        """
        Pipeline Policy.
        :param 'PipelineElapsedTimeMetricPolicyResponse' elapsed_time_metric: Pipeline ElapsedTime Metric Policy.
        """
        if elapsed_time_metric is not None:
            pulumi.set(__self__, "elapsed_time_metric", elapsed_time_metric)

    @property
    @pulumi.getter(name="elapsedTimeMetric")
    def elapsed_time_metric(self) -> Optional['outputs.PipelineElapsedTimeMetricPolicyResponse']:
        """
        Pipeline ElapsedTime Metric Policy.
        """
        return pulumi.get(self, "elapsed_time_metric")


@pulumi.output_type
class PipelineReferenceResponse(dict):
    """
    Pipeline reference type.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "referenceName":
            suggest = "reference_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in PipelineReferenceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        PipelineReferenceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        PipelineReferenceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 reference_name: str,
                 type: str,
                 name: Optional[str] = None):
        """
        Pipeline reference type.
        :param str reference_name: Reference pipeline name.
        :param str type: Pipeline reference type.
        :param str name: Reference name.
        """
        pulumi.set(__self__, "reference_name", reference_name)
        pulumi.set(__self__, "type", type)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter(name="referenceName")
    def reference_name(self) -> str:
        """
        Reference pipeline name.
        """
        return pulumi.get(self, "reference_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Pipeline reference type.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def name(self) -> Optional[str]:
        """
        Reference name.
        """
        return pulumi.get(self, "name")


@pulumi.output_type
class PipelineResponseFolder(dict):
    """
    The folder that this Pipeline is in. If not specified, Pipeline will appear at the root level.
    """
    def __init__(__self__, *,
                 name: Optional[str] = None):
        """
        The folder that this Pipeline is in. If not specified, Pipeline will appear at the root level.
        :param str name: The name of the folder that this Pipeline is in.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter
    def name(self) -> Optional[str]:
        """
        The name of the folder that this Pipeline is in.
        """
        return pulumi.get(self, "name")


@pulumi.output_type
class PolybaseSettingsResponse(dict):
    """
    PolyBase settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "rejectSampleValue":
            suggest = "reject_sample_value"
        elif key == "rejectType":
            suggest = "reject_type"
        elif key == "rejectValue":
            suggest = "reject_value"
        elif key == "useTypeDefault":
            suggest = "use_type_default"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in PolybaseSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        PolybaseSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        PolybaseSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 reject_sample_value: Optional[Any] = None,
                 reject_type: Optional[str] = None,
                 reject_value: Optional[Any] = None,
                 use_type_default: Optional[Any] = None):
        """
        PolyBase settings.
        :param Any reject_sample_value: Determines the number of rows to attempt to retrieve before the PolyBase recalculates the percentage of rejected rows. Type: integer (or Expression with resultType integer), minimum: 0.
        :param str reject_type: Reject type.
        :param Any reject_value: Specifies the value or the percentage of rows that can be rejected before the query fails. Type: number (or Expression with resultType number), minimum: 0.
        :param Any use_type_default: Specifies how to handle missing values in delimited text files when PolyBase retrieves data from the text file. Type: boolean (or Expression with resultType boolean).
        """
        if reject_sample_value is not None:
            pulumi.set(__self__, "reject_sample_value", reject_sample_value)
        if reject_type is not None:
            pulumi.set(__self__, "reject_type", reject_type)
        if reject_value is not None:
            pulumi.set(__self__, "reject_value", reject_value)
        if use_type_default is not None:
            pulumi.set(__self__, "use_type_default", use_type_default)

    @property
    @pulumi.getter(name="rejectSampleValue")
    def reject_sample_value(self) -> Optional[Any]:
        """
        Determines the number of rows to attempt to retrieve before the PolyBase recalculates the percentage of rejected rows. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "reject_sample_value")

    @property
    @pulumi.getter(name="rejectType")
    def reject_type(self) -> Optional[str]:
        """
        Reject type.
        """
        return pulumi.get(self, "reject_type")

    @property
    @pulumi.getter(name="rejectValue")
    def reject_value(self) -> Optional[Any]:
        """
        Specifies the value or the percentage of rows that can be rejected before the query fails. Type: number (or Expression with resultType number), minimum: 0.
        """
        return pulumi.get(self, "reject_value")

    @property
    @pulumi.getter(name="useTypeDefault")
    def use_type_default(self) -> Optional[Any]:
        """
        Specifies how to handle missing values in delimited text files when PolyBase retrieves data from the text file. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "use_type_default")


@pulumi.output_type
class PostgreSqlLinkedServiceResponse(dict):
    """
    Linked service for PostgreSQL data source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectionString":
            suggest = "connection_string"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in PostgreSqlLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        PostgreSqlLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        PostgreSqlLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 connection_string: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None):
        """
        Linked service for PostgreSQL data source.
        :param Any connection_string: The connection string.
        :param str type: Type of linked service.
               Expected value is 'PostgreSql'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param 'AzureKeyVaultSecretReferenceResponse' password: The Azure key vault secret reference of password in connection string.
        """
        pulumi.set(__self__, "connection_string", connection_string)
        pulumi.set(__self__, "type", 'PostgreSql')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Any:
        """
        The connection string.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'PostgreSql'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of password in connection string.
        """
        return pulumi.get(self, "password")


@pulumi.output_type
class PostgreSqlSourceResponse(dict):
    """
    A copy activity source for PostgreSQL databases.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in PostgreSqlSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        PostgreSqlSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        PostgreSqlSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for PostgreSQL databases.
        :param str type: Copy source type.
               Expected value is 'PostgreSqlSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: Database query. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'PostgreSqlSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'PostgreSqlSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        Database query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class PostgreSqlTableDatasetResponse(dict):
    """
    The PostgreSQL table dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in PostgreSqlTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        PostgreSqlTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        PostgreSqlTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        The PostgreSQL table dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'PostgreSqlTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The PostgreSQL table name. Type: string (or Expression with resultType string).
        :param Any table_name: This property will be retired. Please consider using schema + table properties instead.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'PostgreSqlTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'PostgreSqlTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The PostgreSQL table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        This property will be retired. Please consider using schema + table properties instead.
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class PowerQuerySinkMappingResponse(dict):
    """
    Map Power Query mashup query to sink dataset(s).
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dataflowSinks":
            suggest = "dataflow_sinks"
        elif key == "queryName":
            suggest = "query_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in PowerQuerySinkMappingResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        PowerQuerySinkMappingResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        PowerQuerySinkMappingResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 dataflow_sinks: Optional[Sequence['outputs.PowerQuerySinkResponse']] = None,
                 query_name: Optional[str] = None):
        """
        Map Power Query mashup query to sink dataset(s).
        :param Sequence['PowerQuerySinkResponse'] dataflow_sinks: List of sinks mapped to Power Query mashup query.
        :param str query_name: Name of the query in Power Query mashup document.
        """
        if dataflow_sinks is not None:
            pulumi.set(__self__, "dataflow_sinks", dataflow_sinks)
        if query_name is not None:
            pulumi.set(__self__, "query_name", query_name)

    @property
    @pulumi.getter(name="dataflowSinks")
    def dataflow_sinks(self) -> Optional[Sequence['outputs.PowerQuerySinkResponse']]:
        """
        List of sinks mapped to Power Query mashup query.
        """
        return pulumi.get(self, "dataflow_sinks")

    @property
    @pulumi.getter(name="queryName")
    def query_name(self) -> Optional[str]:
        """
        Name of the query in Power Query mashup document.
        """
        return pulumi.get(self, "query_name")


@pulumi.output_type
class PowerQuerySinkResponse(dict):
    """
    Power query sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedService":
            suggest = "linked_service"
        elif key == "schemaLinkedService":
            suggest = "schema_linked_service"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in PowerQuerySinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        PowerQuerySinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        PowerQuerySinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 dataset: Optional['outputs.DatasetReferenceResponse'] = None,
                 description: Optional[str] = None,
                 flowlet: Optional['outputs.DataFlowReferenceResponse'] = None,
                 linked_service: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 schema_linked_service: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 script: Optional[str] = None):
        """
        Power query sink.
        :param str name: Transformation name.
        :param 'DatasetReferenceResponse' dataset: Dataset reference.
        :param str description: Transformation description.
        :param 'DataFlowReferenceResponse' flowlet: Flowlet Reference
        :param 'LinkedServiceReferenceResponse' linked_service: Linked service reference.
        :param 'LinkedServiceReferenceResponse' schema_linked_service: Schema linked service reference.
        :param str script: sink script.
        """
        pulumi.set(__self__, "name", name)
        if dataset is not None:
            pulumi.set(__self__, "dataset", dataset)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if flowlet is not None:
            pulumi.set(__self__, "flowlet", flowlet)
        if linked_service is not None:
            pulumi.set(__self__, "linked_service", linked_service)
        if schema_linked_service is not None:
            pulumi.set(__self__, "schema_linked_service", schema_linked_service)
        if script is not None:
            pulumi.set(__self__, "script", script)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Transformation name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def dataset(self) -> Optional['outputs.DatasetReferenceResponse']:
        """
        Dataset reference.
        """
        return pulumi.get(self, "dataset")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Transformation description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def flowlet(self) -> Optional['outputs.DataFlowReferenceResponse']:
        """
        Flowlet Reference
        """
        return pulumi.get(self, "flowlet")

    @property
    @pulumi.getter(name="linkedService")
    def linked_service(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service")

    @property
    @pulumi.getter(name="schemaLinkedService")
    def schema_linked_service(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Schema linked service reference.
        """
        return pulumi.get(self, "schema_linked_service")

    @property
    @pulumi.getter
    def script(self) -> Optional[str]:
        """
        sink script.
        """
        return pulumi.get(self, "script")


@pulumi.output_type
class PowerQuerySourceResponse(dict):
    """
    Power query source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedService":
            suggest = "linked_service"
        elif key == "schemaLinkedService":
            suggest = "schema_linked_service"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in PowerQuerySourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        PowerQuerySourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        PowerQuerySourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 dataset: Optional['outputs.DatasetReferenceResponse'] = None,
                 description: Optional[str] = None,
                 flowlet: Optional['outputs.DataFlowReferenceResponse'] = None,
                 linked_service: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 schema_linked_service: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 script: Optional[str] = None):
        """
        Power query source.
        :param str name: Transformation name.
        :param 'DatasetReferenceResponse' dataset: Dataset reference.
        :param str description: Transformation description.
        :param 'DataFlowReferenceResponse' flowlet: Flowlet Reference
        :param 'LinkedServiceReferenceResponse' linked_service: Linked service reference.
        :param 'LinkedServiceReferenceResponse' schema_linked_service: Schema linked service reference.
        :param str script: source script.
        """
        pulumi.set(__self__, "name", name)
        if dataset is not None:
            pulumi.set(__self__, "dataset", dataset)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if flowlet is not None:
            pulumi.set(__self__, "flowlet", flowlet)
        if linked_service is not None:
            pulumi.set(__self__, "linked_service", linked_service)
        if schema_linked_service is not None:
            pulumi.set(__self__, "schema_linked_service", schema_linked_service)
        if script is not None:
            pulumi.set(__self__, "script", script)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Transformation name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def dataset(self) -> Optional['outputs.DatasetReferenceResponse']:
        """
        Dataset reference.
        """
        return pulumi.get(self, "dataset")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Transformation description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def flowlet(self) -> Optional['outputs.DataFlowReferenceResponse']:
        """
        Flowlet Reference
        """
        return pulumi.get(self, "flowlet")

    @property
    @pulumi.getter(name="linkedService")
    def linked_service(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service")

    @property
    @pulumi.getter(name="schemaLinkedService")
    def schema_linked_service(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Schema linked service reference.
        """
        return pulumi.get(self, "schema_linked_service")

    @property
    @pulumi.getter
    def script(self) -> Optional[str]:
        """
        source script.
        """
        return pulumi.get(self, "script")


@pulumi.output_type
class PrestoLinkedServiceResponse(dict):
    """
    Presto server linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"
        elif key == "serverVersion":
            suggest = "server_version"
        elif key == "allowHostNameCNMismatch":
            suggest = "allow_host_name_cn_mismatch"
        elif key == "allowSelfSignedServerCert":
            suggest = "allow_self_signed_server_cert"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "enableSsl":
            suggest = "enable_ssl"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "timeZoneID":
            suggest = "time_zone_id"
        elif key == "trustedCertPath":
            suggest = "trusted_cert_path"
        elif key == "useSystemTrustStore":
            suggest = "use_system_trust_store"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in PrestoLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        PrestoLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        PrestoLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 authentication_type: str,
                 catalog: Any,
                 host: Any,
                 server_version: Any,
                 type: str,
                 allow_host_name_cn_mismatch: Optional[Any] = None,
                 allow_self_signed_server_cert: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 enable_ssl: Optional[Any] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 port: Optional[Any] = None,
                 time_zone_id: Optional[Any] = None,
                 trusted_cert_path: Optional[Any] = None,
                 use_system_trust_store: Optional[Any] = None,
                 username: Optional[Any] = None):
        """
        Presto server linked service.
        :param str authentication_type: The authentication mechanism used to connect to the Presto server.
        :param Any catalog: The catalog context for all request against the server.
        :param Any host: The IP address or host name of the Presto server. (i.e. 192.168.222.160)
        :param Any server_version: The version of the Presto server. (i.e. 0.148-t)
        :param str type: Type of linked service.
               Expected value is 'Presto'.
        :param Any allow_host_name_cn_mismatch: Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false.
        :param Any allow_self_signed_server_cert: Specifies whether to allow self-signed certificates from the server. The default value is false.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any enable_ssl: Specifies whether the connections to the server are encrypted using SSL. The default value is false.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The password corresponding to the user name.
        :param Any port: The TCP port that the Presto server uses to listen for client connections. The default value is 8080.
        :param Any time_zone_id: The local time zone used by the connection. Valid values for this option are specified in the IANA Time Zone Database. The default value is the system time zone.
        :param Any trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR.
        :param Any use_system_trust_store: Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false.
        :param Any username: The user name used to connect to the Presto server.
        """
        pulumi.set(__self__, "authentication_type", authentication_type)
        pulumi.set(__self__, "catalog", catalog)
        pulumi.set(__self__, "host", host)
        pulumi.set(__self__, "server_version", server_version)
        pulumi.set(__self__, "type", 'Presto')
        if allow_host_name_cn_mismatch is not None:
            pulumi.set(__self__, "allow_host_name_cn_mismatch", allow_host_name_cn_mismatch)
        if allow_self_signed_server_cert is not None:
            pulumi.set(__self__, "allow_self_signed_server_cert", allow_self_signed_server_cert)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if enable_ssl is not None:
            pulumi.set(__self__, "enable_ssl", enable_ssl)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if time_zone_id is not None:
            pulumi.set(__self__, "time_zone_id", time_zone_id)
        if trusted_cert_path is not None:
            pulumi.set(__self__, "trusted_cert_path", trusted_cert_path)
        if use_system_trust_store is not None:
            pulumi.set(__self__, "use_system_trust_store", use_system_trust_store)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> str:
        """
        The authentication mechanism used to connect to the Presto server.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter
    def catalog(self) -> Any:
        """
        The catalog context for all request against the server.
        """
        return pulumi.get(self, "catalog")

    @property
    @pulumi.getter
    def host(self) -> Any:
        """
        The IP address or host name of the Presto server. (i.e. 192.168.222.160)
        """
        return pulumi.get(self, "host")

    @property
    @pulumi.getter(name="serverVersion")
    def server_version(self) -> Any:
        """
        The version of the Presto server. (i.e. 0.148-t)
        """
        return pulumi.get(self, "server_version")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Presto'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="allowHostNameCNMismatch")
    def allow_host_name_cn_mismatch(self) -> Optional[Any]:
        """
        Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false.
        """
        return pulumi.get(self, "allow_host_name_cn_mismatch")

    @property
    @pulumi.getter(name="allowSelfSignedServerCert")
    def allow_self_signed_server_cert(self) -> Optional[Any]:
        """
        Specifies whether to allow self-signed certificates from the server. The default value is false.
        """
        return pulumi.get(self, "allow_self_signed_server_cert")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="enableSsl")
    def enable_ssl(self) -> Optional[Any]:
        """
        Specifies whether the connections to the server are encrypted using SSL. The default value is false.
        """
        return pulumi.get(self, "enable_ssl")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        The password corresponding to the user name.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def port(self) -> Optional[Any]:
        """
        The TCP port that the Presto server uses to listen for client connections. The default value is 8080.
        """
        return pulumi.get(self, "port")

    @property
    @pulumi.getter(name="timeZoneID")
    def time_zone_id(self) -> Optional[Any]:
        """
        The local time zone used by the connection. Valid values for this option are specified in the IANA Time Zone Database. The default value is the system time zone.
        """
        return pulumi.get(self, "time_zone_id")

    @property
    @pulumi.getter(name="trustedCertPath")
    def trusted_cert_path(self) -> Optional[Any]:
        """
        The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR.
        """
        return pulumi.get(self, "trusted_cert_path")

    @property
    @pulumi.getter(name="useSystemTrustStore")
    def use_system_trust_store(self) -> Optional[Any]:
        """
        Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false.
        """
        return pulumi.get(self, "use_system_trust_store")

    @property
    @pulumi.getter
    def username(self) -> Optional[Any]:
        """
        The user name used to connect to the Presto server.
        """
        return pulumi.get(self, "username")


@pulumi.output_type
class PrestoObjectDatasetResponse(dict):
    """
    Presto server dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in PrestoObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        PrestoObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        PrestoObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Presto server dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'PrestoObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The table name of the Presto. Type: string (or Expression with resultType string).
        :param Any table_name: This property will be retired. Please consider using schema + table properties instead.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'PrestoObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'PrestoObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The table name of the Presto. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        This property will be retired. Please consider using schema + table properties instead.
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class PrestoSourceResponse(dict):
    """
    A copy activity Presto server source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in PrestoSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        PrestoSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        PrestoSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Presto server source.
        :param str type: Copy source type.
               Expected value is 'PrestoSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'PrestoSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'PrestoSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class PrivateLinkConnectionStateResponse(dict):
    """
    The state of a private link connection
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "actionsRequired":
            suggest = "actions_required"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in PrivateLinkConnectionStateResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        PrivateLinkConnectionStateResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        PrivateLinkConnectionStateResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 actions_required: Optional[str] = None,
                 description: Optional[str] = None,
                 status: Optional[str] = None):
        """
        The state of a private link connection
        :param str actions_required: ActionsRequired for a private link connection
        :param str description: Description of a private link connection
        :param str status: Status of a private link connection
        """
        if actions_required is not None:
            pulumi.set(__self__, "actions_required", actions_required)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if status is not None:
            pulumi.set(__self__, "status", status)

    @property
    @pulumi.getter(name="actionsRequired")
    def actions_required(self) -> Optional[str]:
        """
        ActionsRequired for a private link connection
        """
        return pulumi.get(self, "actions_required")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Description of a private link connection
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def status(self) -> Optional[str]:
        """
        Status of a private link connection
        """
        return pulumi.get(self, "status")


@pulumi.output_type
class QuickBooksLinkedServiceResponse(dict):
    """
    QuickBooks server linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accessToken":
            suggest = "access_token"
        elif key == "accessTokenSecret":
            suggest = "access_token_secret"
        elif key == "companyId":
            suggest = "company_id"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "connectionProperties":
            suggest = "connection_properties"
        elif key == "consumerKey":
            suggest = "consumer_key"
        elif key == "consumerSecret":
            suggest = "consumer_secret"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "useEncryptedEndpoints":
            suggest = "use_encrypted_endpoints"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in QuickBooksLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        QuickBooksLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        QuickBooksLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 access_token: Optional[Any] = None,
                 access_token_secret: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 company_id: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 connection_properties: Optional[Any] = None,
                 consumer_key: Optional[Any] = None,
                 consumer_secret: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 endpoint: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 use_encrypted_endpoints: Optional[Any] = None):
        """
        QuickBooks server linked service.
        :param str type: Type of linked service.
               Expected value is 'QuickBooks'.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] access_token: The access token for OAuth 1.0 authentication.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] access_token_secret: The access token secret for OAuth 1.0 authentication.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any company_id: The company ID of the QuickBooks company to authorize.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any connection_properties: Properties used to connect to QuickBooks. It is mutually exclusive with any other properties in the linked service. Type: object.
        :param Any consumer_key: The consumer key for OAuth 1.0 authentication.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] consumer_secret: The consumer secret for OAuth 1.0 authentication.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Any endpoint: The endpoint of the QuickBooks server. (i.e. quickbooks.api.intuit.com)
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Any use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        """
        pulumi.set(__self__, "type", 'QuickBooks')
        if access_token is not None:
            pulumi.set(__self__, "access_token", access_token)
        if access_token_secret is not None:
            pulumi.set(__self__, "access_token_secret", access_token_secret)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if company_id is not None:
            pulumi.set(__self__, "company_id", company_id)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if connection_properties is not None:
            pulumi.set(__self__, "connection_properties", connection_properties)
        if consumer_key is not None:
            pulumi.set(__self__, "consumer_key", consumer_key)
        if consumer_secret is not None:
            pulumi.set(__self__, "consumer_secret", consumer_secret)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if endpoint is not None:
            pulumi.set(__self__, "endpoint", endpoint)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if use_encrypted_endpoints is not None:
            pulumi.set(__self__, "use_encrypted_endpoints", use_encrypted_endpoints)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'QuickBooks'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="accessToken")
    def access_token(self) -> Optional[Any]:
        """
        The access token for OAuth 1.0 authentication.
        """
        return pulumi.get(self, "access_token")

    @property
    @pulumi.getter(name="accessTokenSecret")
    def access_token_secret(self) -> Optional[Any]:
        """
        The access token secret for OAuth 1.0 authentication.
        """
        return pulumi.get(self, "access_token_secret")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="companyId")
    def company_id(self) -> Optional[Any]:
        """
        The company ID of the QuickBooks company to authorize.
        """
        return pulumi.get(self, "company_id")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="connectionProperties")
    def connection_properties(self) -> Optional[Any]:
        """
        Properties used to connect to QuickBooks. It is mutually exclusive with any other properties in the linked service. Type: object.
        """
        return pulumi.get(self, "connection_properties")

    @property
    @pulumi.getter(name="consumerKey")
    def consumer_key(self) -> Optional[Any]:
        """
        The consumer key for OAuth 1.0 authentication.
        """
        return pulumi.get(self, "consumer_key")

    @property
    @pulumi.getter(name="consumerSecret")
    def consumer_secret(self) -> Optional[Any]:
        """
        The consumer secret for OAuth 1.0 authentication.
        """
        return pulumi.get(self, "consumer_secret")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def endpoint(self) -> Optional[Any]:
        """
        The endpoint of the QuickBooks server. (i.e. quickbooks.api.intuit.com)
        """
        return pulumi.get(self, "endpoint")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="useEncryptedEndpoints")
    def use_encrypted_endpoints(self) -> Optional[Any]:
        """
        Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        """
        return pulumi.get(self, "use_encrypted_endpoints")


@pulumi.output_type
class QuickBooksObjectDatasetResponse(dict):
    """
    QuickBooks server dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in QuickBooksObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        QuickBooksObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        QuickBooksObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        QuickBooks server dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'QuickBooksObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'QuickBooksObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'QuickBooksObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class QuickBooksSourceResponse(dict):
    """
    A copy activity QuickBooks server source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in QuickBooksSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        QuickBooksSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        QuickBooksSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity QuickBooks server source.
        :param str type: Copy source type.
               Expected value is 'QuickBooksSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'QuickBooksSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'QuickBooksSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class QuickbaseLinkedServiceResponse(dict):
    """
    Linked service for Quickbase.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "userToken":
            suggest = "user_token"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in QuickbaseLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        QuickbaseLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        QuickbaseLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 url: Any,
                 user_token: Any,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None):
        """
        Linked service for Quickbase.
        :param str type: Type of linked service.
               Expected value is 'Quickbase'.
        :param Any url: The url to connect Quickbase source. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] user_token: The user token for the Quickbase source.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        """
        pulumi.set(__self__, "type", 'Quickbase')
        pulumi.set(__self__, "url", url)
        pulumi.set(__self__, "user_token", user_token)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Quickbase'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def url(self) -> Any:
        """
        The url to connect Quickbase source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "url")

    @property
    @pulumi.getter(name="userToken")
    def user_token(self) -> Any:
        """
        The user token for the Quickbase source.
        """
        return pulumi.get(self, "user_token")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")


@pulumi.output_type
class RecurrenceScheduleOccurrenceResponse(dict):
    """
    The recurrence schedule occurrence.
    """
    def __init__(__self__, *,
                 day: Optional[str] = None,
                 occurrence: Optional[int] = None):
        """
        The recurrence schedule occurrence.
        :param str day: The day of the week.
        :param int occurrence: The occurrence.
        """
        if day is not None:
            pulumi.set(__self__, "day", day)
        if occurrence is not None:
            pulumi.set(__self__, "occurrence", occurrence)

    @property
    @pulumi.getter
    def day(self) -> Optional[str]:
        """
        The day of the week.
        """
        return pulumi.get(self, "day")

    @property
    @pulumi.getter
    def occurrence(self) -> Optional[int]:
        """
        The occurrence.
        """
        return pulumi.get(self, "occurrence")


@pulumi.output_type
class RecurrenceScheduleResponse(dict):
    """
    The recurrence schedule.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "monthDays":
            suggest = "month_days"
        elif key == "monthlyOccurrences":
            suggest = "monthly_occurrences"
        elif key == "weekDays":
            suggest = "week_days"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in RecurrenceScheduleResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        RecurrenceScheduleResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        RecurrenceScheduleResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 hours: Optional[Sequence[int]] = None,
                 minutes: Optional[Sequence[int]] = None,
                 month_days: Optional[Sequence[int]] = None,
                 monthly_occurrences: Optional[Sequence['outputs.RecurrenceScheduleOccurrenceResponse']] = None,
                 week_days: Optional[Sequence[str]] = None):
        """
        The recurrence schedule.
        :param Sequence[int] hours: The hours.
        :param Sequence[int] minutes: The minutes.
        :param Sequence[int] month_days: The month days.
        :param Sequence['RecurrenceScheduleOccurrenceResponse'] monthly_occurrences: The monthly occurrences.
        :param Sequence[str] week_days: The days of the week.
        """
        if hours is not None:
            pulumi.set(__self__, "hours", hours)
        if minutes is not None:
            pulumi.set(__self__, "minutes", minutes)
        if month_days is not None:
            pulumi.set(__self__, "month_days", month_days)
        if monthly_occurrences is not None:
            pulumi.set(__self__, "monthly_occurrences", monthly_occurrences)
        if week_days is not None:
            pulumi.set(__self__, "week_days", week_days)

    @property
    @pulumi.getter
    def hours(self) -> Optional[Sequence[int]]:
        """
        The hours.
        """
        return pulumi.get(self, "hours")

    @property
    @pulumi.getter
    def minutes(self) -> Optional[Sequence[int]]:
        """
        The minutes.
        """
        return pulumi.get(self, "minutes")

    @property
    @pulumi.getter(name="monthDays")
    def month_days(self) -> Optional[Sequence[int]]:
        """
        The month days.
        """
        return pulumi.get(self, "month_days")

    @property
    @pulumi.getter(name="monthlyOccurrences")
    def monthly_occurrences(self) -> Optional[Sequence['outputs.RecurrenceScheduleOccurrenceResponse']]:
        """
        The monthly occurrences.
        """
        return pulumi.get(self, "monthly_occurrences")

    @property
    @pulumi.getter(name="weekDays")
    def week_days(self) -> Optional[Sequence[str]]:
        """
        The days of the week.
        """
        return pulumi.get(self, "week_days")


@pulumi.output_type
class RedirectIncompatibleRowSettingsResponse(dict):
    """
    Redirect incompatible row settings
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in RedirectIncompatibleRowSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        RedirectIncompatibleRowSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        RedirectIncompatibleRowSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: Any,
                 path: Optional[Any] = None):
        """
        Redirect incompatible row settings
        :param Any linked_service_name: Name of the Azure Storage, Storage SAS, or Azure Data Lake Store linked service used for redirecting incompatible row. Must be specified if redirectIncompatibleRowSettings is specified. Type: string (or Expression with resultType string).
        :param Any path: The path for storing the redirect incompatible row data. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        if path is not None:
            pulumi.set(__self__, "path", path)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Any:
        """
        Name of the Azure Storage, Storage SAS, or Azure Data Lake Store linked service used for redirecting incompatible row. Must be specified if redirectIncompatibleRowSettings is specified. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def path(self) -> Optional[Any]:
        """
        The path for storing the redirect incompatible row data. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "path")


@pulumi.output_type
class RedshiftUnloadSettingsResponse(dict):
    """
    The Amazon S3 settings needed for the interim Amazon S3 when copying from Amazon Redshift with unload. With this, data from Amazon Redshift source will be unloaded into S3 first and then copied into the targeted sink from the interim S3.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "bucketName":
            suggest = "bucket_name"
        elif key == "s3LinkedServiceName":
            suggest = "s3_linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in RedshiftUnloadSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        RedshiftUnloadSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        RedshiftUnloadSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 bucket_name: Any,
                 s3_linked_service_name: 'outputs.LinkedServiceReferenceResponse'):
        """
        The Amazon S3 settings needed for the interim Amazon S3 when copying from Amazon Redshift with unload. With this, data from Amazon Redshift source will be unloaded into S3 first and then copied into the targeted sink from the interim S3.
        :param Any bucket_name: The bucket of the interim Amazon S3 which will be used to store the unloaded data from Amazon Redshift source. The bucket must be in the same region as the Amazon Redshift source. Type: string (or Expression with resultType string).
        :param 'LinkedServiceReferenceResponse' s3_linked_service_name: The name of the Amazon S3 linked service which will be used for the unload operation when copying from the Amazon Redshift source.
        """
        pulumi.set(__self__, "bucket_name", bucket_name)
        pulumi.set(__self__, "s3_linked_service_name", s3_linked_service_name)

    @property
    @pulumi.getter(name="bucketName")
    def bucket_name(self) -> Any:
        """
        The bucket of the interim Amazon S3 which will be used to store the unloaded data from Amazon Redshift source. The bucket must be in the same region as the Amazon Redshift source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "bucket_name")

    @property
    @pulumi.getter(name="s3LinkedServiceName")
    def s3_linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        The name of the Amazon S3 linked service which will be used for the unload operation when copying from the Amazon Redshift source.
        """
        return pulumi.get(self, "s3_linked_service_name")


@pulumi.output_type
class RelationalSourceResponse(dict):
    """
    A copy activity source for various relational databases.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in RelationalSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        RelationalSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        RelationalSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for various relational databases.
        :param str type: Copy source type.
               Expected value is 'RelationalSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: Database query. Type: string (or Expression with resultType string).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'RelationalSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'RelationalSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        Database query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class RelationalTableDatasetResponse(dict):
    """
    The relational table dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in RelationalTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        RelationalTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        RelationalTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        The relational table dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'RelationalTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The relational table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'RelationalTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'RelationalTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The relational table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class RemotePrivateEndpointConnectionResponse(dict):
    """
    A remote private endpoint connection
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "provisioningState":
            suggest = "provisioning_state"
        elif key == "privateEndpoint":
            suggest = "private_endpoint"
        elif key == "privateLinkServiceConnectionState":
            suggest = "private_link_service_connection_state"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in RemotePrivateEndpointConnectionResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        RemotePrivateEndpointConnectionResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        RemotePrivateEndpointConnectionResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 provisioning_state: str,
                 private_endpoint: Optional['outputs.ArmIdWrapperResponse'] = None,
                 private_link_service_connection_state: Optional['outputs.PrivateLinkConnectionStateResponse'] = None):
        """
        A remote private endpoint connection
        :param 'ArmIdWrapperResponse' private_endpoint: PrivateEndpoint of a remote private endpoint connection
        :param 'PrivateLinkConnectionStateResponse' private_link_service_connection_state: The state of a private link connection
        """
        pulumi.set(__self__, "provisioning_state", provisioning_state)
        if private_endpoint is not None:
            pulumi.set(__self__, "private_endpoint", private_endpoint)
        if private_link_service_connection_state is not None:
            pulumi.set(__self__, "private_link_service_connection_state", private_link_service_connection_state)

    @property
    @pulumi.getter(name="provisioningState")
    def provisioning_state(self) -> str:
        return pulumi.get(self, "provisioning_state")

    @property
    @pulumi.getter(name="privateEndpoint")
    def private_endpoint(self) -> Optional['outputs.ArmIdWrapperResponse']:
        """
        PrivateEndpoint of a remote private endpoint connection
        """
        return pulumi.get(self, "private_endpoint")

    @property
    @pulumi.getter(name="privateLinkServiceConnectionState")
    def private_link_service_connection_state(self) -> Optional['outputs.PrivateLinkConnectionStateResponse']:
        """
        The state of a private link connection
        """
        return pulumi.get(self, "private_link_service_connection_state")


@pulumi.output_type
class RerunTumblingWindowTriggerResponse(dict):
    """
    Trigger that schedules pipeline reruns for all fixed time interval windows from a requested start time to requested end time.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "parentTrigger":
            suggest = "parent_trigger"
        elif key == "requestedEndTime":
            suggest = "requested_end_time"
        elif key == "requestedStartTime":
            suggest = "requested_start_time"
        elif key == "rerunConcurrency":
            suggest = "rerun_concurrency"
        elif key == "runtimeState":
            suggest = "runtime_state"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in RerunTumblingWindowTriggerResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        RerunTumblingWindowTriggerResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        RerunTumblingWindowTriggerResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 parent_trigger: Any,
                 requested_end_time: str,
                 requested_start_time: str,
                 rerun_concurrency: int,
                 runtime_state: str,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None):
        """
        Trigger that schedules pipeline reruns for all fixed time interval windows from a requested start time to requested end time.
        :param Any parent_trigger: The parent trigger reference.
        :param str requested_end_time: The end time for the time period for which restatement is initiated. Only UTC time is currently supported.
        :param str requested_start_time: The start time for the time period for which restatement is initiated. Only UTC time is currently supported.
        :param int rerun_concurrency: The max number of parallel time windows (ready for execution) for which a rerun is triggered.
        :param str runtime_state: Indicates if trigger is running or not. Updated when Start/Stop APIs are called on the Trigger.
        :param str type: Trigger type.
               Expected value is 'RerunTumblingWindowTrigger'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the trigger.
        :param str description: Trigger description.
        """
        pulumi.set(__self__, "parent_trigger", parent_trigger)
        pulumi.set(__self__, "requested_end_time", requested_end_time)
        pulumi.set(__self__, "requested_start_time", requested_start_time)
        pulumi.set(__self__, "rerun_concurrency", rerun_concurrency)
        pulumi.set(__self__, "runtime_state", runtime_state)
        pulumi.set(__self__, "type", 'RerunTumblingWindowTrigger')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)

    @property
    @pulumi.getter(name="parentTrigger")
    def parent_trigger(self) -> Any:
        """
        The parent trigger reference.
        """
        return pulumi.get(self, "parent_trigger")

    @property
    @pulumi.getter(name="requestedEndTime")
    def requested_end_time(self) -> str:
        """
        The end time for the time period for which restatement is initiated. Only UTC time is currently supported.
        """
        return pulumi.get(self, "requested_end_time")

    @property
    @pulumi.getter(name="requestedStartTime")
    def requested_start_time(self) -> str:
        """
        The start time for the time period for which restatement is initiated. Only UTC time is currently supported.
        """
        return pulumi.get(self, "requested_start_time")

    @property
    @pulumi.getter(name="rerunConcurrency")
    def rerun_concurrency(self) -> int:
        """
        The max number of parallel time windows (ready for execution) for which a rerun is triggered.
        """
        return pulumi.get(self, "rerun_concurrency")

    @property
    @pulumi.getter(name="runtimeState")
    def runtime_state(self) -> str:
        """
        Indicates if trigger is running or not. Updated when Start/Stop APIs are called on the Trigger.
        """
        return pulumi.get(self, "runtime_state")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Trigger type.
        Expected value is 'RerunTumblingWindowTrigger'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the trigger.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Trigger description.
        """
        return pulumi.get(self, "description")


@pulumi.output_type
class ResponsysLinkedServiceResponse(dict):
    """
    Responsys linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "clientId":
            suggest = "client_id"
        elif key == "clientSecret":
            suggest = "client_secret"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "useEncryptedEndpoints":
            suggest = "use_encrypted_endpoints"
        elif key == "useHostVerification":
            suggest = "use_host_verification"
        elif key == "usePeerVerification":
            suggest = "use_peer_verification"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ResponsysLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ResponsysLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ResponsysLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 client_id: Any,
                 endpoint: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 client_secret: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 use_encrypted_endpoints: Optional[Any] = None,
                 use_host_verification: Optional[Any] = None,
                 use_peer_verification: Optional[Any] = None):
        """
        Responsys linked service.
        :param Any client_id: The client ID associated with the Responsys application. Type: string (or Expression with resultType string).
        :param Any endpoint: The endpoint of the Responsys server.
        :param str type: Type of linked service.
               Expected value is 'Responsys'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] client_secret: The client secret associated with the Responsys application. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Any use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. Type: boolean (or Expression with resultType boolean).
        :param Any use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean).
        :param Any use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean).
        """
        pulumi.set(__self__, "client_id", client_id)
        pulumi.set(__self__, "endpoint", endpoint)
        pulumi.set(__self__, "type", 'Responsys')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if client_secret is not None:
            pulumi.set(__self__, "client_secret", client_secret)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if use_encrypted_endpoints is not None:
            pulumi.set(__self__, "use_encrypted_endpoints", use_encrypted_endpoints)
        if use_host_verification is not None:
            pulumi.set(__self__, "use_host_verification", use_host_verification)
        if use_peer_verification is not None:
            pulumi.set(__self__, "use_peer_verification", use_peer_verification)

    @property
    @pulumi.getter(name="clientId")
    def client_id(self) -> Any:
        """
        The client ID associated with the Responsys application. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "client_id")

    @property
    @pulumi.getter
    def endpoint(self) -> Any:
        """
        The endpoint of the Responsys server.
        """
        return pulumi.get(self, "endpoint")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Responsys'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="clientSecret")
    def client_secret(self) -> Optional[Any]:
        """
        The client secret associated with the Responsys application. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "client_secret")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="useEncryptedEndpoints")
    def use_encrypted_endpoints(self) -> Optional[Any]:
        """
        Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "use_encrypted_endpoints")

    @property
    @pulumi.getter(name="useHostVerification")
    def use_host_verification(self) -> Optional[Any]:
        """
        Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "use_host_verification")

    @property
    @pulumi.getter(name="usePeerVerification")
    def use_peer_verification(self) -> Optional[Any]:
        """
        Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "use_peer_verification")


@pulumi.output_type
class ResponsysObjectDatasetResponse(dict):
    """
    Responsys dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ResponsysObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ResponsysObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ResponsysObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Responsys dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'ResponsysObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'ResponsysObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'ResponsysObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class ResponsysSourceResponse(dict):
    """
    A copy activity Responsys source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ResponsysSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ResponsysSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ResponsysSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Responsys source.
        :param str type: Copy source type.
               Expected value is 'ResponsysSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'ResponsysSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'ResponsysSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class RestResourceDatasetResponse(dict):
    """
    A Rest service dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "additionalHeaders":
            suggest = "additional_headers"
        elif key == "paginationRules":
            suggest = "pagination_rules"
        elif key == "relativeUrl":
            suggest = "relative_url"
        elif key == "requestBody":
            suggest = "request_body"
        elif key == "requestMethod":
            suggest = "request_method"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in RestResourceDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        RestResourceDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        RestResourceDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 additional_headers: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 pagination_rules: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 relative_url: Optional[Any] = None,
                 request_body: Optional[Any] = None,
                 request_method: Optional[Any] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        A Rest service dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'RestResource'.
        :param Any additional_headers: The additional HTTP headers in the request to the RESTful API. Type: string (or Expression with resultType string).
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Any pagination_rules: The pagination rules to compose next page requests. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any relative_url: The relative URL to the resource that the RESTful API provides. Type: string (or Expression with resultType string).
        :param Any request_body: The HTTP request body to the RESTful API if requestMethod is POST. Type: string (or Expression with resultType string).
        :param Any request_method: The HTTP method used to call the RESTful API. The default is GET. Type: string (or Expression with resultType string).
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'RestResource')
        if additional_headers is not None:
            pulumi.set(__self__, "additional_headers", additional_headers)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if pagination_rules is not None:
            pulumi.set(__self__, "pagination_rules", pagination_rules)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if relative_url is not None:
            pulumi.set(__self__, "relative_url", relative_url)
        if request_body is not None:
            pulumi.set(__self__, "request_body", request_body)
        if request_method is not None:
            pulumi.set(__self__, "request_method", request_method)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'RestResource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalHeaders")
    def additional_headers(self) -> Optional[Any]:
        """
        The additional HTTP headers in the request to the RESTful API. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "additional_headers")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter(name="paginationRules")
    def pagination_rules(self) -> Optional[Any]:
        """
        The pagination rules to compose next page requests. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "pagination_rules")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="relativeUrl")
    def relative_url(self) -> Optional[Any]:
        """
        The relative URL to the resource that the RESTful API provides. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "relative_url")

    @property
    @pulumi.getter(name="requestBody")
    def request_body(self) -> Optional[Any]:
        """
        The HTTP request body to the RESTful API if requestMethod is POST. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "request_body")

    @property
    @pulumi.getter(name="requestMethod")
    def request_method(self) -> Optional[Any]:
        """
        The HTTP method used to call the RESTful API. The default is GET. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "request_method")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class RestServiceLinkedServiceResponse(dict):
    """
    Rest Service linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"
        elif key == "aadResourceId":
            suggest = "aad_resource_id"
        elif key == "authHeaders":
            suggest = "auth_headers"
        elif key == "azureCloudType":
            suggest = "azure_cloud_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "enableServerCertificateValidation":
            suggest = "enable_server_certificate_validation"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "servicePrincipalId":
            suggest = "service_principal_id"
        elif key == "servicePrincipalKey":
            suggest = "service_principal_key"
        elif key == "userName":
            suggest = "user_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in RestServiceLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        RestServiceLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        RestServiceLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 authentication_type: str,
                 type: str,
                 url: Any,
                 aad_resource_id: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 auth_headers: Optional[Any] = None,
                 azure_cloud_type: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 credential: Optional['outputs.CredentialReferenceResponse'] = None,
                 description: Optional[str] = None,
                 enable_server_certificate_validation: Optional[Any] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 service_principal_id: Optional[Any] = None,
                 service_principal_key: Optional[Any] = None,
                 tenant: Optional[Any] = None,
                 user_name: Optional[Any] = None):
        """
        Rest Service linked service.
        :param str authentication_type: Type of authentication used to connect to the REST service.
        :param str type: Type of linked service.
               Expected value is 'RestService'.
        :param Any url: The base URL of the REST service.
        :param Any aad_resource_id: The resource you are requesting authorization to use.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any auth_headers: The additional HTTP headers in the request to RESTful API used for authorization. Type: object (or Expression with resultType object).
        :param Any azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param 'CredentialReferenceResponse' credential: The credential reference containing authentication information.
        :param str description: Linked service description.
        :param Any enable_server_certificate_validation: Whether to validate server side SSL certificate when connecting to the endpoint.The default value is true. Type: boolean (or Expression with resultType boolean).
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The password used in Basic authentication type.
        :param Any service_principal_id: The application's client ID used in AadServicePrincipal authentication type.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_key: The application's key used in AadServicePrincipal authentication type.
        :param Any tenant: The tenant information (domain name or tenant ID) used in AadServicePrincipal authentication type under which your application resides.
        :param Any user_name: The user name used in Basic authentication type.
        """
        pulumi.set(__self__, "authentication_type", authentication_type)
        pulumi.set(__self__, "type", 'RestService')
        pulumi.set(__self__, "url", url)
        if aad_resource_id is not None:
            pulumi.set(__self__, "aad_resource_id", aad_resource_id)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if auth_headers is not None:
            pulumi.set(__self__, "auth_headers", auth_headers)
        if azure_cloud_type is not None:
            pulumi.set(__self__, "azure_cloud_type", azure_cloud_type)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if credential is not None:
            pulumi.set(__self__, "credential", credential)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if enable_server_certificate_validation is not None:
            pulumi.set(__self__, "enable_server_certificate_validation", enable_server_certificate_validation)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if service_principal_id is not None:
            pulumi.set(__self__, "service_principal_id", service_principal_id)
        if service_principal_key is not None:
            pulumi.set(__self__, "service_principal_key", service_principal_key)
        if tenant is not None:
            pulumi.set(__self__, "tenant", tenant)
        if user_name is not None:
            pulumi.set(__self__, "user_name", user_name)

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> str:
        """
        Type of authentication used to connect to the REST service.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'RestService'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def url(self) -> Any:
        """
        The base URL of the REST service.
        """
        return pulumi.get(self, "url")

    @property
    @pulumi.getter(name="aadResourceId")
    def aad_resource_id(self) -> Optional[Any]:
        """
        The resource you are requesting authorization to use.
        """
        return pulumi.get(self, "aad_resource_id")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="authHeaders")
    def auth_headers(self) -> Optional[Any]:
        """
        The additional HTTP headers in the request to RESTful API used for authorization. Type: object (or Expression with resultType object).
        """
        return pulumi.get(self, "auth_headers")

    @property
    @pulumi.getter(name="azureCloudType")
    def azure_cloud_type(self) -> Optional[Any]:
        """
        Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "azure_cloud_type")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def credential(self) -> Optional['outputs.CredentialReferenceResponse']:
        """
        The credential reference containing authentication information.
        """
        return pulumi.get(self, "credential")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="enableServerCertificateValidation")
    def enable_server_certificate_validation(self) -> Optional[Any]:
        """
        Whether to validate server side SSL certificate when connecting to the endpoint.The default value is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "enable_server_certificate_validation")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        The password used in Basic authentication type.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="servicePrincipalId")
    def service_principal_id(self) -> Optional[Any]:
        """
        The application's client ID used in AadServicePrincipal authentication type.
        """
        return pulumi.get(self, "service_principal_id")

    @property
    @pulumi.getter(name="servicePrincipalKey")
    def service_principal_key(self) -> Optional[Any]:
        """
        The application's key used in AadServicePrincipal authentication type.
        """
        return pulumi.get(self, "service_principal_key")

    @property
    @pulumi.getter
    def tenant(self) -> Optional[Any]:
        """
        The tenant information (domain name or tenant ID) used in AadServicePrincipal authentication type under which your application resides.
        """
        return pulumi.get(self, "tenant")

    @property
    @pulumi.getter(name="userName")
    def user_name(self) -> Optional[Any]:
        """
        The user name used in Basic authentication type.
        """
        return pulumi.get(self, "user_name")


@pulumi.output_type
class RestSinkResponse(dict):
    """
    A copy activity Rest service Sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalHeaders":
            suggest = "additional_headers"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "httpCompressionType":
            suggest = "http_compression_type"
        elif key == "httpRequestTimeout":
            suggest = "http_request_timeout"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "requestInterval":
            suggest = "request_interval"
        elif key == "requestMethod":
            suggest = "request_method"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in RestSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        RestSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        RestSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_headers: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 http_compression_type: Optional[Any] = None,
                 http_request_timeout: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 request_interval: Optional[Any] = None,
                 request_method: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity Rest service Sink.
        :param str type: Copy sink type.
               Expected value is 'RestSink'.
        :param Any additional_headers: The additional HTTP headers in the request to the RESTful API. Type: string (or Expression with resultType string).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any http_compression_type: Http Compression Type to Send data in compressed format with Optimal Compression Level, Default is None. And The Only Supported option is Gzip. 
        :param Any http_request_timeout: The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:01:40. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any request_interval: The time to await before sending next request, in milliseconds 
        :param Any request_method: The HTTP method used to call the RESTful API. The default is POST. Type: string (or Expression with resultType string).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'RestSink')
        if additional_headers is not None:
            pulumi.set(__self__, "additional_headers", additional_headers)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if http_compression_type is not None:
            pulumi.set(__self__, "http_compression_type", http_compression_type)
        if http_request_timeout is not None:
            pulumi.set(__self__, "http_request_timeout", http_request_timeout)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if request_interval is not None:
            pulumi.set(__self__, "request_interval", request_interval)
        if request_method is not None:
            pulumi.set(__self__, "request_method", request_method)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'RestSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalHeaders")
    def additional_headers(self) -> Optional[Any]:
        """
        The additional HTTP headers in the request to the RESTful API. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "additional_headers")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="httpCompressionType")
    def http_compression_type(self) -> Optional[Any]:
        """
        Http Compression Type to Send data in compressed format with Optimal Compression Level, Default is None. And The Only Supported option is Gzip. 
        """
        return pulumi.get(self, "http_compression_type")

    @property
    @pulumi.getter(name="httpRequestTimeout")
    def http_request_timeout(self) -> Optional[Any]:
        """
        The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:01:40. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "http_request_timeout")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="requestInterval")
    def request_interval(self) -> Optional[Any]:
        """
        The time to await before sending next request, in milliseconds 
        """
        return pulumi.get(self, "request_interval")

    @property
    @pulumi.getter(name="requestMethod")
    def request_method(self) -> Optional[Any]:
        """
        The HTTP method used to call the RESTful API. The default is POST. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "request_method")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class RestSourceResponse(dict):
    """
    A copy activity Rest service source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "additionalHeaders":
            suggest = "additional_headers"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "httpRequestTimeout":
            suggest = "http_request_timeout"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "paginationRules":
            suggest = "pagination_rules"
        elif key == "requestBody":
            suggest = "request_body"
        elif key == "requestInterval":
            suggest = "request_interval"
        elif key == "requestMethod":
            suggest = "request_method"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in RestSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        RestSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        RestSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 additional_headers: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 http_request_timeout: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 pagination_rules: Optional[Any] = None,
                 request_body: Optional[Any] = None,
                 request_interval: Optional[Any] = None,
                 request_method: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Rest service source.
        :param str type: Copy source type.
               Expected value is 'RestSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any additional_headers: The additional HTTP headers in the request to the RESTful API. Type: string (or Expression with resultType string).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any http_request_timeout: The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:01:40. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any pagination_rules: The pagination rules to compose next page requests. Type: string (or Expression with resultType string).
        :param Any request_body: The HTTP request body to the RESTful API if requestMethod is POST. Type: string (or Expression with resultType string).
        :param Any request_interval: The time to await before sending next page request. 
        :param Any request_method: The HTTP method used to call the RESTful API. The default is GET. Type: string (or Expression with resultType string).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'RestSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if additional_headers is not None:
            pulumi.set(__self__, "additional_headers", additional_headers)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if http_request_timeout is not None:
            pulumi.set(__self__, "http_request_timeout", http_request_timeout)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if pagination_rules is not None:
            pulumi.set(__self__, "pagination_rules", pagination_rules)
        if request_body is not None:
            pulumi.set(__self__, "request_body", request_body)
        if request_interval is not None:
            pulumi.set(__self__, "request_interval", request_interval)
        if request_method is not None:
            pulumi.set(__self__, "request_method", request_method)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'RestSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="additionalHeaders")
    def additional_headers(self) -> Optional[Any]:
        """
        The additional HTTP headers in the request to the RESTful API. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "additional_headers")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="httpRequestTimeout")
    def http_request_timeout(self) -> Optional[Any]:
        """
        The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:01:40. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "http_request_timeout")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="paginationRules")
    def pagination_rules(self) -> Optional[Any]:
        """
        The pagination rules to compose next page requests. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "pagination_rules")

    @property
    @pulumi.getter(name="requestBody")
    def request_body(self) -> Optional[Any]:
        """
        The HTTP request body to the RESTful API if requestMethod is POST. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "request_body")

    @property
    @pulumi.getter(name="requestInterval")
    def request_interval(self) -> Optional[Any]:
        """
        The time to await before sending next page request. 
        """
        return pulumi.get(self, "request_interval")

    @property
    @pulumi.getter(name="requestMethod")
    def request_method(self) -> Optional[Any]:
        """
        The HTTP method used to call the RESTful API. The default is GET. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "request_method")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class RetryPolicyResponse(dict):
    """
    Execution policy for an activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "intervalInSeconds":
            suggest = "interval_in_seconds"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in RetryPolicyResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        RetryPolicyResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        RetryPolicyResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 count: Optional[Any] = None,
                 interval_in_seconds: Optional[int] = None):
        """
        Execution policy for an activity.
        :param Any count: Maximum ordinary retry attempts. Default is 0. Type: integer (or Expression with resultType integer), minimum: 0.
        :param int interval_in_seconds: Interval between retries in seconds. Default is 30.
        """
        if count is not None:
            pulumi.set(__self__, "count", count)
        if interval_in_seconds is not None:
            pulumi.set(__self__, "interval_in_seconds", interval_in_seconds)

    @property
    @pulumi.getter
    def count(self) -> Optional[Any]:
        """
        Maximum ordinary retry attempts. Default is 0. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "count")

    @property
    @pulumi.getter(name="intervalInSeconds")
    def interval_in_seconds(self) -> Optional[int]:
        """
        Interval between retries in seconds. Default is 30.
        """
        return pulumi.get(self, "interval_in_seconds")


@pulumi.output_type
class SSISAccessCredentialResponse(dict):
    """
    SSIS access credential.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "userName":
            suggest = "user_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SSISAccessCredentialResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SSISAccessCredentialResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SSISAccessCredentialResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 domain: Any,
                 password: Any,
                 user_name: Any):
        """
        SSIS access credential.
        :param Any domain: Domain for windows authentication.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password for windows authentication.
        :param Any user_name: UseName for windows authentication.
        """
        pulumi.set(__self__, "domain", domain)
        pulumi.set(__self__, "password", password)
        pulumi.set(__self__, "user_name", user_name)

    @property
    @pulumi.getter
    def domain(self) -> Any:
        """
        Domain for windows authentication.
        """
        return pulumi.get(self, "domain")

    @property
    @pulumi.getter
    def password(self) -> Any:
        """
        Password for windows authentication.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="userName")
    def user_name(self) -> Any:
        """
        UseName for windows authentication.
        """
        return pulumi.get(self, "user_name")


@pulumi.output_type
class SSISChildPackageResponse(dict):
    """
    SSIS embedded child package.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "packageContent":
            suggest = "package_content"
        elif key == "packagePath":
            suggest = "package_path"
        elif key == "packageLastModifiedDate":
            suggest = "package_last_modified_date"
        elif key == "packageName":
            suggest = "package_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SSISChildPackageResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SSISChildPackageResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SSISChildPackageResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 package_content: Any,
                 package_path: Any,
                 package_last_modified_date: Optional[str] = None,
                 package_name: Optional[str] = None):
        """
        SSIS embedded child package.
        :param Any package_content: Content for embedded child package. Type: string (or Expression with resultType string).
        :param Any package_path: Path for embedded child package. Type: string (or Expression with resultType string).
        :param str package_last_modified_date: Last modified date for embedded child package.
        :param str package_name: Name for embedded child package.
        """
        pulumi.set(__self__, "package_content", package_content)
        pulumi.set(__self__, "package_path", package_path)
        if package_last_modified_date is not None:
            pulumi.set(__self__, "package_last_modified_date", package_last_modified_date)
        if package_name is not None:
            pulumi.set(__self__, "package_name", package_name)

    @property
    @pulumi.getter(name="packageContent")
    def package_content(self) -> Any:
        """
        Content for embedded child package. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "package_content")

    @property
    @pulumi.getter(name="packagePath")
    def package_path(self) -> Any:
        """
        Path for embedded child package. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "package_path")

    @property
    @pulumi.getter(name="packageLastModifiedDate")
    def package_last_modified_date(self) -> Optional[str]:
        """
        Last modified date for embedded child package.
        """
        return pulumi.get(self, "package_last_modified_date")

    @property
    @pulumi.getter(name="packageName")
    def package_name(self) -> Optional[str]:
        """
        Name for embedded child package.
        """
        return pulumi.get(self, "package_name")


@pulumi.output_type
class SSISExecutionCredentialResponse(dict):
    """
    SSIS package execution credential.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "userName":
            suggest = "user_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SSISExecutionCredentialResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SSISExecutionCredentialResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SSISExecutionCredentialResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 domain: Any,
                 password: 'outputs.SecureStringResponse',
                 user_name: Any):
        """
        SSIS package execution credential.
        :param Any domain: Domain for windows authentication.
        :param 'SecureStringResponse' password: Password for windows authentication.
        :param Any user_name: UseName for windows authentication.
        """
        pulumi.set(__self__, "domain", domain)
        pulumi.set(__self__, "password", password)
        pulumi.set(__self__, "user_name", user_name)

    @property
    @pulumi.getter
    def domain(self) -> Any:
        """
        Domain for windows authentication.
        """
        return pulumi.get(self, "domain")

    @property
    @pulumi.getter
    def password(self) -> 'outputs.SecureStringResponse':
        """
        Password for windows authentication.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="userName")
    def user_name(self) -> Any:
        """
        UseName for windows authentication.
        """
        return pulumi.get(self, "user_name")


@pulumi.output_type
class SSISExecutionParameterResponse(dict):
    """
    SSIS execution parameter.
    """
    def __init__(__self__, *,
                 value: Any):
        """
        SSIS execution parameter.
        :param Any value: SSIS package execution parameter value. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def value(self) -> Any:
        """
        SSIS package execution parameter value. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class SSISLogLocationResponse(dict):
    """
    SSIS package execution log location
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "logPath":
            suggest = "log_path"
        elif key == "accessCredential":
            suggest = "access_credential"
        elif key == "logRefreshInterval":
            suggest = "log_refresh_interval"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SSISLogLocationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SSISLogLocationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SSISLogLocationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 log_path: Any,
                 type: str,
                 access_credential: Optional['outputs.SSISAccessCredentialResponse'] = None,
                 log_refresh_interval: Optional[Any] = None):
        """
        SSIS package execution log location
        :param Any log_path: The SSIS package execution log path. Type: string (or Expression with resultType string).
        :param str type: The type of SSIS log location.
        :param 'SSISAccessCredentialResponse' access_credential: The package execution log access credential.
        :param Any log_refresh_interval: Specifies the interval to refresh log. The default interval is 5 minutes. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "log_path", log_path)
        pulumi.set(__self__, "type", type)
        if access_credential is not None:
            pulumi.set(__self__, "access_credential", access_credential)
        if log_refresh_interval is not None:
            pulumi.set(__self__, "log_refresh_interval", log_refresh_interval)

    @property
    @pulumi.getter(name="logPath")
    def log_path(self) -> Any:
        """
        The SSIS package execution log path. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "log_path")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of SSIS log location.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="accessCredential")
    def access_credential(self) -> Optional['outputs.SSISAccessCredentialResponse']:
        """
        The package execution log access credential.
        """
        return pulumi.get(self, "access_credential")

    @property
    @pulumi.getter(name="logRefreshInterval")
    def log_refresh_interval(self) -> Optional[Any]:
        """
        Specifies the interval to refresh log. The default interval is 5 minutes. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "log_refresh_interval")


@pulumi.output_type
class SSISPackageLocationResponse(dict):
    """
    SSIS package location.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accessCredential":
            suggest = "access_credential"
        elif key == "childPackages":
            suggest = "child_packages"
        elif key == "configurationAccessCredential":
            suggest = "configuration_access_credential"
        elif key == "configurationPath":
            suggest = "configuration_path"
        elif key == "packageContent":
            suggest = "package_content"
        elif key == "packageLastModifiedDate":
            suggest = "package_last_modified_date"
        elif key == "packageName":
            suggest = "package_name"
        elif key == "packagePassword":
            suggest = "package_password"
        elif key == "packagePath":
            suggest = "package_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SSISPackageLocationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SSISPackageLocationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SSISPackageLocationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 access_credential: Optional['outputs.SSISAccessCredentialResponse'] = None,
                 child_packages: Optional[Sequence['outputs.SSISChildPackageResponse']] = None,
                 configuration_access_credential: Optional['outputs.SSISAccessCredentialResponse'] = None,
                 configuration_path: Optional[Any] = None,
                 package_content: Optional[Any] = None,
                 package_last_modified_date: Optional[str] = None,
                 package_name: Optional[str] = None,
                 package_password: Optional[Any] = None,
                 package_path: Optional[Any] = None,
                 type: Optional[str] = None):
        """
        SSIS package location.
        :param 'SSISAccessCredentialResponse' access_credential: The package access credential.
        :param Sequence['SSISChildPackageResponse'] child_packages: The embedded child package list.
        :param 'SSISAccessCredentialResponse' configuration_access_credential: The configuration file access credential.
        :param Any configuration_path: The configuration file of the package execution. Type: string (or Expression with resultType string).
        :param Any package_content: The embedded package content. Type: string (or Expression with resultType string).
        :param str package_last_modified_date: The embedded package last modified date.
        :param str package_name: The package name.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] package_password: Password of the package.
        :param Any package_path: The SSIS package path. Type: string (or Expression with resultType string).
        :param str type: The type of SSIS package location.
        """
        if access_credential is not None:
            pulumi.set(__self__, "access_credential", access_credential)
        if child_packages is not None:
            pulumi.set(__self__, "child_packages", child_packages)
        if configuration_access_credential is not None:
            pulumi.set(__self__, "configuration_access_credential", configuration_access_credential)
        if configuration_path is not None:
            pulumi.set(__self__, "configuration_path", configuration_path)
        if package_content is not None:
            pulumi.set(__self__, "package_content", package_content)
        if package_last_modified_date is not None:
            pulumi.set(__self__, "package_last_modified_date", package_last_modified_date)
        if package_name is not None:
            pulumi.set(__self__, "package_name", package_name)
        if package_password is not None:
            pulumi.set(__self__, "package_password", package_password)
        if package_path is not None:
            pulumi.set(__self__, "package_path", package_path)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="accessCredential")
    def access_credential(self) -> Optional['outputs.SSISAccessCredentialResponse']:
        """
        The package access credential.
        """
        return pulumi.get(self, "access_credential")

    @property
    @pulumi.getter(name="childPackages")
    def child_packages(self) -> Optional[Sequence['outputs.SSISChildPackageResponse']]:
        """
        The embedded child package list.
        """
        return pulumi.get(self, "child_packages")

    @property
    @pulumi.getter(name="configurationAccessCredential")
    def configuration_access_credential(self) -> Optional['outputs.SSISAccessCredentialResponse']:
        """
        The configuration file access credential.
        """
        return pulumi.get(self, "configuration_access_credential")

    @property
    @pulumi.getter(name="configurationPath")
    def configuration_path(self) -> Optional[Any]:
        """
        The configuration file of the package execution. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "configuration_path")

    @property
    @pulumi.getter(name="packageContent")
    def package_content(self) -> Optional[Any]:
        """
        The embedded package content. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "package_content")

    @property
    @pulumi.getter(name="packageLastModifiedDate")
    def package_last_modified_date(self) -> Optional[str]:
        """
        The embedded package last modified date.
        """
        return pulumi.get(self, "package_last_modified_date")

    @property
    @pulumi.getter(name="packageName")
    def package_name(self) -> Optional[str]:
        """
        The package name.
        """
        return pulumi.get(self, "package_name")

    @property
    @pulumi.getter(name="packagePassword")
    def package_password(self) -> Optional[Any]:
        """
        Password of the package.
        """
        return pulumi.get(self, "package_password")

    @property
    @pulumi.getter(name="packagePath")
    def package_path(self) -> Optional[Any]:
        """
        The SSIS package path. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "package_path")

    @property
    @pulumi.getter
    def type(self) -> Optional[str]:
        """
        The type of SSIS package location.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class SSISPropertyOverrideResponse(dict):
    """
    SSIS property override.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "isSensitive":
            suggest = "is_sensitive"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SSISPropertyOverrideResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SSISPropertyOverrideResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SSISPropertyOverrideResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 value: Any,
                 is_sensitive: Optional[bool] = None):
        """
        SSIS property override.
        :param Any value: SSIS package property override value. Type: string (or Expression with resultType string).
        :param bool is_sensitive: Whether SSIS package property override value is sensitive data. Value will be encrypted in SSISDB if it is true
        """
        pulumi.set(__self__, "value", value)
        if is_sensitive is not None:
            pulumi.set(__self__, "is_sensitive", is_sensitive)

    @property
    @pulumi.getter
    def value(self) -> Any:
        """
        SSIS package property override value. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "value")

    @property
    @pulumi.getter(name="isSensitive")
    def is_sensitive(self) -> Optional[bool]:
        """
        Whether SSIS package property override value is sensitive data. Value will be encrypted in SSISDB if it is true
        """
        return pulumi.get(self, "is_sensitive")


@pulumi.output_type
class SalesforceLinkedServiceResponse(dict):
    """
    Linked service for Salesforce.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "apiVersion":
            suggest = "api_version"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "environmentUrl":
            suggest = "environment_url"
        elif key == "securityToken":
            suggest = "security_token"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SalesforceLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SalesforceLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SalesforceLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 api_version: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 environment_url: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 security_token: Optional[Any] = None,
                 username: Optional[Any] = None):
        """
        Linked service for Salesforce.
        :param str type: Type of linked service.
               Expected value is 'Salesforce'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any api_version: The Salesforce API version used in ADF. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Any environment_url: The URL of Salesforce instance. Default is 'https://login.salesforce.com'. To copy data from sandbox, specify 'https://test.salesforce.com'. To copy data from custom domain, specify, for example, 'https://[domain].my.salesforce.com'. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The password for Basic authentication of the Salesforce instance.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] security_token: The security token is optional to remotely access Salesforce instance.
        :param Any username: The username for Basic authentication of the Salesforce instance. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'Salesforce')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if api_version is not None:
            pulumi.set(__self__, "api_version", api_version)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if environment_url is not None:
            pulumi.set(__self__, "environment_url", environment_url)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if security_token is not None:
            pulumi.set(__self__, "security_token", security_token)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Salesforce'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="apiVersion")
    def api_version(self) -> Optional[Any]:
        """
        The Salesforce API version used in ADF. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "api_version")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter(name="environmentUrl")
    def environment_url(self) -> Optional[Any]:
        """
        The URL of Salesforce instance. Default is 'https://login.salesforce.com'. To copy data from sandbox, specify 'https://test.salesforce.com'. To copy data from custom domain, specify, for example, 'https://[domain].my.salesforce.com'. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "environment_url")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        The password for Basic authentication of the Salesforce instance.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="securityToken")
    def security_token(self) -> Optional[Any]:
        """
        The security token is optional to remotely access Salesforce instance.
        """
        return pulumi.get(self, "security_token")

    @property
    @pulumi.getter
    def username(self) -> Optional[Any]:
        """
        The username for Basic authentication of the Salesforce instance. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "username")


@pulumi.output_type
class SalesforceMarketingCloudLinkedServiceResponse(dict):
    """
    Salesforce Marketing Cloud linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "clientId":
            suggest = "client_id"
        elif key == "clientSecret":
            suggest = "client_secret"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "connectionProperties":
            suggest = "connection_properties"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "useEncryptedEndpoints":
            suggest = "use_encrypted_endpoints"
        elif key == "useHostVerification":
            suggest = "use_host_verification"
        elif key == "usePeerVerification":
            suggest = "use_peer_verification"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SalesforceMarketingCloudLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SalesforceMarketingCloudLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SalesforceMarketingCloudLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 client_id: Optional[Any] = None,
                 client_secret: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 connection_properties: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 use_encrypted_endpoints: Optional[Any] = None,
                 use_host_verification: Optional[Any] = None,
                 use_peer_verification: Optional[Any] = None):
        """
        Salesforce Marketing Cloud linked service.
        :param str type: Type of linked service.
               Expected value is 'SalesforceMarketingCloud'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any client_id: The client ID associated with the Salesforce Marketing Cloud application. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] client_secret: The client secret associated with the Salesforce Marketing Cloud application. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any connection_properties: Properties used to connect to Salesforce Marketing Cloud. It is mutually exclusive with any other properties in the linked service. Type: object.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Any use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. Type: boolean (or Expression with resultType boolean).
        :param Any use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean).
        :param Any use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean).
        """
        pulumi.set(__self__, "type", 'SalesforceMarketingCloud')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if client_id is not None:
            pulumi.set(__self__, "client_id", client_id)
        if client_secret is not None:
            pulumi.set(__self__, "client_secret", client_secret)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if connection_properties is not None:
            pulumi.set(__self__, "connection_properties", connection_properties)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if use_encrypted_endpoints is not None:
            pulumi.set(__self__, "use_encrypted_endpoints", use_encrypted_endpoints)
        if use_host_verification is not None:
            pulumi.set(__self__, "use_host_verification", use_host_verification)
        if use_peer_verification is not None:
            pulumi.set(__self__, "use_peer_verification", use_peer_verification)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'SalesforceMarketingCloud'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="clientId")
    def client_id(self) -> Optional[Any]:
        """
        The client ID associated with the Salesforce Marketing Cloud application. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "client_id")

    @property
    @pulumi.getter(name="clientSecret")
    def client_secret(self) -> Optional[Any]:
        """
        The client secret associated with the Salesforce Marketing Cloud application. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "client_secret")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="connectionProperties")
    def connection_properties(self) -> Optional[Any]:
        """
        Properties used to connect to Salesforce Marketing Cloud. It is mutually exclusive with any other properties in the linked service. Type: object.
        """
        return pulumi.get(self, "connection_properties")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="useEncryptedEndpoints")
    def use_encrypted_endpoints(self) -> Optional[Any]:
        """
        Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "use_encrypted_endpoints")

    @property
    @pulumi.getter(name="useHostVerification")
    def use_host_verification(self) -> Optional[Any]:
        """
        Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "use_host_verification")

    @property
    @pulumi.getter(name="usePeerVerification")
    def use_peer_verification(self) -> Optional[Any]:
        """
        Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "use_peer_verification")


@pulumi.output_type
class SalesforceMarketingCloudObjectDatasetResponse(dict):
    """
    Salesforce Marketing Cloud dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SalesforceMarketingCloudObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SalesforceMarketingCloudObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SalesforceMarketingCloudObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Salesforce Marketing Cloud dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'SalesforceMarketingCloudObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'SalesforceMarketingCloudObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'SalesforceMarketingCloudObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class SalesforceMarketingCloudSourceResponse(dict):
    """
    A copy activity Salesforce Marketing Cloud source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SalesforceMarketingCloudSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SalesforceMarketingCloudSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SalesforceMarketingCloudSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Salesforce Marketing Cloud source.
        :param str type: Copy source type.
               Expected value is 'SalesforceMarketingCloudSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'SalesforceMarketingCloudSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'SalesforceMarketingCloudSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class SalesforceObjectDatasetResponse(dict):
    """
    The Salesforce object dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "objectApiName":
            suggest = "object_api_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SalesforceObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SalesforceObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SalesforceObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 object_api_name: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        The Salesforce object dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'SalesforceObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Any object_api_name: The Salesforce object API name. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'SalesforceObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if object_api_name is not None:
            pulumi.set(__self__, "object_api_name", object_api_name)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'SalesforceObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter(name="objectApiName")
    def object_api_name(self) -> Optional[Any]:
        """
        The Salesforce object API name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "object_api_name")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class SalesforceServiceCloudLinkedServiceResponse(dict):
    """
    Linked service for Salesforce Service Cloud.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "apiVersion":
            suggest = "api_version"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "environmentUrl":
            suggest = "environment_url"
        elif key == "extendedProperties":
            suggest = "extended_properties"
        elif key == "securityToken":
            suggest = "security_token"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SalesforceServiceCloudLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SalesforceServiceCloudLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SalesforceServiceCloudLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 api_version: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 environment_url: Optional[Any] = None,
                 extended_properties: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 security_token: Optional[Any] = None,
                 username: Optional[Any] = None):
        """
        Linked service for Salesforce Service Cloud.
        :param str type: Type of linked service.
               Expected value is 'SalesforceServiceCloud'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any api_version: The Salesforce API version used in ADF. Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Any environment_url: The URL of Salesforce Service Cloud instance. Default is 'https://login.salesforce.com'. To copy data from sandbox, specify 'https://test.salesforce.com'. To copy data from custom domain, specify, for example, 'https://[domain].my.salesforce.com'. Type: string (or Expression with resultType string).
        :param Any extended_properties: Extended properties appended to the connection string. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The password for Basic authentication of the Salesforce instance.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] security_token: The security token is optional to remotely access Salesforce instance.
        :param Any username: The username for Basic authentication of the Salesforce instance. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'SalesforceServiceCloud')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if api_version is not None:
            pulumi.set(__self__, "api_version", api_version)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if environment_url is not None:
            pulumi.set(__self__, "environment_url", environment_url)
        if extended_properties is not None:
            pulumi.set(__self__, "extended_properties", extended_properties)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if security_token is not None:
            pulumi.set(__self__, "security_token", security_token)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'SalesforceServiceCloud'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="apiVersion")
    def api_version(self) -> Optional[Any]:
        """
        The Salesforce API version used in ADF. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "api_version")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter(name="environmentUrl")
    def environment_url(self) -> Optional[Any]:
        """
        The URL of Salesforce Service Cloud instance. Default is 'https://login.salesforce.com'. To copy data from sandbox, specify 'https://test.salesforce.com'. To copy data from custom domain, specify, for example, 'https://[domain].my.salesforce.com'. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "environment_url")

    @property
    @pulumi.getter(name="extendedProperties")
    def extended_properties(self) -> Optional[Any]:
        """
        Extended properties appended to the connection string. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "extended_properties")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        The password for Basic authentication of the Salesforce instance.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="securityToken")
    def security_token(self) -> Optional[Any]:
        """
        The security token is optional to remotely access Salesforce instance.
        """
        return pulumi.get(self, "security_token")

    @property
    @pulumi.getter
    def username(self) -> Optional[Any]:
        """
        The username for Basic authentication of the Salesforce instance. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "username")


@pulumi.output_type
class SalesforceServiceCloudObjectDatasetResponse(dict):
    """
    The Salesforce Service Cloud object dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "objectApiName":
            suggest = "object_api_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SalesforceServiceCloudObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SalesforceServiceCloudObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SalesforceServiceCloudObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 object_api_name: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        The Salesforce Service Cloud object dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'SalesforceServiceCloudObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Any object_api_name: The Salesforce Service Cloud object API name. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'SalesforceServiceCloudObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if object_api_name is not None:
            pulumi.set(__self__, "object_api_name", object_api_name)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'SalesforceServiceCloudObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter(name="objectApiName")
    def object_api_name(self) -> Optional[Any]:
        """
        The Salesforce Service Cloud object API name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "object_api_name")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class SalesforceServiceCloudSinkResponse(dict):
    """
    A copy activity Salesforce Service Cloud sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "externalIdFieldName":
            suggest = "external_id_field_name"
        elif key == "ignoreNullValues":
            suggest = "ignore_null_values"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"
        elif key == "writeBehavior":
            suggest = "write_behavior"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SalesforceServiceCloudSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SalesforceServiceCloudSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SalesforceServiceCloudSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 external_id_field_name: Optional[Any] = None,
                 ignore_null_values: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None,
                 write_behavior: Optional[str] = None):
        """
        A copy activity Salesforce Service Cloud sink.
        :param str type: Copy sink type.
               Expected value is 'SalesforceServiceCloudSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any external_id_field_name: The name of the external ID field for upsert operation. Default value is 'Id' column. Type: string (or Expression with resultType string).
        :param Any ignore_null_values: The flag indicating whether or not to ignore null values from input dataset (except key fields) during write operation. Default value is false. If set it to true, it means ADF will leave the data in the destination object unchanged when doing upsert/update operation and insert defined default value when doing insert operation, versus ADF will update the data in the destination object to NULL when doing upsert/update operation and insert NULL value when doing insert operation. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param str write_behavior: The write behavior for the operation. Default is Insert.
        """
        pulumi.set(__self__, "type", 'SalesforceServiceCloudSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if external_id_field_name is not None:
            pulumi.set(__self__, "external_id_field_name", external_id_field_name)
        if ignore_null_values is not None:
            pulumi.set(__self__, "ignore_null_values", ignore_null_values)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)
        if write_behavior is not None:
            pulumi.set(__self__, "write_behavior", write_behavior)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'SalesforceServiceCloudSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="externalIdFieldName")
    def external_id_field_name(self) -> Optional[Any]:
        """
        The name of the external ID field for upsert operation. Default value is 'Id' column. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "external_id_field_name")

    @property
    @pulumi.getter(name="ignoreNullValues")
    def ignore_null_values(self) -> Optional[Any]:
        """
        The flag indicating whether or not to ignore null values from input dataset (except key fields) during write operation. Default value is false. If set it to true, it means ADF will leave the data in the destination object unchanged when doing upsert/update operation and insert defined default value when doing insert operation, versus ADF will update the data in the destination object to NULL when doing upsert/update operation and insert NULL value when doing insert operation. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "ignore_null_values")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")

    @property
    @pulumi.getter(name="writeBehavior")
    def write_behavior(self) -> Optional[str]:
        """
        The write behavior for the operation. Default is Insert.
        """
        return pulumi.get(self, "write_behavior")


@pulumi.output_type
class SalesforceServiceCloudSourceResponse(dict):
    """
    A copy activity Salesforce Service Cloud source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "readBehavior":
            suggest = "read_behavior"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SalesforceServiceCloudSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SalesforceServiceCloudSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SalesforceServiceCloudSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 read_behavior: Optional[str] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Salesforce Service Cloud source.
        :param str type: Copy source type.
               Expected value is 'SalesforceServiceCloudSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: Database query. Type: string (or Expression with resultType string).
        :param str read_behavior: The read behavior for the operation. Default is Query.
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'SalesforceServiceCloudSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if read_behavior is not None:
            pulumi.set(__self__, "read_behavior", read_behavior)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'SalesforceServiceCloudSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        Database query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="readBehavior")
    def read_behavior(self) -> Optional[str]:
        """
        The read behavior for the operation. Default is Query.
        """
        return pulumi.get(self, "read_behavior")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class SalesforceSinkResponse(dict):
    """
    A copy activity Salesforce sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "externalIdFieldName":
            suggest = "external_id_field_name"
        elif key == "ignoreNullValues":
            suggest = "ignore_null_values"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"
        elif key == "writeBehavior":
            suggest = "write_behavior"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SalesforceSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SalesforceSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SalesforceSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 external_id_field_name: Optional[Any] = None,
                 ignore_null_values: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None,
                 write_behavior: Optional[str] = None):
        """
        A copy activity Salesforce sink.
        :param str type: Copy sink type.
               Expected value is 'SalesforceSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any external_id_field_name: The name of the external ID field for upsert operation. Default value is 'Id' column. Type: string (or Expression with resultType string).
        :param Any ignore_null_values: The flag indicating whether or not to ignore null values from input dataset (except key fields) during write operation. Default value is false. If set it to true, it means ADF will leave the data in the destination object unchanged when doing upsert/update operation and insert defined default value when doing insert operation, versus ADF will update the data in the destination object to NULL when doing upsert/update operation and insert NULL value when doing insert operation. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param str write_behavior: The write behavior for the operation. Default is Insert.
        """
        pulumi.set(__self__, "type", 'SalesforceSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if external_id_field_name is not None:
            pulumi.set(__self__, "external_id_field_name", external_id_field_name)
        if ignore_null_values is not None:
            pulumi.set(__self__, "ignore_null_values", ignore_null_values)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)
        if write_behavior is not None:
            pulumi.set(__self__, "write_behavior", write_behavior)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'SalesforceSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="externalIdFieldName")
    def external_id_field_name(self) -> Optional[Any]:
        """
        The name of the external ID field for upsert operation. Default value is 'Id' column. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "external_id_field_name")

    @property
    @pulumi.getter(name="ignoreNullValues")
    def ignore_null_values(self) -> Optional[Any]:
        """
        The flag indicating whether or not to ignore null values from input dataset (except key fields) during write operation. Default value is false. If set it to true, it means ADF will leave the data in the destination object unchanged when doing upsert/update operation and insert defined default value when doing insert operation, versus ADF will update the data in the destination object to NULL when doing upsert/update operation and insert NULL value when doing insert operation. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "ignore_null_values")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")

    @property
    @pulumi.getter(name="writeBehavior")
    def write_behavior(self) -> Optional[str]:
        """
        The write behavior for the operation. Default is Insert.
        """
        return pulumi.get(self, "write_behavior")


@pulumi.output_type
class SalesforceSourceResponse(dict):
    """
    A copy activity Salesforce source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "readBehavior":
            suggest = "read_behavior"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SalesforceSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SalesforceSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SalesforceSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 read_behavior: Optional[str] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Salesforce source.
        :param str type: Copy source type.
               Expected value is 'SalesforceSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: Database query. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param str read_behavior: The read behavior for the operation. Default is Query.
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'SalesforceSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if read_behavior is not None:
            pulumi.set(__self__, "read_behavior", read_behavior)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'SalesforceSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        Database query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="readBehavior")
    def read_behavior(self) -> Optional[str]:
        """
        The read behavior for the operation. Default is Query.
        """
        return pulumi.get(self, "read_behavior")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class SapBWLinkedServiceResponse(dict):
    """
    SAP Business Warehouse Linked Service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "clientId":
            suggest = "client_id"
        elif key == "systemNumber":
            suggest = "system_number"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "userName":
            suggest = "user_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SapBWLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SapBWLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SapBWLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 client_id: Any,
                 server: Any,
                 system_number: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 user_name: Optional[Any] = None):
        """
        SAP Business Warehouse Linked Service.
        :param Any client_id: Client ID of the client on the BW system. (Usually a three-digit decimal number represented as a string) Type: string (or Expression with resultType string).
        :param Any server: Host name of the SAP BW instance. Type: string (or Expression with resultType string).
        :param Any system_number: System number of the BW system. (Usually a two-digit decimal number represented as a string.) Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'SapBW'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password to access the SAP BW server.
        :param Any user_name: Username to access the SAP BW server. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "client_id", client_id)
        pulumi.set(__self__, "server", server)
        pulumi.set(__self__, "system_number", system_number)
        pulumi.set(__self__, "type", 'SapBW')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if user_name is not None:
            pulumi.set(__self__, "user_name", user_name)

    @property
    @pulumi.getter(name="clientId")
    def client_id(self) -> Any:
        """
        Client ID of the client on the BW system. (Usually a three-digit decimal number represented as a string) Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "client_id")

    @property
    @pulumi.getter
    def server(self) -> Any:
        """
        Host name of the SAP BW instance. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "server")

    @property
    @pulumi.getter(name="systemNumber")
    def system_number(self) -> Any:
        """
        System number of the BW system. (Usually a two-digit decimal number represented as a string.) Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "system_number")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'SapBW'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        Password to access the SAP BW server.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="userName")
    def user_name(self) -> Optional[Any]:
        """
        Username to access the SAP BW server. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "user_name")


@pulumi.output_type
class SapBwCubeDatasetResponse(dict):
    """
    The SAP BW cube dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SapBwCubeDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SapBwCubeDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SapBwCubeDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        The SAP BW cube dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'SapBwCube'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'SapBwCube')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'SapBwCube'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class SapBwSourceResponse(dict):
    """
    A copy activity source for SapBW server via MDX.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SapBwSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SapBwSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SapBwSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for SapBW server via MDX.
        :param str type: Copy source type.
               Expected value is 'SapBwSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: MDX query. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'SapBwSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'SapBwSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        MDX query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class SapCloudForCustomerLinkedServiceResponse(dict):
    """
    Linked service for SAP Cloud for Customer.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SapCloudForCustomerLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SapCloudForCustomerLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SapCloudForCustomerLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 url: Any,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 username: Optional[Any] = None):
        """
        Linked service for SAP Cloud for Customer.
        :param str type: Type of linked service.
               Expected value is 'SapCloudForCustomer'.
        :param Any url: The URL of SAP Cloud for Customer OData API. For example, '[https://[tenantname].crm.ondemand.com/sap/c4c/odata/v1]'. Type: string (or Expression with resultType string).
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Either encryptedCredential or username/password must be provided. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The password for Basic authentication.
        :param Any username: The username for Basic authentication. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'SapCloudForCustomer')
        pulumi.set(__self__, "url", url)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'SapCloudForCustomer'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def url(self) -> Any:
        """
        The URL of SAP Cloud for Customer OData API. For example, '[https://[tenantname].crm.ondemand.com/sap/c4c/odata/v1]'. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "url")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Either encryptedCredential or username/password must be provided. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        The password for Basic authentication.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def username(self) -> Optional[Any]:
        """
        The username for Basic authentication. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "username")


@pulumi.output_type
class SapCloudForCustomerResourceDatasetResponse(dict):
    """
    The path of the SAP Cloud for Customer OData entity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SapCloudForCustomerResourceDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SapCloudForCustomerResourceDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SapCloudForCustomerResourceDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 path: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        The path of the SAP Cloud for Customer OData entity.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param Any path: The path of the SAP Cloud for Customer OData entity. Type: string (or Expression with resultType string).
        :param str type: Type of dataset.
               Expected value is 'SapCloudForCustomerResource'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "path", path)
        pulumi.set(__self__, "type", 'SapCloudForCustomerResource')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def path(self) -> Any:
        """
        The path of the SAP Cloud for Customer OData entity. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "path")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'SapCloudForCustomerResource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class SapCloudForCustomerSinkResponse(dict):
    """
    A copy activity SAP Cloud for Customer sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "httpRequestTimeout":
            suggest = "http_request_timeout"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"
        elif key == "writeBehavior":
            suggest = "write_behavior"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SapCloudForCustomerSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SapCloudForCustomerSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SapCloudForCustomerSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 http_request_timeout: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None,
                 write_behavior: Optional[str] = None):
        """
        A copy activity SAP Cloud for Customer sink.
        :param str type: Copy sink type.
               Expected value is 'SapCloudForCustomerSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any http_request_timeout: The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:05:00. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param str write_behavior: The write behavior for the operation. Default is 'Insert'.
        """
        pulumi.set(__self__, "type", 'SapCloudForCustomerSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if http_request_timeout is not None:
            pulumi.set(__self__, "http_request_timeout", http_request_timeout)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)
        if write_behavior is not None:
            pulumi.set(__self__, "write_behavior", write_behavior)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'SapCloudForCustomerSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="httpRequestTimeout")
    def http_request_timeout(self) -> Optional[Any]:
        """
        The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:05:00. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "http_request_timeout")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")

    @property
    @pulumi.getter(name="writeBehavior")
    def write_behavior(self) -> Optional[str]:
        """
        The write behavior for the operation. Default is 'Insert'.
        """
        return pulumi.get(self, "write_behavior")


@pulumi.output_type
class SapCloudForCustomerSourceResponse(dict):
    """
    A copy activity source for SAP Cloud for Customer source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "httpRequestTimeout":
            suggest = "http_request_timeout"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SapCloudForCustomerSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SapCloudForCustomerSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SapCloudForCustomerSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 http_request_timeout: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for SAP Cloud for Customer source.
        :param str type: Copy source type.
               Expected value is 'SapCloudForCustomerSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any http_request_timeout: The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:05:00. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: SAP Cloud for Customer OData query. For example, "$top=1". Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'SapCloudForCustomerSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if http_request_timeout is not None:
            pulumi.set(__self__, "http_request_timeout", http_request_timeout)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'SapCloudForCustomerSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="httpRequestTimeout")
    def http_request_timeout(self) -> Optional[Any]:
        """
        The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:05:00. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "http_request_timeout")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        SAP Cloud for Customer OData query. For example, "$top=1". Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class SapEccLinkedServiceResponse(dict):
    """
    Linked service for SAP ERP Central Component(SAP ECC).
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SapEccLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SapEccLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SapEccLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 url: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[str] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 username: Optional[str] = None):
        """
        Linked service for SAP ERP Central Component(SAP ECC).
        :param str type: Type of linked service.
               Expected value is 'SapEcc'.
        :param str url: The URL of SAP ECC OData API. For example, '[https://hostname:port/sap/opu/odata/sap/servicename/]'. Type: string (or Expression with resultType string).
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param str encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Either encryptedCredential or username/password must be provided. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The password for Basic authentication.
        :param str username: The username for Basic authentication. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'SapEcc')
        pulumi.set(__self__, "url", url)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'SapEcc'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def url(self) -> str:
        """
        The URL of SAP ECC OData API. For example, '[https://hostname:port/sap/opu/odata/sap/servicename/]'. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "url")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[str]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Either encryptedCredential or username/password must be provided. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        The password for Basic authentication.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def username(self) -> Optional[str]:
        """
        The username for Basic authentication. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "username")


@pulumi.output_type
class SapEccResourceDatasetResponse(dict):
    """
    The path of the SAP ECC OData entity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SapEccResourceDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SapEccResourceDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SapEccResourceDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 path: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        The path of the SAP ECC OData entity.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param Any path: The path of the SAP ECC OData entity. Type: string (or Expression with resultType string).
        :param str type: Type of dataset.
               Expected value is 'SapEccResource'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "path", path)
        pulumi.set(__self__, "type", 'SapEccResource')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def path(self) -> Any:
        """
        The path of the SAP ECC OData entity. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "path")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'SapEccResource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class SapEccSourceResponse(dict):
    """
    A copy activity source for SAP ECC source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "httpRequestTimeout":
            suggest = "http_request_timeout"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SapEccSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SapEccSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SapEccSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 http_request_timeout: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for SAP ECC source.
        :param str type: Copy source type.
               Expected value is 'SapEccSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any http_request_timeout: The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:05:00. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: SAP ECC OData query. For example, "$top=1". Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'SapEccSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if http_request_timeout is not None:
            pulumi.set(__self__, "http_request_timeout", http_request_timeout)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'SapEccSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="httpRequestTimeout")
    def http_request_timeout(self) -> Optional[Any]:
        """
        The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:05:00. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "http_request_timeout")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        SAP ECC OData query. For example, "$top=1". Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class SapHanaLinkedServiceResponse(dict):
    """
    SAP HANA Linked Service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "connectionString":
            suggest = "connection_string"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "userName":
            suggest = "user_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SapHanaLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SapHanaLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SapHanaLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 authentication_type: Optional[str] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 connection_string: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 server: Optional[Any] = None,
                 user_name: Optional[Any] = None):
        """
        SAP HANA Linked Service.
        :param str type: Type of linked service.
               Expected value is 'SapHana'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param str authentication_type: The authentication type to be used to connect to the SAP HANA server.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any connection_string: SAP HANA ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password to access the SAP HANA server.
        :param Any server: Host name of the SAP HANA server. Type: string (or Expression with resultType string).
        :param Any user_name: Username to access the SAP HANA server. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'SapHana')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if authentication_type is not None:
            pulumi.set(__self__, "authentication_type", authentication_type)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if connection_string is not None:
            pulumi.set(__self__, "connection_string", connection_string)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if server is not None:
            pulumi.set(__self__, "server", server)
        if user_name is not None:
            pulumi.set(__self__, "user_name", user_name)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'SapHana'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> Optional[str]:
        """
        The authentication type to be used to connect to the SAP HANA server.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Optional[Any]:
        """
        SAP HANA ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        Password to access the SAP HANA server.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def server(self) -> Optional[Any]:
        """
        Host name of the SAP HANA server. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "server")

    @property
    @pulumi.getter(name="userName")
    def user_name(self) -> Optional[Any]:
        """
        Username to access the SAP HANA server. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "user_name")


@pulumi.output_type
class SapHanaPartitionSettingsResponse(dict):
    """
    The settings that will be leveraged for SAP HANA source partitioning.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "partitionColumnName":
            suggest = "partition_column_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SapHanaPartitionSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SapHanaPartitionSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SapHanaPartitionSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 partition_column_name: Optional[Any] = None):
        """
        The settings that will be leveraged for SAP HANA source partitioning.
        :param Any partition_column_name: The name of the column that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        """
        if partition_column_name is not None:
            pulumi.set(__self__, "partition_column_name", partition_column_name)

    @property
    @pulumi.getter(name="partitionColumnName")
    def partition_column_name(self) -> Optional[Any]:
        """
        The name of the column that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_column_name")


@pulumi.output_type
class SapHanaSourceResponse(dict):
    """
    A copy activity source for SAP HANA source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "packetSize":
            suggest = "packet_size"
        elif key == "partitionOption":
            suggest = "partition_option"
        elif key == "partitionSettings":
            suggest = "partition_settings"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SapHanaSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SapHanaSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SapHanaSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 packet_size: Optional[Any] = None,
                 partition_option: Optional[Any] = None,
                 partition_settings: Optional['outputs.SapHanaPartitionSettingsResponse'] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for SAP HANA source.
        :param str type: Copy source type.
               Expected value is 'SapHanaSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any packet_size: The packet size of data read from SAP HANA. Type: integer(or Expression with resultType integer).
        :param Any partition_option: The partition mechanism that will be used for SAP HANA read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "SapHanaDynamicRange". 
        :param 'SapHanaPartitionSettingsResponse' partition_settings: The settings that will be leveraged for SAP HANA source partitioning.
        :param Any query: SAP HANA Sql query. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'SapHanaSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if packet_size is not None:
            pulumi.set(__self__, "packet_size", packet_size)
        if partition_option is not None:
            pulumi.set(__self__, "partition_option", partition_option)
        if partition_settings is not None:
            pulumi.set(__self__, "partition_settings", partition_settings)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'SapHanaSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="packetSize")
    def packet_size(self) -> Optional[Any]:
        """
        The packet size of data read from SAP HANA. Type: integer(or Expression with resultType integer).
        """
        return pulumi.get(self, "packet_size")

    @property
    @pulumi.getter(name="partitionOption")
    def partition_option(self) -> Optional[Any]:
        """
        The partition mechanism that will be used for SAP HANA read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "SapHanaDynamicRange". 
        """
        return pulumi.get(self, "partition_option")

    @property
    @pulumi.getter(name="partitionSettings")
    def partition_settings(self) -> Optional['outputs.SapHanaPartitionSettingsResponse']:
        """
        The settings that will be leveraged for SAP HANA source partitioning.
        """
        return pulumi.get(self, "partition_settings")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        SAP HANA Sql query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class SapHanaTableDatasetResponse(dict):
    """
    SAP HANA Table properties.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SapHanaTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SapHanaTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SapHanaTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None):
        """
        SAP HANA Table properties.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'SapHanaTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The table name of SAP HANA. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'SapHanaTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'SapHanaTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The table name of SAP HANA. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")


@pulumi.output_type
class SapOpenHubLinkedServiceResponse(dict):
    """
    SAP Business Warehouse Open Hub Destination Linked Service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "clientId":
            suggest = "client_id"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "logonGroup":
            suggest = "logon_group"
        elif key == "messageServer":
            suggest = "message_server"
        elif key == "messageServerService":
            suggest = "message_server_service"
        elif key == "systemId":
            suggest = "system_id"
        elif key == "systemNumber":
            suggest = "system_number"
        elif key == "userName":
            suggest = "user_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SapOpenHubLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SapOpenHubLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SapOpenHubLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 client_id: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 language: Optional[Any] = None,
                 logon_group: Optional[Any] = None,
                 message_server: Optional[Any] = None,
                 message_server_service: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 server: Optional[Any] = None,
                 system_id: Optional[Any] = None,
                 system_number: Optional[Any] = None,
                 user_name: Optional[Any] = None):
        """
        SAP Business Warehouse Open Hub Destination Linked Service.
        :param str type: Type of linked service.
               Expected value is 'SapOpenHub'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any client_id: Client ID of the client on the BW system where the open hub destination is located. (Usually a three-digit decimal number represented as a string) Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Any language: Language of the BW system where the open hub destination is located. The default value is EN. Type: string (or Expression with resultType string).
        :param Any logon_group: The Logon Group for the SAP System. Type: string (or Expression with resultType string).
        :param Any message_server: The hostname of the SAP Message Server. Type: string (or Expression with resultType string).
        :param Any message_server_service: The service name or port number of the Message Server. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password to access the SAP BW server where the open hub destination is located.
        :param Any server: Host name of the SAP BW instance where the open hub destination is located. Type: string (or Expression with resultType string).
        :param Any system_id: SystemID of the SAP system where the table is located. Type: string (or Expression with resultType string).
        :param Any system_number: System number of the BW system where the open hub destination is located. (Usually a two-digit decimal number represented as a string.) Type: string (or Expression with resultType string).
        :param Any user_name: Username to access the SAP BW server where the open hub destination is located. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'SapOpenHub')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if client_id is not None:
            pulumi.set(__self__, "client_id", client_id)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if language is not None:
            pulumi.set(__self__, "language", language)
        if logon_group is not None:
            pulumi.set(__self__, "logon_group", logon_group)
        if message_server is not None:
            pulumi.set(__self__, "message_server", message_server)
        if message_server_service is not None:
            pulumi.set(__self__, "message_server_service", message_server_service)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if server is not None:
            pulumi.set(__self__, "server", server)
        if system_id is not None:
            pulumi.set(__self__, "system_id", system_id)
        if system_number is not None:
            pulumi.set(__self__, "system_number", system_number)
        if user_name is not None:
            pulumi.set(__self__, "user_name", user_name)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'SapOpenHub'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="clientId")
    def client_id(self) -> Optional[Any]:
        """
        Client ID of the client on the BW system where the open hub destination is located. (Usually a three-digit decimal number represented as a string) Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "client_id")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def language(self) -> Optional[Any]:
        """
        Language of the BW system where the open hub destination is located. The default value is EN. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "language")

    @property
    @pulumi.getter(name="logonGroup")
    def logon_group(self) -> Optional[Any]:
        """
        The Logon Group for the SAP System. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "logon_group")

    @property
    @pulumi.getter(name="messageServer")
    def message_server(self) -> Optional[Any]:
        """
        The hostname of the SAP Message Server. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "message_server")

    @property
    @pulumi.getter(name="messageServerService")
    def message_server_service(self) -> Optional[Any]:
        """
        The service name or port number of the Message Server. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "message_server_service")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        Password to access the SAP BW server where the open hub destination is located.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def server(self) -> Optional[Any]:
        """
        Host name of the SAP BW instance where the open hub destination is located. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "server")

    @property
    @pulumi.getter(name="systemId")
    def system_id(self) -> Optional[Any]:
        """
        SystemID of the SAP system where the table is located. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "system_id")

    @property
    @pulumi.getter(name="systemNumber")
    def system_number(self) -> Optional[Any]:
        """
        System number of the BW system where the open hub destination is located. (Usually a two-digit decimal number represented as a string.) Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "system_number")

    @property
    @pulumi.getter(name="userName")
    def user_name(self) -> Optional[Any]:
        """
        Username to access the SAP BW server where the open hub destination is located. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "user_name")


@pulumi.output_type
class SapOpenHubSourceResponse(dict):
    """
    A copy activity source for SAP Business Warehouse Open Hub Destination source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "baseRequestId":
            suggest = "base_request_id"
        elif key == "customRfcReadTableFunctionModule":
            suggest = "custom_rfc_read_table_function_module"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "excludeLastRequest":
            suggest = "exclude_last_request"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sapDataColumnDelimiter":
            suggest = "sap_data_column_delimiter"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SapOpenHubSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SapOpenHubSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SapOpenHubSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 base_request_id: Optional[Any] = None,
                 custom_rfc_read_table_function_module: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 exclude_last_request: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 sap_data_column_delimiter: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for SAP Business Warehouse Open Hub Destination source.
        :param str type: Copy source type.
               Expected value is 'SapOpenHubSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any base_request_id: The ID of request for delta loading. Once it is set, only data with requestId larger than the value of this property will be retrieved. The default value is 0. Type: integer (or Expression with resultType integer ).
        :param Any custom_rfc_read_table_function_module: Specifies the custom RFC function module that will be used to read data from SAP Table. Type: string (or Expression with resultType string).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any exclude_last_request: Whether to exclude the records of the last request. The default value is true. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any sap_data_column_delimiter: The single character that will be used as delimiter passed to SAP RFC as well as splitting the output data retrieved. Type: string (or Expression with resultType string).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'SapOpenHubSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if base_request_id is not None:
            pulumi.set(__self__, "base_request_id", base_request_id)
        if custom_rfc_read_table_function_module is not None:
            pulumi.set(__self__, "custom_rfc_read_table_function_module", custom_rfc_read_table_function_module)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if exclude_last_request is not None:
            pulumi.set(__self__, "exclude_last_request", exclude_last_request)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if sap_data_column_delimiter is not None:
            pulumi.set(__self__, "sap_data_column_delimiter", sap_data_column_delimiter)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'SapOpenHubSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="baseRequestId")
    def base_request_id(self) -> Optional[Any]:
        """
        The ID of request for delta loading. Once it is set, only data with requestId larger than the value of this property will be retrieved. The default value is 0. Type: integer (or Expression with resultType integer ).
        """
        return pulumi.get(self, "base_request_id")

    @property
    @pulumi.getter(name="customRfcReadTableFunctionModule")
    def custom_rfc_read_table_function_module(self) -> Optional[Any]:
        """
        Specifies the custom RFC function module that will be used to read data from SAP Table. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "custom_rfc_read_table_function_module")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="excludeLastRequest")
    def exclude_last_request(self) -> Optional[Any]:
        """
        Whether to exclude the records of the last request. The default value is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "exclude_last_request")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sapDataColumnDelimiter")
    def sap_data_column_delimiter(self) -> Optional[Any]:
        """
        The single character that will be used as delimiter passed to SAP RFC as well as splitting the output data retrieved. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sap_data_column_delimiter")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class SapOpenHubTableDatasetResponse(dict):
    """
    Sap Business Warehouse Open Hub Destination Table properties.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "openHubDestinationName":
            suggest = "open_hub_destination_name"
        elif key == "baseRequestId":
            suggest = "base_request_id"
        elif key == "excludeLastRequest":
            suggest = "exclude_last_request"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SapOpenHubTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SapOpenHubTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SapOpenHubTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 open_hub_destination_name: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 base_request_id: Optional[Any] = None,
                 description: Optional[str] = None,
                 exclude_last_request: Optional[Any] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        Sap Business Warehouse Open Hub Destination Table properties.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param Any open_hub_destination_name: The name of the Open Hub Destination with destination type as Database Table. Type: string (or Expression with resultType string).
        :param str type: Type of dataset.
               Expected value is 'SapOpenHubTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param Any base_request_id: The ID of request for delta loading. Once it is set, only data with requestId larger than the value of this property will be retrieved. The default value is 0. Type: integer (or Expression with resultType integer ).
        :param str description: Dataset description.
        :param Any exclude_last_request: Whether to exclude the records of the last request. The default value is true. Type: boolean (or Expression with resultType boolean).
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "open_hub_destination_name", open_hub_destination_name)
        pulumi.set(__self__, "type", 'SapOpenHubTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if base_request_id is not None:
            pulumi.set(__self__, "base_request_id", base_request_id)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if exclude_last_request is not None:
            pulumi.set(__self__, "exclude_last_request", exclude_last_request)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter(name="openHubDestinationName")
    def open_hub_destination_name(self) -> Any:
        """
        The name of the Open Hub Destination with destination type as Database Table. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "open_hub_destination_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'SapOpenHubTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="baseRequestId")
    def base_request_id(self) -> Optional[Any]:
        """
        The ID of request for delta loading. Once it is set, only data with requestId larger than the value of this property will be retrieved. The default value is 0. Type: integer (or Expression with resultType integer ).
        """
        return pulumi.get(self, "base_request_id")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="excludeLastRequest")
    def exclude_last_request(self) -> Optional[Any]:
        """
        Whether to exclude the records of the last request. The default value is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "exclude_last_request")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class SapTableLinkedServiceResponse(dict):
    """
    SAP Table Linked Service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "clientId":
            suggest = "client_id"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "logonGroup":
            suggest = "logon_group"
        elif key == "messageServer":
            suggest = "message_server"
        elif key == "messageServerService":
            suggest = "message_server_service"
        elif key == "sncLibraryPath":
            suggest = "snc_library_path"
        elif key == "sncMode":
            suggest = "snc_mode"
        elif key == "sncMyName":
            suggest = "snc_my_name"
        elif key == "sncPartnerName":
            suggest = "snc_partner_name"
        elif key == "sncQop":
            suggest = "snc_qop"
        elif key == "systemId":
            suggest = "system_id"
        elif key == "systemNumber":
            suggest = "system_number"
        elif key == "userName":
            suggest = "user_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SapTableLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SapTableLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SapTableLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 client_id: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 language: Optional[Any] = None,
                 logon_group: Optional[Any] = None,
                 message_server: Optional[Any] = None,
                 message_server_service: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 server: Optional[Any] = None,
                 snc_library_path: Optional[Any] = None,
                 snc_mode: Optional[Any] = None,
                 snc_my_name: Optional[Any] = None,
                 snc_partner_name: Optional[Any] = None,
                 snc_qop: Optional[Any] = None,
                 system_id: Optional[Any] = None,
                 system_number: Optional[Any] = None,
                 user_name: Optional[Any] = None):
        """
        SAP Table Linked Service.
        :param str type: Type of linked service.
               Expected value is 'SapTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any client_id: Client ID of the client on the SAP system where the table is located. (Usually a three-digit decimal number represented as a string) Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Any language: Language of the SAP system where the table is located. The default value is EN. Type: string (or Expression with resultType string).
        :param Any logon_group: The Logon Group for the SAP System. Type: string (or Expression with resultType string).
        :param Any message_server: The hostname of the SAP Message Server. Type: string (or Expression with resultType string).
        :param Any message_server_service: The service name or port number of the Message Server. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password to access the SAP server where the table is located.
        :param Any server: Host name of the SAP instance where the table is located. Type: string (or Expression with resultType string).
        :param Any snc_library_path: External security product's library to access the SAP server where the table is located. Type: string (or Expression with resultType string).
        :param Any snc_mode: SNC activation indicator to access the SAP server where the table is located. Must be either 0 (off) or 1 (on). Type: string (or Expression with resultType string).
        :param Any snc_my_name: Initiator's SNC name to access the SAP server where the table is located. Type: string (or Expression with resultType string).
        :param Any snc_partner_name: Communication partner's SNC name to access the SAP server where the table is located. Type: string (or Expression with resultType string).
        :param Any snc_qop: SNC Quality of Protection. Allowed value include: 1, 2, 3, 8, 9. Type: string (or Expression with resultType string).
        :param Any system_id: SystemID of the SAP system where the table is located. Type: string (or Expression with resultType string).
        :param Any system_number: System number of the SAP system where the table is located. (Usually a two-digit decimal number represented as a string.) Type: string (or Expression with resultType string).
        :param Any user_name: Username to access the SAP server where the table is located. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'SapTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if client_id is not None:
            pulumi.set(__self__, "client_id", client_id)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if language is not None:
            pulumi.set(__self__, "language", language)
        if logon_group is not None:
            pulumi.set(__self__, "logon_group", logon_group)
        if message_server is not None:
            pulumi.set(__self__, "message_server", message_server)
        if message_server_service is not None:
            pulumi.set(__self__, "message_server_service", message_server_service)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if server is not None:
            pulumi.set(__self__, "server", server)
        if snc_library_path is not None:
            pulumi.set(__self__, "snc_library_path", snc_library_path)
        if snc_mode is not None:
            pulumi.set(__self__, "snc_mode", snc_mode)
        if snc_my_name is not None:
            pulumi.set(__self__, "snc_my_name", snc_my_name)
        if snc_partner_name is not None:
            pulumi.set(__self__, "snc_partner_name", snc_partner_name)
        if snc_qop is not None:
            pulumi.set(__self__, "snc_qop", snc_qop)
        if system_id is not None:
            pulumi.set(__self__, "system_id", system_id)
        if system_number is not None:
            pulumi.set(__self__, "system_number", system_number)
        if user_name is not None:
            pulumi.set(__self__, "user_name", user_name)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'SapTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="clientId")
    def client_id(self) -> Optional[Any]:
        """
        Client ID of the client on the SAP system where the table is located. (Usually a three-digit decimal number represented as a string) Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "client_id")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def language(self) -> Optional[Any]:
        """
        Language of the SAP system where the table is located. The default value is EN. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "language")

    @property
    @pulumi.getter(name="logonGroup")
    def logon_group(self) -> Optional[Any]:
        """
        The Logon Group for the SAP System. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "logon_group")

    @property
    @pulumi.getter(name="messageServer")
    def message_server(self) -> Optional[Any]:
        """
        The hostname of the SAP Message Server. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "message_server")

    @property
    @pulumi.getter(name="messageServerService")
    def message_server_service(self) -> Optional[Any]:
        """
        The service name or port number of the Message Server. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "message_server_service")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        Password to access the SAP server where the table is located.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def server(self) -> Optional[Any]:
        """
        Host name of the SAP instance where the table is located. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "server")

    @property
    @pulumi.getter(name="sncLibraryPath")
    def snc_library_path(self) -> Optional[Any]:
        """
        External security product's library to access the SAP server where the table is located. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "snc_library_path")

    @property
    @pulumi.getter(name="sncMode")
    def snc_mode(self) -> Optional[Any]:
        """
        SNC activation indicator to access the SAP server where the table is located. Must be either 0 (off) or 1 (on). Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "snc_mode")

    @property
    @pulumi.getter(name="sncMyName")
    def snc_my_name(self) -> Optional[Any]:
        """
        Initiator's SNC name to access the SAP server where the table is located. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "snc_my_name")

    @property
    @pulumi.getter(name="sncPartnerName")
    def snc_partner_name(self) -> Optional[Any]:
        """
        Communication partner's SNC name to access the SAP server where the table is located. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "snc_partner_name")

    @property
    @pulumi.getter(name="sncQop")
    def snc_qop(self) -> Optional[Any]:
        """
        SNC Quality of Protection. Allowed value include: 1, 2, 3, 8, 9. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "snc_qop")

    @property
    @pulumi.getter(name="systemId")
    def system_id(self) -> Optional[Any]:
        """
        SystemID of the SAP system where the table is located. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "system_id")

    @property
    @pulumi.getter(name="systemNumber")
    def system_number(self) -> Optional[Any]:
        """
        System number of the SAP system where the table is located. (Usually a two-digit decimal number represented as a string.) Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "system_number")

    @property
    @pulumi.getter(name="userName")
    def user_name(self) -> Optional[Any]:
        """
        Username to access the SAP server where the table is located. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "user_name")


@pulumi.output_type
class SapTablePartitionSettingsResponse(dict):
    """
    The settings that will be leveraged for SAP table source partitioning.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "maxPartitionsNumber":
            suggest = "max_partitions_number"
        elif key == "partitionColumnName":
            suggest = "partition_column_name"
        elif key == "partitionLowerBound":
            suggest = "partition_lower_bound"
        elif key == "partitionUpperBound":
            suggest = "partition_upper_bound"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SapTablePartitionSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SapTablePartitionSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SapTablePartitionSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 max_partitions_number: Optional[Any] = None,
                 partition_column_name: Optional[Any] = None,
                 partition_lower_bound: Optional[Any] = None,
                 partition_upper_bound: Optional[Any] = None):
        """
        The settings that will be leveraged for SAP table source partitioning.
        :param Any max_partitions_number: The maximum value of partitions the table will be split into. Type: integer (or Expression with resultType string).
        :param Any partition_column_name: The name of the column that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        :param Any partition_lower_bound: The minimum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        :param Any partition_upper_bound: The maximum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        """
        if max_partitions_number is not None:
            pulumi.set(__self__, "max_partitions_number", max_partitions_number)
        if partition_column_name is not None:
            pulumi.set(__self__, "partition_column_name", partition_column_name)
        if partition_lower_bound is not None:
            pulumi.set(__self__, "partition_lower_bound", partition_lower_bound)
        if partition_upper_bound is not None:
            pulumi.set(__self__, "partition_upper_bound", partition_upper_bound)

    @property
    @pulumi.getter(name="maxPartitionsNumber")
    def max_partitions_number(self) -> Optional[Any]:
        """
        The maximum value of partitions the table will be split into. Type: integer (or Expression with resultType string).
        """
        return pulumi.get(self, "max_partitions_number")

    @property
    @pulumi.getter(name="partitionColumnName")
    def partition_column_name(self) -> Optional[Any]:
        """
        The name of the column that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_column_name")

    @property
    @pulumi.getter(name="partitionLowerBound")
    def partition_lower_bound(self) -> Optional[Any]:
        """
        The minimum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_lower_bound")

    @property
    @pulumi.getter(name="partitionUpperBound")
    def partition_upper_bound(self) -> Optional[Any]:
        """
        The maximum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_upper_bound")


@pulumi.output_type
class SapTableResourceDatasetResponse(dict):
    """
    SAP Table Resource properties.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SapTableResourceDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SapTableResourceDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SapTableResourceDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 table_name: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        SAP Table Resource properties.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param Any table_name: The name of the SAP Table. Type: string (or Expression with resultType string).
        :param str type: Type of dataset.
               Expected value is 'SapTableResource'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "table_name", table_name)
        pulumi.set(__self__, "type", 'SapTableResource')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Any:
        """
        The name of the SAP Table. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'SapTableResource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class SapTableSourceResponse(dict):
    """
    A copy activity source for SAP Table source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "batchSize":
            suggest = "batch_size"
        elif key == "customRfcReadTableFunctionModule":
            suggest = "custom_rfc_read_table_function_module"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "partitionOption":
            suggest = "partition_option"
        elif key == "partitionSettings":
            suggest = "partition_settings"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "rfcTableFields":
            suggest = "rfc_table_fields"
        elif key == "rfcTableOptions":
            suggest = "rfc_table_options"
        elif key == "rowCount":
            suggest = "row_count"
        elif key == "rowSkips":
            suggest = "row_skips"
        elif key == "sapDataColumnDelimiter":
            suggest = "sap_data_column_delimiter"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SapTableSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SapTableSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SapTableSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 batch_size: Optional[Any] = None,
                 custom_rfc_read_table_function_module: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 partition_option: Optional[Any] = None,
                 partition_settings: Optional['outputs.SapTablePartitionSettingsResponse'] = None,
                 query_timeout: Optional[Any] = None,
                 rfc_table_fields: Optional[Any] = None,
                 rfc_table_options: Optional[Any] = None,
                 row_count: Optional[Any] = None,
                 row_skips: Optional[Any] = None,
                 sap_data_column_delimiter: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for SAP Table source.
        :param str type: Copy source type.
               Expected value is 'SapTableSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any batch_size: Specifies the maximum number of rows that will be retrieved at a time when retrieving data from SAP Table. Type: integer (or Expression with resultType integer).
        :param Any custom_rfc_read_table_function_module: Specifies the custom RFC function module that will be used to read data from SAP Table. Type: string (or Expression with resultType string).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any partition_option: The partition mechanism that will be used for SAP table read in parallel. Possible values include: "None", "PartitionOnInt", "PartitionOnCalendarYear", "PartitionOnCalendarMonth", "PartitionOnCalendarDate", "PartitionOnTime".
        :param 'SapTablePartitionSettingsResponse' partition_settings: The settings that will be leveraged for SAP table source partitioning.
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any rfc_table_fields: The fields of the SAP table that will be retrieved. For example, column0, column1. Type: string (or Expression with resultType string).
        :param Any rfc_table_options: The options for the filtering of the SAP Table. For example, COLUMN0 EQ SOME VALUE. Type: string (or Expression with resultType string).
        :param Any row_count: The number of rows to be retrieved. Type: integer(or Expression with resultType integer).
        :param Any row_skips: The number of rows that will be skipped. Type: integer (or Expression with resultType integer).
        :param Any sap_data_column_delimiter: The single character that will be used as delimiter passed to SAP RFC as well as splitting the output data retrieved. Type: string (or Expression with resultType string).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'SapTableSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if batch_size is not None:
            pulumi.set(__self__, "batch_size", batch_size)
        if custom_rfc_read_table_function_module is not None:
            pulumi.set(__self__, "custom_rfc_read_table_function_module", custom_rfc_read_table_function_module)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if partition_option is not None:
            pulumi.set(__self__, "partition_option", partition_option)
        if partition_settings is not None:
            pulumi.set(__self__, "partition_settings", partition_settings)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if rfc_table_fields is not None:
            pulumi.set(__self__, "rfc_table_fields", rfc_table_fields)
        if rfc_table_options is not None:
            pulumi.set(__self__, "rfc_table_options", rfc_table_options)
        if row_count is not None:
            pulumi.set(__self__, "row_count", row_count)
        if row_skips is not None:
            pulumi.set(__self__, "row_skips", row_skips)
        if sap_data_column_delimiter is not None:
            pulumi.set(__self__, "sap_data_column_delimiter", sap_data_column_delimiter)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'SapTableSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="batchSize")
    def batch_size(self) -> Optional[Any]:
        """
        Specifies the maximum number of rows that will be retrieved at a time when retrieving data from SAP Table. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "batch_size")

    @property
    @pulumi.getter(name="customRfcReadTableFunctionModule")
    def custom_rfc_read_table_function_module(self) -> Optional[Any]:
        """
        Specifies the custom RFC function module that will be used to read data from SAP Table. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "custom_rfc_read_table_function_module")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="partitionOption")
    def partition_option(self) -> Optional[Any]:
        """
        The partition mechanism that will be used for SAP table read in parallel. Possible values include: "None", "PartitionOnInt", "PartitionOnCalendarYear", "PartitionOnCalendarMonth", "PartitionOnCalendarDate", "PartitionOnTime".
        """
        return pulumi.get(self, "partition_option")

    @property
    @pulumi.getter(name="partitionSettings")
    def partition_settings(self) -> Optional['outputs.SapTablePartitionSettingsResponse']:
        """
        The settings that will be leveraged for SAP table source partitioning.
        """
        return pulumi.get(self, "partition_settings")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="rfcTableFields")
    def rfc_table_fields(self) -> Optional[Any]:
        """
        The fields of the SAP table that will be retrieved. For example, column0, column1. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "rfc_table_fields")

    @property
    @pulumi.getter(name="rfcTableOptions")
    def rfc_table_options(self) -> Optional[Any]:
        """
        The options for the filtering of the SAP Table. For example, COLUMN0 EQ SOME VALUE. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "rfc_table_options")

    @property
    @pulumi.getter(name="rowCount")
    def row_count(self) -> Optional[Any]:
        """
        The number of rows to be retrieved. Type: integer(or Expression with resultType integer).
        """
        return pulumi.get(self, "row_count")

    @property
    @pulumi.getter(name="rowSkips")
    def row_skips(self) -> Optional[Any]:
        """
        The number of rows that will be skipped. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "row_skips")

    @property
    @pulumi.getter(name="sapDataColumnDelimiter")
    def sap_data_column_delimiter(self) -> Optional[Any]:
        """
        The single character that will be used as delimiter passed to SAP RFC as well as splitting the output data retrieved. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sap_data_column_delimiter")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class ScheduleTriggerRecurrenceResponse(dict):
    """
    The workflow trigger recurrence.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "endTime":
            suggest = "end_time"
        elif key == "startTime":
            suggest = "start_time"
        elif key == "timeZone":
            suggest = "time_zone"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ScheduleTriggerRecurrenceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ScheduleTriggerRecurrenceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ScheduleTriggerRecurrenceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 end_time: Optional[str] = None,
                 frequency: Optional[str] = None,
                 interval: Optional[int] = None,
                 schedule: Optional['outputs.RecurrenceScheduleResponse'] = None,
                 start_time: Optional[str] = None,
                 time_zone: Optional[str] = None):
        """
        The workflow trigger recurrence.
        :param str end_time: The end time.
        :param str frequency: The frequency.
        :param int interval: The interval.
        :param 'RecurrenceScheduleResponse' schedule: The recurrence schedule.
        :param str start_time: The start time.
        :param str time_zone: The time zone.
        """
        if end_time is not None:
            pulumi.set(__self__, "end_time", end_time)
        if frequency is not None:
            pulumi.set(__self__, "frequency", frequency)
        if interval is not None:
            pulumi.set(__self__, "interval", interval)
        if schedule is not None:
            pulumi.set(__self__, "schedule", schedule)
        if start_time is not None:
            pulumi.set(__self__, "start_time", start_time)
        if time_zone is not None:
            pulumi.set(__self__, "time_zone", time_zone)

    @property
    @pulumi.getter(name="endTime")
    def end_time(self) -> Optional[str]:
        """
        The end time.
        """
        return pulumi.get(self, "end_time")

    @property
    @pulumi.getter
    def frequency(self) -> Optional[str]:
        """
        The frequency.
        """
        return pulumi.get(self, "frequency")

    @property
    @pulumi.getter
    def interval(self) -> Optional[int]:
        """
        The interval.
        """
        return pulumi.get(self, "interval")

    @property
    @pulumi.getter
    def schedule(self) -> Optional['outputs.RecurrenceScheduleResponse']:
        """
        The recurrence schedule.
        """
        return pulumi.get(self, "schedule")

    @property
    @pulumi.getter(name="startTime")
    def start_time(self) -> Optional[str]:
        """
        The start time.
        """
        return pulumi.get(self, "start_time")

    @property
    @pulumi.getter(name="timeZone")
    def time_zone(self) -> Optional[str]:
        """
        The time zone.
        """
        return pulumi.get(self, "time_zone")


@pulumi.output_type
class ScheduleTriggerResponse(dict):
    """
    Trigger that creates pipeline runs periodically, on schedule.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "runtimeState":
            suggest = "runtime_state"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ScheduleTriggerResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ScheduleTriggerResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ScheduleTriggerResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 recurrence: 'outputs.ScheduleTriggerRecurrenceResponse',
                 runtime_state: str,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 pipelines: Optional[Sequence['outputs.TriggerPipelineReferenceResponse']] = None):
        """
        Trigger that creates pipeline runs periodically, on schedule.
        :param 'ScheduleTriggerRecurrenceResponse' recurrence: Recurrence schedule configuration.
        :param str runtime_state: Indicates if trigger is running or not. Updated when Start/Stop APIs are called on the Trigger.
        :param str type: Trigger type.
               Expected value is 'ScheduleTrigger'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the trigger.
        :param str description: Trigger description.
        :param Sequence['TriggerPipelineReferenceResponse'] pipelines: Pipelines that need to be started.
        """
        pulumi.set(__self__, "recurrence", recurrence)
        pulumi.set(__self__, "runtime_state", runtime_state)
        pulumi.set(__self__, "type", 'ScheduleTrigger')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if pipelines is not None:
            pulumi.set(__self__, "pipelines", pipelines)

    @property
    @pulumi.getter
    def recurrence(self) -> 'outputs.ScheduleTriggerRecurrenceResponse':
        """
        Recurrence schedule configuration.
        """
        return pulumi.get(self, "recurrence")

    @property
    @pulumi.getter(name="runtimeState")
    def runtime_state(self) -> str:
        """
        Indicates if trigger is running or not. Updated when Start/Stop APIs are called on the Trigger.
        """
        return pulumi.get(self, "runtime_state")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Trigger type.
        Expected value is 'ScheduleTrigger'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the trigger.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Trigger description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def pipelines(self) -> Optional[Sequence['outputs.TriggerPipelineReferenceResponse']]:
        """
        Pipelines that need to be started.
        """
        return pulumi.get(self, "pipelines")


@pulumi.output_type
class ScriptActionResponse(dict):
    """
    Custom script action to run on HDI ondemand cluster once it's up.
    """
    def __init__(__self__, *,
                 name: str,
                 roles: Any,
                 uri: str,
                 parameters: Optional[str] = None):
        """
        Custom script action to run on HDI ondemand cluster once it's up.
        :param str name: The user provided name of the script action.
        :param Any roles: The node types on which the script action should be executed.
        :param str uri: The URI for the script action.
        :param str parameters: The parameters for the script action.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "roles", roles)
        pulumi.set(__self__, "uri", uri)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        The user provided name of the script action.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def roles(self) -> Any:
        """
        The node types on which the script action should be executed.
        """
        return pulumi.get(self, "roles")

    @property
    @pulumi.getter
    def uri(self) -> str:
        """
        The URI for the script action.
        """
        return pulumi.get(self, "uri")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[str]:
        """
        The parameters for the script action.
        """
        return pulumi.get(self, "parameters")


@pulumi.output_type
class ScriptActivityParameterResponse(dict):
    """
    Parameters of a script block.
    """
    def __init__(__self__, *,
                 direction: Optional[str] = None,
                 name: Optional[Any] = None,
                 size: Optional[int] = None,
                 type: Optional[str] = None,
                 value: Optional[Any] = None):
        """
        Parameters of a script block.
        :param str direction: The direction of the parameter.
        :param Any name: The name of the parameter. Type: string (or Expression with resultType string).
        :param int size: The size of the output direction parameter.
        :param str type: The type of the parameter.
        :param Any value: The value of the parameter.
        """
        if direction is not None:
            pulumi.set(__self__, "direction", direction)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if size is not None:
            pulumi.set(__self__, "size", size)
        if type is not None:
            pulumi.set(__self__, "type", type)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def direction(self) -> Optional[str]:
        """
        The direction of the parameter.
        """
        return pulumi.get(self, "direction")

    @property
    @pulumi.getter
    def name(self) -> Optional[Any]:
        """
        The name of the parameter. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def size(self) -> Optional[int]:
        """
        The size of the output direction parameter.
        """
        return pulumi.get(self, "size")

    @property
    @pulumi.getter
    def type(self) -> Optional[str]:
        """
        The type of the parameter.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def value(self) -> Optional[Any]:
        """
        The value of the parameter.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class ScriptActivityResponse(dict):
    """
    Script activity type.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "logSettings":
            suggest = "log_settings"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ScriptActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ScriptActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ScriptActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 name: str,
                 type: str,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 log_settings: Optional['outputs.ScriptActivityTypePropertiesResponseLogSettings'] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 scripts: Optional[Sequence['outputs.ScriptActivityScriptBlockResponse']] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        Script activity type.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'Script'.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param 'ScriptActivityTypePropertiesResponseLogSettings' log_settings: Log settings of script activity.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param Sequence['ScriptActivityScriptBlockResponse'] scripts: Array of script blocks. Type: array.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'Script')
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if log_settings is not None:
            pulumi.set(__self__, "log_settings", log_settings)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if scripts is not None:
            pulumi.set(__self__, "scripts", scripts)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'Script'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="logSettings")
    def log_settings(self) -> Optional['outputs.ScriptActivityTypePropertiesResponseLogSettings']:
        """
        Log settings of script activity.
        """
        return pulumi.get(self, "log_settings")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter
    def scripts(self) -> Optional[Sequence['outputs.ScriptActivityScriptBlockResponse']]:
        """
        Array of script blocks. Type: array.
        """
        return pulumi.get(self, "scripts")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class ScriptActivityScriptBlockResponse(dict):
    """
    Script block of scripts.
    """
    def __init__(__self__, *,
                 text: Any,
                 type: str,
                 parameters: Optional[Sequence['outputs.ScriptActivityParameterResponse']] = None):
        """
        Script block of scripts.
        :param Any text: The query text. Type: string (or Expression with resultType string).
        :param str type: The type of the query. Type: string.
        :param Sequence['ScriptActivityParameterResponse'] parameters: Array of script parameters. Type: array.
        """
        pulumi.set(__self__, "text", text)
        pulumi.set(__self__, "type", type)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)

    @property
    @pulumi.getter
    def text(self) -> Any:
        """
        The query text. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "text")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of the query. Type: string.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Sequence['outputs.ScriptActivityParameterResponse']]:
        """
        Array of script parameters. Type: array.
        """
        return pulumi.get(self, "parameters")


@pulumi.output_type
class ScriptActivityTypePropertiesResponseLogSettings(dict):
    """
    Log settings of script activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "logDestination":
            suggest = "log_destination"
        elif key == "logLocationSettings":
            suggest = "log_location_settings"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ScriptActivityTypePropertiesResponseLogSettings. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ScriptActivityTypePropertiesResponseLogSettings.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ScriptActivityTypePropertiesResponseLogSettings.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 log_destination: str,
                 log_location_settings: Optional['outputs.LogLocationSettingsResponse'] = None):
        """
        Log settings of script activity.
        :param str log_destination: The destination of logs. Type: string.
        :param 'LogLocationSettingsResponse' log_location_settings: Log location settings customer needs to provide when enabling log.
        """
        pulumi.set(__self__, "log_destination", log_destination)
        if log_location_settings is not None:
            pulumi.set(__self__, "log_location_settings", log_location_settings)

    @property
    @pulumi.getter(name="logDestination")
    def log_destination(self) -> str:
        """
        The destination of logs. Type: string.
        """
        return pulumi.get(self, "log_destination")

    @property
    @pulumi.getter(name="logLocationSettings")
    def log_location_settings(self) -> Optional['outputs.LogLocationSettingsResponse']:
        """
        Log location settings customer needs to provide when enabling log.
        """
        return pulumi.get(self, "log_location_settings")


@pulumi.output_type
class SecureStringResponse(dict):
    """
    Azure Data Factory secure string definition. The string value will be masked with asterisks '*' during Get or List API calls.
    """
    def __init__(__self__, *,
                 type: str,
                 value: str):
        """
        Azure Data Factory secure string definition. The string value will be masked with asterisks '*' during Get or List API calls.
        :param str type: Type of the secret.
               Expected value is 'SecureString'.
        :param str value: Value of secure string.
        """
        pulumi.set(__self__, "type", 'SecureString')
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of the secret.
        Expected value is 'SecureString'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        Value of secure string.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class SelfDependencyTumblingWindowTriggerReferenceResponse(dict):
    """
    Self referenced tumbling window trigger dependency.
    """
    def __init__(__self__, *,
                 offset: str,
                 type: str,
                 size: Optional[str] = None):
        """
        Self referenced tumbling window trigger dependency.
        :param str offset: Timespan applied to the start time of a tumbling window when evaluating dependency.
        :param str type: The type of dependency reference.
               Expected value is 'SelfDependencyTumblingWindowTriggerReference'.
        :param str size: The size of the window when evaluating the dependency. If undefined the frequency of the tumbling window will be used.
        """
        pulumi.set(__self__, "offset", offset)
        pulumi.set(__self__, "type", 'SelfDependencyTumblingWindowTriggerReference')
        if size is not None:
            pulumi.set(__self__, "size", size)

    @property
    @pulumi.getter
    def offset(self) -> str:
        """
        Timespan applied to the start time of a tumbling window when evaluating dependency.
        """
        return pulumi.get(self, "offset")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of dependency reference.
        Expected value is 'SelfDependencyTumblingWindowTriggerReference'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def size(self) -> Optional[str]:
        """
        The size of the window when evaluating the dependency. If undefined the frequency of the tumbling window will be used.
        """
        return pulumi.get(self, "size")


@pulumi.output_type
class SelfHostedIntegrationRuntimeNodeResponse(dict):
    """
    Properties of Self-hosted integration runtime node.
    """
    def __init__(__self__, *,
                 capabilities: Mapping[str, str],
                 concurrent_jobs_limit: int,
                 expiry_time: str,
                 host_service_uri: str,
                 is_active_dispatcher: bool,
                 last_connect_time: str,
                 last_end_update_time: str,
                 last_start_time: str,
                 last_start_update_time: str,
                 last_stop_time: str,
                 last_update_result: str,
                 machine_name: str,
                 max_concurrent_jobs: int,
                 node_name: str,
                 register_time: str,
                 status: str,
                 version: str,
                 version_status: str):
        """
        Properties of Self-hosted integration runtime node.
        :param Mapping[str, str] capabilities: The integration runtime capabilities dictionary
        :param int concurrent_jobs_limit: Maximum concurrent jobs on the integration runtime node.
        :param str expiry_time: The time at which the integration runtime will expire in ISO8601 format.
        :param str host_service_uri: URI for the host machine of the integration runtime.
        :param bool is_active_dispatcher: Indicates whether this node is the active dispatcher for integration runtime requests.
        :param str last_connect_time: The most recent time at which the integration runtime was connected in ISO8601 format.
        :param str last_end_update_time: The last time for the integration runtime node update end.
        :param str last_start_time: The time the node last started up.
        :param str last_start_update_time: The last time for the integration runtime node update start.
        :param str last_stop_time: The integration runtime node last stop time.
        :param str last_update_result: The result of the last integration runtime node update.
        :param str machine_name: Machine name of the integration runtime node.
        :param int max_concurrent_jobs: The maximum concurrent jobs in this integration runtime.
        :param str node_name: Name of the integration runtime node.
        :param str register_time: The time at which the integration runtime node was registered in ISO8601 format.
        :param str status: Status of the integration runtime node.
        :param str version: Version of the integration runtime node.
        :param str version_status: Status of the integration runtime node version.
        """
        pulumi.set(__self__, "capabilities", capabilities)
        pulumi.set(__self__, "concurrent_jobs_limit", concurrent_jobs_limit)
        pulumi.set(__self__, "expiry_time", expiry_time)
        pulumi.set(__self__, "host_service_uri", host_service_uri)
        pulumi.set(__self__, "is_active_dispatcher", is_active_dispatcher)
        pulumi.set(__self__, "last_connect_time", last_connect_time)
        pulumi.set(__self__, "last_end_update_time", last_end_update_time)
        pulumi.set(__self__, "last_start_time", last_start_time)
        pulumi.set(__self__, "last_start_update_time", last_start_update_time)
        pulumi.set(__self__, "last_stop_time", last_stop_time)
        pulumi.set(__self__, "last_update_result", last_update_result)
        pulumi.set(__self__, "machine_name", machine_name)
        pulumi.set(__self__, "max_concurrent_jobs", max_concurrent_jobs)
        pulumi.set(__self__, "node_name", node_name)
        pulumi.set(__self__, "register_time", register_time)
        pulumi.set(__self__, "status", status)
        pulumi.set(__self__, "version", version)
        pulumi.set(__self__, "version_status", version_status)

    @property
    @pulumi.getter
    def capabilities(self) -> Mapping[str, str]:
        """
        The integration runtime capabilities dictionary
        """
        return pulumi.get(self, "capabilities")

    @property
    @pulumi.getter(name="concurrentJobsLimit")
    def concurrent_jobs_limit(self) -> int:
        """
        Maximum concurrent jobs on the integration runtime node.
        """
        return pulumi.get(self, "concurrent_jobs_limit")

    @property
    @pulumi.getter(name="expiryTime")
    def expiry_time(self) -> str:
        """
        The time at which the integration runtime will expire in ISO8601 format.
        """
        return pulumi.get(self, "expiry_time")

    @property
    @pulumi.getter(name="hostServiceUri")
    def host_service_uri(self) -> str:
        """
        URI for the host machine of the integration runtime.
        """
        return pulumi.get(self, "host_service_uri")

    @property
    @pulumi.getter(name="isActiveDispatcher")
    def is_active_dispatcher(self) -> bool:
        """
        Indicates whether this node is the active dispatcher for integration runtime requests.
        """
        return pulumi.get(self, "is_active_dispatcher")

    @property
    @pulumi.getter(name="lastConnectTime")
    def last_connect_time(self) -> str:
        """
        The most recent time at which the integration runtime was connected in ISO8601 format.
        """
        return pulumi.get(self, "last_connect_time")

    @property
    @pulumi.getter(name="lastEndUpdateTime")
    def last_end_update_time(self) -> str:
        """
        The last time for the integration runtime node update end.
        """
        return pulumi.get(self, "last_end_update_time")

    @property
    @pulumi.getter(name="lastStartTime")
    def last_start_time(self) -> str:
        """
        The time the node last started up.
        """
        return pulumi.get(self, "last_start_time")

    @property
    @pulumi.getter(name="lastStartUpdateTime")
    def last_start_update_time(self) -> str:
        """
        The last time for the integration runtime node update start.
        """
        return pulumi.get(self, "last_start_update_time")

    @property
    @pulumi.getter(name="lastStopTime")
    def last_stop_time(self) -> str:
        """
        The integration runtime node last stop time.
        """
        return pulumi.get(self, "last_stop_time")

    @property
    @pulumi.getter(name="lastUpdateResult")
    def last_update_result(self) -> str:
        """
        The result of the last integration runtime node update.
        """
        return pulumi.get(self, "last_update_result")

    @property
    @pulumi.getter(name="machineName")
    def machine_name(self) -> str:
        """
        Machine name of the integration runtime node.
        """
        return pulumi.get(self, "machine_name")

    @property
    @pulumi.getter(name="maxConcurrentJobs")
    def max_concurrent_jobs(self) -> int:
        """
        The maximum concurrent jobs in this integration runtime.
        """
        return pulumi.get(self, "max_concurrent_jobs")

    @property
    @pulumi.getter(name="nodeName")
    def node_name(self) -> str:
        """
        Name of the integration runtime node.
        """
        return pulumi.get(self, "node_name")

    @property
    @pulumi.getter(name="registerTime")
    def register_time(self) -> str:
        """
        The time at which the integration runtime node was registered in ISO8601 format.
        """
        return pulumi.get(self, "register_time")

    @property
    @pulumi.getter
    def status(self) -> str:
        """
        Status of the integration runtime node.
        """
        return pulumi.get(self, "status")

    @property
    @pulumi.getter
    def version(self) -> str:
        """
        Version of the integration runtime node.
        """
        return pulumi.get(self, "version")

    @property
    @pulumi.getter(name="versionStatus")
    def version_status(self) -> str:
        """
        Status of the integration runtime node version.
        """
        return pulumi.get(self, "version_status")


@pulumi.output_type
class SelfHostedIntegrationRuntimeResponse(dict):
    """
    Self-hosted integration runtime.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedInfo":
            suggest = "linked_info"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SelfHostedIntegrationRuntimeResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SelfHostedIntegrationRuntimeResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SelfHostedIntegrationRuntimeResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 description: Optional[str] = None,
                 linked_info: Optional[Any] = None):
        """
        Self-hosted integration runtime.
        :param str type: The type of integration runtime.
               Expected value is 'SelfHosted'.
        :param str description: Integration runtime description.
        :param Union['LinkedIntegrationRuntimeKeyAuthorizationResponse', 'LinkedIntegrationRuntimeRbacAuthorizationResponse'] linked_info: The base definition of a linked integration runtime.
        """
        pulumi.set(__self__, "type", 'SelfHosted')
        if description is not None:
            pulumi.set(__self__, "description", description)
        if linked_info is not None:
            pulumi.set(__self__, "linked_info", linked_info)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of integration runtime.
        Expected value is 'SelfHosted'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Integration runtime description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="linkedInfo")
    def linked_info(self) -> Optional[Any]:
        """
        The base definition of a linked integration runtime.
        """
        return pulumi.get(self, "linked_info")


@pulumi.output_type
class SelfHostedIntegrationRuntimeStatusResponse(dict):
    """
    Self-hosted integration runtime status.
    """
    def __init__(__self__, *,
                 auto_update: str,
                 auto_update_eta: str,
                 capabilities: Mapping[str, str],
                 create_time: str,
                 data_factory_name: str,
                 internal_channel_encryption: str,
                 latest_version: str,
                 local_time_zone_offset: str,
                 pushed_version: str,
                 scheduled_update_date: str,
                 service_urls: Sequence[str],
                 state: str,
                 task_queue_id: str,
                 type: str,
                 update_delay_offset: str,
                 version: str,
                 version_status: str,
                 links: Optional[Sequence['outputs.LinkedIntegrationRuntimeResponse']] = None,
                 nodes: Optional[Sequence['outputs.SelfHostedIntegrationRuntimeNodeResponse']] = None):
        """
        Self-hosted integration runtime status.
        :param str auto_update: Whether Self-hosted integration runtime auto update has been turned on.
        :param str auto_update_eta: The estimated time when the self-hosted integration runtime will be updated.
        :param Mapping[str, str] capabilities: Object with additional information about integration runtime capabilities.
        :param str create_time: The time at which the integration runtime was created, in ISO8601 format.
        :param str data_factory_name: The data factory name which the integration runtime belong to.
        :param str internal_channel_encryption: It is used to set the encryption mode for node-node communication channel (when more than 2 self-hosted integration runtime nodes exist).
        :param str latest_version: The latest version on download center.
        :param str local_time_zone_offset: The local time zone offset in hours.
        :param str pushed_version: The version that the integration runtime is going to update to.
        :param str scheduled_update_date: The date at which the integration runtime will be scheduled to update, in ISO8601 format.
        :param Sequence[str] service_urls: The URLs for the services used in integration runtime backend service.
        :param str state: The state of integration runtime.
        :param str task_queue_id: The task queue id of the integration runtime.
        :param str type: The type of integration runtime.
               Expected value is 'SelfHosted'.
        :param str update_delay_offset: The time in the date scheduled by service to update the integration runtime, e.g., PT03H is 3 hours
        :param str version: Version of the integration runtime.
        :param str version_status: Status of the integration runtime version.
        :param Sequence['LinkedIntegrationRuntimeResponse'] links: The list of linked integration runtimes that are created to share with this integration runtime.
        :param Sequence['SelfHostedIntegrationRuntimeNodeResponse'] nodes: The list of nodes for this integration runtime.
        """
        pulumi.set(__self__, "auto_update", auto_update)
        pulumi.set(__self__, "auto_update_eta", auto_update_eta)
        pulumi.set(__self__, "capabilities", capabilities)
        pulumi.set(__self__, "create_time", create_time)
        pulumi.set(__self__, "data_factory_name", data_factory_name)
        pulumi.set(__self__, "internal_channel_encryption", internal_channel_encryption)
        pulumi.set(__self__, "latest_version", latest_version)
        pulumi.set(__self__, "local_time_zone_offset", local_time_zone_offset)
        pulumi.set(__self__, "pushed_version", pushed_version)
        pulumi.set(__self__, "scheduled_update_date", scheduled_update_date)
        pulumi.set(__self__, "service_urls", service_urls)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "task_queue_id", task_queue_id)
        pulumi.set(__self__, "type", 'SelfHosted')
        pulumi.set(__self__, "update_delay_offset", update_delay_offset)
        pulumi.set(__self__, "version", version)
        pulumi.set(__self__, "version_status", version_status)
        if links is not None:
            pulumi.set(__self__, "links", links)
        if nodes is not None:
            pulumi.set(__self__, "nodes", nodes)

    @property
    @pulumi.getter(name="autoUpdate")
    def auto_update(self) -> str:
        """
        Whether Self-hosted integration runtime auto update has been turned on.
        """
        return pulumi.get(self, "auto_update")

    @property
    @pulumi.getter(name="autoUpdateETA")
    def auto_update_eta(self) -> str:
        """
        The estimated time when the self-hosted integration runtime will be updated.
        """
        return pulumi.get(self, "auto_update_eta")

    @property
    @pulumi.getter
    def capabilities(self) -> Mapping[str, str]:
        """
        Object with additional information about integration runtime capabilities.
        """
        return pulumi.get(self, "capabilities")

    @property
    @pulumi.getter(name="createTime")
    def create_time(self) -> str:
        """
        The time at which the integration runtime was created, in ISO8601 format.
        """
        return pulumi.get(self, "create_time")

    @property
    @pulumi.getter(name="dataFactoryName")
    def data_factory_name(self) -> str:
        """
        The data factory name which the integration runtime belong to.
        """
        return pulumi.get(self, "data_factory_name")

    @property
    @pulumi.getter(name="internalChannelEncryption")
    def internal_channel_encryption(self) -> str:
        """
        It is used to set the encryption mode for node-node communication channel (when more than 2 self-hosted integration runtime nodes exist).
        """
        return pulumi.get(self, "internal_channel_encryption")

    @property
    @pulumi.getter(name="latestVersion")
    def latest_version(self) -> str:
        """
        The latest version on download center.
        """
        return pulumi.get(self, "latest_version")

    @property
    @pulumi.getter(name="localTimeZoneOffset")
    def local_time_zone_offset(self) -> str:
        """
        The local time zone offset in hours.
        """
        return pulumi.get(self, "local_time_zone_offset")

    @property
    @pulumi.getter(name="pushedVersion")
    def pushed_version(self) -> str:
        """
        The version that the integration runtime is going to update to.
        """
        return pulumi.get(self, "pushed_version")

    @property
    @pulumi.getter(name="scheduledUpdateDate")
    def scheduled_update_date(self) -> str:
        """
        The date at which the integration runtime will be scheduled to update, in ISO8601 format.
        """
        return pulumi.get(self, "scheduled_update_date")

    @property
    @pulumi.getter(name="serviceUrls")
    def service_urls(self) -> Sequence[str]:
        """
        The URLs for the services used in integration runtime backend service.
        """
        return pulumi.get(self, "service_urls")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        The state of integration runtime.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter(name="taskQueueId")
    def task_queue_id(self) -> str:
        """
        The task queue id of the integration runtime.
        """
        return pulumi.get(self, "task_queue_id")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of integration runtime.
        Expected value is 'SelfHosted'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="updateDelayOffset")
    def update_delay_offset(self) -> str:
        """
        The time in the date scheduled by service to update the integration runtime, e.g., PT03H is 3 hours
        """
        return pulumi.get(self, "update_delay_offset")

    @property
    @pulumi.getter
    def version(self) -> str:
        """
        Version of the integration runtime.
        """
        return pulumi.get(self, "version")

    @property
    @pulumi.getter(name="versionStatus")
    def version_status(self) -> str:
        """
        Status of the integration runtime version.
        """
        return pulumi.get(self, "version_status")

    @property
    @pulumi.getter
    def links(self) -> Optional[Sequence['outputs.LinkedIntegrationRuntimeResponse']]:
        """
        The list of linked integration runtimes that are created to share with this integration runtime.
        """
        return pulumi.get(self, "links")

    @property
    @pulumi.getter
    def nodes(self) -> Optional[Sequence['outputs.SelfHostedIntegrationRuntimeNodeResponse']]:
        """
        The list of nodes for this integration runtime.
        """
        return pulumi.get(self, "nodes")


@pulumi.output_type
class ServiceNowLinkedServiceResponse(dict):
    """
    ServiceNow server linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"
        elif key == "clientId":
            suggest = "client_id"
        elif key == "clientSecret":
            suggest = "client_secret"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "useEncryptedEndpoints":
            suggest = "use_encrypted_endpoints"
        elif key == "useHostVerification":
            suggest = "use_host_verification"
        elif key == "usePeerVerification":
            suggest = "use_peer_verification"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ServiceNowLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ServiceNowLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ServiceNowLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 authentication_type: str,
                 endpoint: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 client_id: Optional[Any] = None,
                 client_secret: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 use_encrypted_endpoints: Optional[Any] = None,
                 use_host_verification: Optional[Any] = None,
                 use_peer_verification: Optional[Any] = None,
                 username: Optional[Any] = None):
        """
        ServiceNow server linked service.
        :param str authentication_type: The authentication type to use.
        :param Any endpoint: The endpoint of the ServiceNow server. (i.e. <instance>.service-now.com)
        :param str type: Type of linked service.
               Expected value is 'ServiceNow'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any client_id: The client id for OAuth2 authentication.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] client_secret: The client secret for OAuth2 authentication.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The password corresponding to the user name for Basic and OAuth2 authentication.
        :param Any use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        :param Any use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        :param Any use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        :param Any username: The user name used to connect to the ServiceNow server for Basic and OAuth2 authentication.
        """
        pulumi.set(__self__, "authentication_type", authentication_type)
        pulumi.set(__self__, "endpoint", endpoint)
        pulumi.set(__self__, "type", 'ServiceNow')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if client_id is not None:
            pulumi.set(__self__, "client_id", client_id)
        if client_secret is not None:
            pulumi.set(__self__, "client_secret", client_secret)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if use_encrypted_endpoints is not None:
            pulumi.set(__self__, "use_encrypted_endpoints", use_encrypted_endpoints)
        if use_host_verification is not None:
            pulumi.set(__self__, "use_host_verification", use_host_verification)
        if use_peer_verification is not None:
            pulumi.set(__self__, "use_peer_verification", use_peer_verification)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> str:
        """
        The authentication type to use.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter
    def endpoint(self) -> Any:
        """
        The endpoint of the ServiceNow server. (i.e. <instance>.service-now.com)
        """
        return pulumi.get(self, "endpoint")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'ServiceNow'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="clientId")
    def client_id(self) -> Optional[Any]:
        """
        The client id for OAuth2 authentication.
        """
        return pulumi.get(self, "client_id")

    @property
    @pulumi.getter(name="clientSecret")
    def client_secret(self) -> Optional[Any]:
        """
        The client secret for OAuth2 authentication.
        """
        return pulumi.get(self, "client_secret")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        The password corresponding to the user name for Basic and OAuth2 authentication.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="useEncryptedEndpoints")
    def use_encrypted_endpoints(self) -> Optional[Any]:
        """
        Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        """
        return pulumi.get(self, "use_encrypted_endpoints")

    @property
    @pulumi.getter(name="useHostVerification")
    def use_host_verification(self) -> Optional[Any]:
        """
        Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_host_verification")

    @property
    @pulumi.getter(name="usePeerVerification")
    def use_peer_verification(self) -> Optional[Any]:
        """
        Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_peer_verification")

    @property
    @pulumi.getter
    def username(self) -> Optional[Any]:
        """
        The user name used to connect to the ServiceNow server for Basic and OAuth2 authentication.
        """
        return pulumi.get(self, "username")


@pulumi.output_type
class ServiceNowObjectDatasetResponse(dict):
    """
    ServiceNow server dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ServiceNowObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ServiceNowObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ServiceNowObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        ServiceNow server dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'ServiceNowObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'ServiceNowObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'ServiceNowObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class ServiceNowSourceResponse(dict):
    """
    A copy activity ServiceNow server source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ServiceNowSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ServiceNowSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ServiceNowSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity ServiceNow server source.
        :param str type: Copy source type.
               Expected value is 'ServiceNowSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'ServiceNowSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'ServiceNowSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class SetVariableActivityResponse(dict):
    """
    Set value for a Variable.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dependsOn":
            suggest = "depends_on"
        elif key == "userProperties":
            suggest = "user_properties"
        elif key == "variableName":
            suggest = "variable_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SetVariableActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SetVariableActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SetVariableActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 type: str,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None,
                 value: Optional[Any] = None,
                 variable_name: Optional[str] = None):
        """
        Set value for a Variable.
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'SetVariable'.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        :param Any value: Value to be set. Could be a static value or Expression
        :param str variable_name: Name of the variable whose value needs to be set.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'SetVariable')
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)
        if value is not None:
            pulumi.set(__self__, "value", value)
        if variable_name is not None:
            pulumi.set(__self__, "variable_name", variable_name)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'SetVariable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")

    @property
    @pulumi.getter
    def value(self) -> Optional[Any]:
        """
        Value to be set. Could be a static value or Expression
        """
        return pulumi.get(self, "value")

    @property
    @pulumi.getter(name="variableName")
    def variable_name(self) -> Optional[str]:
        """
        Name of the variable whose value needs to be set.
        """
        return pulumi.get(self, "variable_name")


@pulumi.output_type
class SftpLocationResponse(dict):
    """
    The location of SFTP dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "fileName":
            suggest = "file_name"
        elif key == "folderPath":
            suggest = "folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SftpLocationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SftpLocationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SftpLocationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 file_name: Optional[Any] = None,
                 folder_path: Optional[Any] = None):
        """
        The location of SFTP dataset.
        :param str type: Type of dataset storage location.
               Expected value is 'SftpLocation'.
        :param Any file_name: Specify the file name of dataset. Type: string (or Expression with resultType string).
        :param Any folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string)
        """
        pulumi.set(__self__, "type", 'SftpLocation')
        if file_name is not None:
            pulumi.set(__self__, "file_name", file_name)
        if folder_path is not None:
            pulumi.set(__self__, "folder_path", folder_path)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset storage location.
        Expected value is 'SftpLocation'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="fileName")
    def file_name(self) -> Optional[Any]:
        """
        Specify the file name of dataset. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_name")

    @property
    @pulumi.getter(name="folderPath")
    def folder_path(self) -> Optional[Any]:
        """
        Specify the folder path of dataset. Type: string (or Expression with resultType string)
        """
        return pulumi.get(self, "folder_path")


@pulumi.output_type
class SftpReadSettingsResponse(dict):
    """
    Sftp read settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deleteFilesAfterCompletion":
            suggest = "delete_files_after_completion"
        elif key == "disableChunking":
            suggest = "disable_chunking"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "enablePartitionDiscovery":
            suggest = "enable_partition_discovery"
        elif key == "fileListPath":
            suggest = "file_list_path"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "modifiedDatetimeEnd":
            suggest = "modified_datetime_end"
        elif key == "modifiedDatetimeStart":
            suggest = "modified_datetime_start"
        elif key == "partitionRootPath":
            suggest = "partition_root_path"
        elif key == "wildcardFileName":
            suggest = "wildcard_file_name"
        elif key == "wildcardFolderPath":
            suggest = "wildcard_folder_path"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SftpReadSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SftpReadSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SftpReadSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 delete_files_after_completion: Optional[Any] = None,
                 disable_chunking: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 enable_partition_discovery: Optional[bool] = None,
                 file_list_path: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 modified_datetime_end: Optional[Any] = None,
                 modified_datetime_start: Optional[Any] = None,
                 partition_root_path: Optional[Any] = None,
                 recursive: Optional[Any] = None,
                 wildcard_file_name: Optional[Any] = None,
                 wildcard_folder_path: Optional[Any] = None):
        """
        Sftp read settings.
        :param str type: The read setting type.
               Expected value is 'SftpReadSettings'.
        :param Any delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any disable_chunking: If true, disable parallel reading within each file. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param bool enable_partition_discovery: Indicates whether to enable partition discovery.
        :param Any file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string).
        :param Any modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string).
        :param Any partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        :param Any recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        :param Any wildcard_file_name: Sftp wildcardFileName. Type: string (or Expression with resultType string).
        :param Any wildcard_folder_path: Sftp wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'SftpReadSettings')
        if delete_files_after_completion is not None:
            pulumi.set(__self__, "delete_files_after_completion", delete_files_after_completion)
        if disable_chunking is not None:
            pulumi.set(__self__, "disable_chunking", disable_chunking)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if enable_partition_discovery is not None:
            pulumi.set(__self__, "enable_partition_discovery", enable_partition_discovery)
        if file_list_path is not None:
            pulumi.set(__self__, "file_list_path", file_list_path)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if modified_datetime_end is not None:
            pulumi.set(__self__, "modified_datetime_end", modified_datetime_end)
        if modified_datetime_start is not None:
            pulumi.set(__self__, "modified_datetime_start", modified_datetime_start)
        if partition_root_path is not None:
            pulumi.set(__self__, "partition_root_path", partition_root_path)
        if recursive is not None:
            pulumi.set(__self__, "recursive", recursive)
        if wildcard_file_name is not None:
            pulumi.set(__self__, "wildcard_file_name", wildcard_file_name)
        if wildcard_folder_path is not None:
            pulumi.set(__self__, "wildcard_folder_path", wildcard_folder_path)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The read setting type.
        Expected value is 'SftpReadSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="deleteFilesAfterCompletion")
    def delete_files_after_completion(self) -> Optional[Any]:
        """
        Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "delete_files_after_completion")

    @property
    @pulumi.getter(name="disableChunking")
    def disable_chunking(self) -> Optional[Any]:
        """
        If true, disable parallel reading within each file. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_chunking")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="enablePartitionDiscovery")
    def enable_partition_discovery(self) -> Optional[bool]:
        """
        Indicates whether to enable partition discovery.
        """
        return pulumi.get(self, "enable_partition_discovery")

    @property
    @pulumi.getter(name="fileListPath")
    def file_list_path(self) -> Optional[Any]:
        """
        Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "file_list_path")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="modifiedDatetimeEnd")
    def modified_datetime_end(self) -> Optional[Any]:
        """
        The end of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_end")

    @property
    @pulumi.getter(name="modifiedDatetimeStart")
    def modified_datetime_start(self) -> Optional[Any]:
        """
        The start of file's modified datetime. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "modified_datetime_start")

    @property
    @pulumi.getter(name="partitionRootPath")
    def partition_root_path(self) -> Optional[Any]:
        """
        Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_root_path")

    @property
    @pulumi.getter
    def recursive(self) -> Optional[Any]:
        """
        If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "recursive")

    @property
    @pulumi.getter(name="wildcardFileName")
    def wildcard_file_name(self) -> Optional[Any]:
        """
        Sftp wildcardFileName. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_file_name")

    @property
    @pulumi.getter(name="wildcardFolderPath")
    def wildcard_folder_path(self) -> Optional[Any]:
        """
        Sftp wildcardFolderPath. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "wildcard_folder_path")


@pulumi.output_type
class SftpServerLinkedServiceResponse(dict):
    """
    A linked service for an SSH File Transfer Protocol (SFTP) server. 
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "hostKeyFingerprint":
            suggest = "host_key_fingerprint"
        elif key == "passPhrase":
            suggest = "pass_phrase"
        elif key == "privateKeyContent":
            suggest = "private_key_content"
        elif key == "privateKeyPath":
            suggest = "private_key_path"
        elif key == "skipHostKeyValidation":
            suggest = "skip_host_key_validation"
        elif key == "userName":
            suggest = "user_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SftpServerLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SftpServerLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SftpServerLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 host: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 authentication_type: Optional[str] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 host_key_fingerprint: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 pass_phrase: Optional[Any] = None,
                 password: Optional[Any] = None,
                 port: Optional[Any] = None,
                 private_key_content: Optional[Any] = None,
                 private_key_path: Optional[Any] = None,
                 skip_host_key_validation: Optional[Any] = None,
                 user_name: Optional[Any] = None):
        """
        A linked service for an SSH File Transfer Protocol (SFTP) server. 
        :param Any host: The SFTP server host name. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'Sftp'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param str authentication_type: The authentication type to be used to connect to the FTP server.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Any host_key_fingerprint: The host key finger-print of the SFTP server. When SkipHostKeyValidation is false, HostKeyFingerprint should be specified. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] pass_phrase: The password to decrypt the SSH private key if the SSH private key is encrypted.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password to logon the SFTP server for Basic authentication.
        :param Any port: The TCP port number that the SFTP server uses to listen for client connections. Default value is 22. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] private_key_content: 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.
        :param Any private_key_path: 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 (or Expression with resultType string).
        :param Any skip_host_key_validation: If true, skip the SSH host key validation. Default value is false. Type: boolean (or Expression with resultType boolean).
        :param Any user_name: The username used to log on to the SFTP server. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "host", host)
        pulumi.set(__self__, "type", 'Sftp')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if authentication_type is not None:
            pulumi.set(__self__, "authentication_type", authentication_type)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if host_key_fingerprint is not None:
            pulumi.set(__self__, "host_key_fingerprint", host_key_fingerprint)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_phrase is not None:
            pulumi.set(__self__, "pass_phrase", pass_phrase)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if private_key_content is not None:
            pulumi.set(__self__, "private_key_content", private_key_content)
        if private_key_path is not None:
            pulumi.set(__self__, "private_key_path", private_key_path)
        if skip_host_key_validation is not None:
            pulumi.set(__self__, "skip_host_key_validation", skip_host_key_validation)
        if user_name is not None:
            pulumi.set(__self__, "user_name", user_name)

    @property
    @pulumi.getter
    def host(self) -> Any:
        """
        The SFTP server host name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "host")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Sftp'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> Optional[str]:
        """
        The authentication type to be used to connect to the FTP server.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter(name="hostKeyFingerprint")
    def host_key_fingerprint(self) -> Optional[Any]:
        """
        The host key finger-print of the SFTP server. When SkipHostKeyValidation is false, HostKeyFingerprint should be specified. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "host_key_fingerprint")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="passPhrase")
    def pass_phrase(self) -> Optional[Any]:
        """
        The password to decrypt the SSH private key if the SSH private key is encrypted.
        """
        return pulumi.get(self, "pass_phrase")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        Password to logon the SFTP server for Basic authentication.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def port(self) -> Optional[Any]:
        """
        The TCP port number that the SFTP server uses to listen for client connections. Default value is 22. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "port")

    @property
    @pulumi.getter(name="privateKeyContent")
    def private_key_content(self) -> Optional[Any]:
        """
        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.
        """
        return pulumi.get(self, "private_key_content")

    @property
    @pulumi.getter(name="privateKeyPath")
    def private_key_path(self) -> Optional[Any]:
        """
        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 (or Expression with resultType string).
        """
        return pulumi.get(self, "private_key_path")

    @property
    @pulumi.getter(name="skipHostKeyValidation")
    def skip_host_key_validation(self) -> Optional[Any]:
        """
        If true, skip the SSH host key validation. Default value is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "skip_host_key_validation")

    @property
    @pulumi.getter(name="userName")
    def user_name(self) -> Optional[Any]:
        """
        The username used to log on to the SFTP server. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "user_name")


@pulumi.output_type
class SftpWriteSettingsResponse(dict):
    """
    Sftp write settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "copyBehavior":
            suggest = "copy_behavior"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "operationTimeout":
            suggest = "operation_timeout"
        elif key == "useTempFileRename":
            suggest = "use_temp_file_rename"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SftpWriteSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SftpWriteSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SftpWriteSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 copy_behavior: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 operation_timeout: Optional[Any] = None,
                 use_temp_file_rename: Optional[Any] = None):
        """
        Sftp write settings.
        :param str type: The write setting type.
               Expected value is 'SftpWriteSettings'.
        :param Any copy_behavior: The type of copy behavior for copy sink.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any operation_timeout: Specifies the timeout for writing each chunk to SFTP server. Default value: 01:00:00 (one hour). Type: string (or Expression with resultType string).
        :param Any use_temp_file_rename: Upload to temporary file(s) and rename. Disable this option if your SFTP server doesn't support rename operation. Type: boolean (or Expression with resultType boolean).
        """
        pulumi.set(__self__, "type", 'SftpWriteSettings')
        if copy_behavior is not None:
            pulumi.set(__self__, "copy_behavior", copy_behavior)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if operation_timeout is not None:
            pulumi.set(__self__, "operation_timeout", operation_timeout)
        if use_temp_file_rename is not None:
            pulumi.set(__self__, "use_temp_file_rename", use_temp_file_rename)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The write setting type.
        Expected value is 'SftpWriteSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="copyBehavior")
    def copy_behavior(self) -> Optional[Any]:
        """
        The type of copy behavior for copy sink.
        """
        return pulumi.get(self, "copy_behavior")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="operationTimeout")
    def operation_timeout(self) -> Optional[Any]:
        """
        Specifies the timeout for writing each chunk to SFTP server. Default value: 01:00:00 (one hour). Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "operation_timeout")

    @property
    @pulumi.getter(name="useTempFileRename")
    def use_temp_file_rename(self) -> Optional[Any]:
        """
        Upload to temporary file(s) and rename. Disable this option if your SFTP server doesn't support rename operation. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "use_temp_file_rename")


@pulumi.output_type
class SharePointOnlineListLinkedServiceResponse(dict):
    """
    SharePoint Online List linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "servicePrincipalId":
            suggest = "service_principal_id"
        elif key == "servicePrincipalKey":
            suggest = "service_principal_key"
        elif key == "siteUrl":
            suggest = "site_url"
        elif key == "tenantId":
            suggest = "tenant_id"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SharePointOnlineListLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SharePointOnlineListLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SharePointOnlineListLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 service_principal_id: Any,
                 service_principal_key: Any,
                 site_url: Any,
                 tenant_id: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None):
        """
        SharePoint Online List linked service.
        :param Any service_principal_id: The application (client) ID of your application registered in Azure Active Directory. Make sure to grant SharePoint site permission to this application. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_key: The client secret of your application registered in Azure Active Directory. Type: string (or Expression with resultType string).
        :param Any site_url: The URL of the SharePoint Online site. For example, https://contoso.sharepoint.com/sites/siteName. Type: string (or Expression with resultType string).
        :param Any tenant_id: The tenant ID under which your application resides. You can find it from Azure portal Active Directory overview page. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'SharePointOnlineList'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        """
        pulumi.set(__self__, "service_principal_id", service_principal_id)
        pulumi.set(__self__, "service_principal_key", service_principal_key)
        pulumi.set(__self__, "site_url", site_url)
        pulumi.set(__self__, "tenant_id", tenant_id)
        pulumi.set(__self__, "type", 'SharePointOnlineList')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)

    @property
    @pulumi.getter(name="servicePrincipalId")
    def service_principal_id(self) -> Any:
        """
        The application (client) ID of your application registered in Azure Active Directory. Make sure to grant SharePoint site permission to this application. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_id")

    @property
    @pulumi.getter(name="servicePrincipalKey")
    def service_principal_key(self) -> Any:
        """
        The client secret of your application registered in Azure Active Directory. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_key")

    @property
    @pulumi.getter(name="siteUrl")
    def site_url(self) -> Any:
        """
        The URL of the SharePoint Online site. For example, https://contoso.sharepoint.com/sites/siteName. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "site_url")

    @property
    @pulumi.getter(name="tenantId")
    def tenant_id(self) -> Any:
        """
        The tenant ID under which your application resides. You can find it from Azure portal Active Directory overview page. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "tenant_id")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'SharePointOnlineList'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")


@pulumi.output_type
class SharePointOnlineListResourceDatasetResponse(dict):
    """
    The sharepoint online list resource dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "listName":
            suggest = "list_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SharePointOnlineListResourceDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SharePointOnlineListResourceDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SharePointOnlineListResourceDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 list_name: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        The sharepoint online list resource dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'SharePointOnlineListResource'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Any list_name: The name of the SharePoint Online list. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'SharePointOnlineListResource')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if list_name is not None:
            pulumi.set(__self__, "list_name", list_name)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'SharePointOnlineListResource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter(name="listName")
    def list_name(self) -> Optional[Any]:
        """
        The name of the SharePoint Online list. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "list_name")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class SharePointOnlineListSourceResponse(dict):
    """
    A copy activity source for sharePoint online list source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "httpRequestTimeout":
            suggest = "http_request_timeout"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SharePointOnlineListSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SharePointOnlineListSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SharePointOnlineListSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 http_request_timeout: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for sharePoint online list source.
        :param str type: Copy source type.
               Expected value is 'SharePointOnlineListSource'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any http_request_timeout: The wait time to get a response from SharePoint Online. Default value is 5 minutes (00:05:00). Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: The OData query to filter the data in SharePoint Online list. For example, "$top=1". Type: string (or Expression with resultType string).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'SharePointOnlineListSource')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if http_request_timeout is not None:
            pulumi.set(__self__, "http_request_timeout", http_request_timeout)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'SharePointOnlineListSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="httpRequestTimeout")
    def http_request_timeout(self) -> Optional[Any]:
        """
        The wait time to get a response from SharePoint Online. Default value is 5 minutes (00:05:00). Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "http_request_timeout")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        The OData query to filter the data in SharePoint Online list. For example, "$top=1". Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class ShopifyLinkedServiceResponse(dict):
    """
    Shopify Service linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accessToken":
            suggest = "access_token"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "useEncryptedEndpoints":
            suggest = "use_encrypted_endpoints"
        elif key == "useHostVerification":
            suggest = "use_host_verification"
        elif key == "usePeerVerification":
            suggest = "use_peer_verification"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ShopifyLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ShopifyLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ShopifyLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 host: Any,
                 type: str,
                 access_token: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 use_encrypted_endpoints: Optional[Any] = None,
                 use_host_verification: Optional[Any] = None,
                 use_peer_verification: Optional[Any] = None):
        """
        Shopify Service linked service.
        :param Any host: The endpoint of the Shopify server. (i.e. mystore.myshopify.com)
        :param str type: Type of linked service.
               Expected value is 'Shopify'.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] access_token: The API access token that can be used to access Shopify’s data. The token won't expire if it is offline mode.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Any use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        :param Any use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        :param Any use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        pulumi.set(__self__, "host", host)
        pulumi.set(__self__, "type", 'Shopify')
        if access_token is not None:
            pulumi.set(__self__, "access_token", access_token)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if use_encrypted_endpoints is not None:
            pulumi.set(__self__, "use_encrypted_endpoints", use_encrypted_endpoints)
        if use_host_verification is not None:
            pulumi.set(__self__, "use_host_verification", use_host_verification)
        if use_peer_verification is not None:
            pulumi.set(__self__, "use_peer_verification", use_peer_verification)

    @property
    @pulumi.getter
    def host(self) -> Any:
        """
        The endpoint of the Shopify server. (i.e. mystore.myshopify.com)
        """
        return pulumi.get(self, "host")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Shopify'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="accessToken")
    def access_token(self) -> Optional[Any]:
        """
        The API access token that can be used to access Shopify’s data. The token won't expire if it is offline mode.
        """
        return pulumi.get(self, "access_token")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="useEncryptedEndpoints")
    def use_encrypted_endpoints(self) -> Optional[Any]:
        """
        Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        """
        return pulumi.get(self, "use_encrypted_endpoints")

    @property
    @pulumi.getter(name="useHostVerification")
    def use_host_verification(self) -> Optional[Any]:
        """
        Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_host_verification")

    @property
    @pulumi.getter(name="usePeerVerification")
    def use_peer_verification(self) -> Optional[Any]:
        """
        Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_peer_verification")


@pulumi.output_type
class ShopifyObjectDatasetResponse(dict):
    """
    Shopify Service dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ShopifyObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ShopifyObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ShopifyObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Shopify Service dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'ShopifyObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'ShopifyObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'ShopifyObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class ShopifySourceResponse(dict):
    """
    A copy activity Shopify Service source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ShopifySourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ShopifySourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ShopifySourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Shopify Service source.
        :param str type: Copy source type.
               Expected value is 'ShopifySource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'ShopifySource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'ShopifySource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class SkipErrorFileResponse(dict):
    """
    Skip error file.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dataInconsistency":
            suggest = "data_inconsistency"
        elif key == "fileMissing":
            suggest = "file_missing"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SkipErrorFileResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SkipErrorFileResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SkipErrorFileResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 data_inconsistency: Optional[Any] = None,
                 file_missing: Optional[Any] = None):
        """
        Skip error file.
        :param Any data_inconsistency: Skip if source/sink file changed by other concurrent write. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any file_missing: Skip if file is deleted by other client during copy. Default is true. Type: boolean (or Expression with resultType boolean).
        """
        if data_inconsistency is not None:
            pulumi.set(__self__, "data_inconsistency", data_inconsistency)
        if file_missing is not None:
            pulumi.set(__self__, "file_missing", file_missing)

    @property
    @pulumi.getter(name="dataInconsistency")
    def data_inconsistency(self) -> Optional[Any]:
        """
        Skip if source/sink file changed by other concurrent write. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "data_inconsistency")

    @property
    @pulumi.getter(name="fileMissing")
    def file_missing(self) -> Optional[Any]:
        """
        Skip if file is deleted by other client during copy. Default is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "file_missing")


@pulumi.output_type
class SmartsheetLinkedServiceResponse(dict):
    """
    Linked service for Smartsheet.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "apiToken":
            suggest = "api_token"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SmartsheetLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SmartsheetLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SmartsheetLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 api_token: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None):
        """
        Linked service for Smartsheet.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] api_token: The api token for the Smartsheet source.
        :param str type: Type of linked service.
               Expected value is 'Smartsheet'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        """
        pulumi.set(__self__, "api_token", api_token)
        pulumi.set(__self__, "type", 'Smartsheet')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)

    @property
    @pulumi.getter(name="apiToken")
    def api_token(self) -> Any:
        """
        The api token for the Smartsheet source.
        """
        return pulumi.get(self, "api_token")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Smartsheet'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")


@pulumi.output_type
class SnowflakeDatasetResponse(dict):
    """
    The snowflake dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SnowflakeDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SnowflakeDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SnowflakeDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None):
        """
        The snowflake dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'SnowflakeTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The table name of the Snowflake database. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'SnowflakeTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'SnowflakeTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The table name of the Snowflake database. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")


@pulumi.output_type
class SnowflakeExportCopyCommandResponse(dict):
    """
    Snowflake export command settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalCopyOptions":
            suggest = "additional_copy_options"
        elif key == "additionalFormatOptions":
            suggest = "additional_format_options"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SnowflakeExportCopyCommandResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SnowflakeExportCopyCommandResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SnowflakeExportCopyCommandResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_copy_options: Optional[Mapping[str, Any]] = None,
                 additional_format_options: Optional[Mapping[str, Any]] = None):
        """
        Snowflake export command settings.
        :param str type: The export setting type.
               Expected value is 'SnowflakeExportCopyCommand'.
        :param Mapping[str, Any] additional_copy_options: Additional copy options directly passed to snowflake Copy Command. Type: key value pairs (value should be string type) (or Expression with resultType object). Example: "additionalCopyOptions": { "DATE_FORMAT": "MM/DD/YYYY", "TIME_FORMAT": "'HH24:MI:SS.FF'" }
        :param Mapping[str, Any] additional_format_options: Additional format options directly passed to snowflake Copy Command. Type: key value pairs (value should be string type) (or Expression with resultType object). Example: "additionalFormatOptions": { "OVERWRITE": "TRUE", "MAX_FILE_SIZE": "'FALSE'" }
        """
        pulumi.set(__self__, "type", 'SnowflakeExportCopyCommand')
        if additional_copy_options is not None:
            pulumi.set(__self__, "additional_copy_options", additional_copy_options)
        if additional_format_options is not None:
            pulumi.set(__self__, "additional_format_options", additional_format_options)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The export setting type.
        Expected value is 'SnowflakeExportCopyCommand'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalCopyOptions")
    def additional_copy_options(self) -> Optional[Mapping[str, Any]]:
        """
        Additional copy options directly passed to snowflake Copy Command. Type: key value pairs (value should be string type) (or Expression with resultType object). Example: "additionalCopyOptions": { "DATE_FORMAT": "MM/DD/YYYY", "TIME_FORMAT": "'HH24:MI:SS.FF'" }
        """
        return pulumi.get(self, "additional_copy_options")

    @property
    @pulumi.getter(name="additionalFormatOptions")
    def additional_format_options(self) -> Optional[Mapping[str, Any]]:
        """
        Additional format options directly passed to snowflake Copy Command. Type: key value pairs (value should be string type) (or Expression with resultType object). Example: "additionalFormatOptions": { "OVERWRITE": "TRUE", "MAX_FILE_SIZE": "'FALSE'" }
        """
        return pulumi.get(self, "additional_format_options")


@pulumi.output_type
class SnowflakeImportCopyCommandResponse(dict):
    """
    Snowflake import command settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalCopyOptions":
            suggest = "additional_copy_options"
        elif key == "additionalFormatOptions":
            suggest = "additional_format_options"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SnowflakeImportCopyCommandResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SnowflakeImportCopyCommandResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SnowflakeImportCopyCommandResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_copy_options: Optional[Mapping[str, Any]] = None,
                 additional_format_options: Optional[Mapping[str, Any]] = None):
        """
        Snowflake import command settings.
        :param str type: The import setting type.
               Expected value is 'SnowflakeImportCopyCommand'.
        :param Mapping[str, Any] additional_copy_options: Additional copy options directly passed to snowflake Copy Command. Type: key value pairs (value should be string type) (or Expression with resultType object). Example: "additionalCopyOptions": { "DATE_FORMAT": "MM/DD/YYYY", "TIME_FORMAT": "'HH24:MI:SS.FF'" }
        :param Mapping[str, Any] additional_format_options: Additional format options directly passed to snowflake Copy Command. Type: key value pairs (value should be string type) (or Expression with resultType object). Example: "additionalFormatOptions": { "FORCE": "TRUE", "LOAD_UNCERTAIN_FILES": "'FALSE'" }
        """
        pulumi.set(__self__, "type", 'SnowflakeImportCopyCommand')
        if additional_copy_options is not None:
            pulumi.set(__self__, "additional_copy_options", additional_copy_options)
        if additional_format_options is not None:
            pulumi.set(__self__, "additional_format_options", additional_format_options)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The import setting type.
        Expected value is 'SnowflakeImportCopyCommand'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalCopyOptions")
    def additional_copy_options(self) -> Optional[Mapping[str, Any]]:
        """
        Additional copy options directly passed to snowflake Copy Command. Type: key value pairs (value should be string type) (or Expression with resultType object). Example: "additionalCopyOptions": { "DATE_FORMAT": "MM/DD/YYYY", "TIME_FORMAT": "'HH24:MI:SS.FF'" }
        """
        return pulumi.get(self, "additional_copy_options")

    @property
    @pulumi.getter(name="additionalFormatOptions")
    def additional_format_options(self) -> Optional[Mapping[str, Any]]:
        """
        Additional format options directly passed to snowflake Copy Command. Type: key value pairs (value should be string type) (or Expression with resultType object). Example: "additionalFormatOptions": { "FORCE": "TRUE", "LOAD_UNCERTAIN_FILES": "'FALSE'" }
        """
        return pulumi.get(self, "additional_format_options")


@pulumi.output_type
class SnowflakeLinkedServiceResponse(dict):
    """
    Snowflake linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectionString":
            suggest = "connection_string"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SnowflakeLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SnowflakeLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SnowflakeLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 connection_string: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None):
        """
        Snowflake linked service.
        :param Any connection_string: The connection string of snowflake. Type: string, SecureString.
        :param str type: Type of linked service.
               Expected value is 'Snowflake'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param 'AzureKeyVaultSecretReferenceResponse' password: The Azure key vault secret reference of password in connection string.
        """
        pulumi.set(__self__, "connection_string", connection_string)
        pulumi.set(__self__, "type", 'Snowflake')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Any:
        """
        The connection string of snowflake. Type: string, SecureString.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Snowflake'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of password in connection string.
        """
        return pulumi.get(self, "password")


@pulumi.output_type
class SnowflakeSinkResponse(dict):
    """
    A copy activity snowflake sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "importSettings":
            suggest = "import_settings"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "preCopyScript":
            suggest = "pre_copy_script"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SnowflakeSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SnowflakeSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SnowflakeSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 import_settings: Optional['outputs.SnowflakeImportCopyCommandResponse'] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 pre_copy_script: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None):
        """
        A copy activity snowflake sink.
        :param str type: Copy sink type.
               Expected value is 'SnowflakeSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param 'SnowflakeImportCopyCommandResponse' import_settings: Snowflake import settings.
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'SnowflakeSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if import_settings is not None:
            pulumi.set(__self__, "import_settings", import_settings)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if pre_copy_script is not None:
            pulumi.set(__self__, "pre_copy_script", pre_copy_script)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'SnowflakeSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="importSettings")
    def import_settings(self) -> Optional['outputs.SnowflakeImportCopyCommandResponse']:
        """
        Snowflake import settings.
        """
        return pulumi.get(self, "import_settings")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="preCopyScript")
    def pre_copy_script(self) -> Optional[Any]:
        """
        SQL pre-copy script. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "pre_copy_script")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")


@pulumi.output_type
class SnowflakeSourceResponse(dict):
    """
    A copy activity snowflake source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "exportSettings":
            suggest = "export_settings"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SnowflakeSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SnowflakeSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SnowflakeSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 export_settings: Optional['outputs.SnowflakeExportCopyCommandResponse'] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity snowflake source.
        :param str type: Copy source type.
               Expected value is 'SnowflakeSource'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param 'SnowflakeExportCopyCommandResponse' export_settings: Snowflake export settings.
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: Snowflake Sql query. Type: string (or Expression with resultType string).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'SnowflakeSource')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if export_settings is not None:
            pulumi.set(__self__, "export_settings", export_settings)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'SnowflakeSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="exportSettings")
    def export_settings(self) -> Optional['outputs.SnowflakeExportCopyCommandResponse']:
        """
        Snowflake export settings.
        """
        return pulumi.get(self, "export_settings")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        Snowflake Sql query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class SparkLinkedServiceResponse(dict):
    """
    Spark Server linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"
        elif key == "allowHostNameCNMismatch":
            suggest = "allow_host_name_cn_mismatch"
        elif key == "allowSelfSignedServerCert":
            suggest = "allow_self_signed_server_cert"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "enableSsl":
            suggest = "enable_ssl"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "httpPath":
            suggest = "http_path"
        elif key == "serverType":
            suggest = "server_type"
        elif key == "thriftTransportProtocol":
            suggest = "thrift_transport_protocol"
        elif key == "trustedCertPath":
            suggest = "trusted_cert_path"
        elif key == "useSystemTrustStore":
            suggest = "use_system_trust_store"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SparkLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SparkLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SparkLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 authentication_type: str,
                 host: Any,
                 port: Any,
                 type: str,
                 allow_host_name_cn_mismatch: Optional[Any] = None,
                 allow_self_signed_server_cert: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 enable_ssl: Optional[Any] = None,
                 encrypted_credential: Optional[Any] = None,
                 http_path: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 server_type: Optional[str] = None,
                 thrift_transport_protocol: Optional[str] = None,
                 trusted_cert_path: Optional[Any] = None,
                 use_system_trust_store: Optional[Any] = None,
                 username: Optional[Any] = None):
        """
        Spark Server linked service.
        :param str authentication_type: The authentication method used to access the Spark server.
        :param Any host: IP address or host name of the Spark server
        :param Any port: The TCP port that the Spark server uses to listen for client connections.
        :param str type: Type of linked service.
               Expected value is 'Spark'.
        :param Any allow_host_name_cn_mismatch: Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false.
        :param Any allow_self_signed_server_cert: Specifies whether to allow self-signed certificates from the server. The default value is false.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any enable_ssl: Specifies whether the connections to the server are encrypted using SSL. The default value is false.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Any http_path: The partial URL corresponding to the Spark server.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The password corresponding to the user name that you provided in the Username field
        :param str server_type: The type of Spark server.
        :param str thrift_transport_protocol: The transport protocol to use in the Thrift layer.
        :param Any trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR.
        :param Any use_system_trust_store: Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false.
        :param Any username: The user name that you use to access Spark Server.
        """
        pulumi.set(__self__, "authentication_type", authentication_type)
        pulumi.set(__self__, "host", host)
        pulumi.set(__self__, "port", port)
        pulumi.set(__self__, "type", 'Spark')
        if allow_host_name_cn_mismatch is not None:
            pulumi.set(__self__, "allow_host_name_cn_mismatch", allow_host_name_cn_mismatch)
        if allow_self_signed_server_cert is not None:
            pulumi.set(__self__, "allow_self_signed_server_cert", allow_self_signed_server_cert)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if enable_ssl is not None:
            pulumi.set(__self__, "enable_ssl", enable_ssl)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if http_path is not None:
            pulumi.set(__self__, "http_path", http_path)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if server_type is not None:
            pulumi.set(__self__, "server_type", server_type)
        if thrift_transport_protocol is not None:
            pulumi.set(__self__, "thrift_transport_protocol", thrift_transport_protocol)
        if trusted_cert_path is not None:
            pulumi.set(__self__, "trusted_cert_path", trusted_cert_path)
        if use_system_trust_store is not None:
            pulumi.set(__self__, "use_system_trust_store", use_system_trust_store)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> str:
        """
        The authentication method used to access the Spark server.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter
    def host(self) -> Any:
        """
        IP address or host name of the Spark server
        """
        return pulumi.get(self, "host")

    @property
    @pulumi.getter
    def port(self) -> Any:
        """
        The TCP port that the Spark server uses to listen for client connections.
        """
        return pulumi.get(self, "port")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Spark'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="allowHostNameCNMismatch")
    def allow_host_name_cn_mismatch(self) -> Optional[Any]:
        """
        Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false.
        """
        return pulumi.get(self, "allow_host_name_cn_mismatch")

    @property
    @pulumi.getter(name="allowSelfSignedServerCert")
    def allow_self_signed_server_cert(self) -> Optional[Any]:
        """
        Specifies whether to allow self-signed certificates from the server. The default value is false.
        """
        return pulumi.get(self, "allow_self_signed_server_cert")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="enableSsl")
    def enable_ssl(self) -> Optional[Any]:
        """
        Specifies whether the connections to the server are encrypted using SSL. The default value is false.
        """
        return pulumi.get(self, "enable_ssl")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter(name="httpPath")
    def http_path(self) -> Optional[Any]:
        """
        The partial URL corresponding to the Spark server.
        """
        return pulumi.get(self, "http_path")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        The password corresponding to the user name that you provided in the Username field
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="serverType")
    def server_type(self) -> Optional[str]:
        """
        The type of Spark server.
        """
        return pulumi.get(self, "server_type")

    @property
    @pulumi.getter(name="thriftTransportProtocol")
    def thrift_transport_protocol(self) -> Optional[str]:
        """
        The transport protocol to use in the Thrift layer.
        """
        return pulumi.get(self, "thrift_transport_protocol")

    @property
    @pulumi.getter(name="trustedCertPath")
    def trusted_cert_path(self) -> Optional[Any]:
        """
        The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR.
        """
        return pulumi.get(self, "trusted_cert_path")

    @property
    @pulumi.getter(name="useSystemTrustStore")
    def use_system_trust_store(self) -> Optional[Any]:
        """
        Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false.
        """
        return pulumi.get(self, "use_system_trust_store")

    @property
    @pulumi.getter
    def username(self) -> Optional[Any]:
        """
        The user name that you use to access Spark Server.
        """
        return pulumi.get(self, "username")


@pulumi.output_type
class SparkObjectDatasetResponse(dict):
    """
    Spark Server dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SparkObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SparkObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SparkObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Spark Server dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'SparkObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The table name of the Spark. Type: string (or Expression with resultType string).
        :param Any table_name: This property will be retired. Please consider using schema + table properties instead.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'SparkObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'SparkObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The table name of the Spark. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        This property will be retired. Please consider using schema + table properties instead.
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class SparkSourceResponse(dict):
    """
    A copy activity Spark Server source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SparkSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SparkSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SparkSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Spark Server source.
        :param str type: Copy source type.
               Expected value is 'SparkSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'SparkSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'SparkSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class SqlAlwaysEncryptedPropertiesResponse(dict):
    """
    Sql always encrypted properties.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "alwaysEncryptedAkvAuthType":
            suggest = "always_encrypted_akv_auth_type"
        elif key == "servicePrincipalId":
            suggest = "service_principal_id"
        elif key == "servicePrincipalKey":
            suggest = "service_principal_key"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SqlAlwaysEncryptedPropertiesResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SqlAlwaysEncryptedPropertiesResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SqlAlwaysEncryptedPropertiesResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 always_encrypted_akv_auth_type: str,
                 credential: Optional['outputs.CredentialReferenceResponse'] = None,
                 service_principal_id: Optional[Any] = None,
                 service_principal_key: Optional[Any] = None):
        """
        Sql always encrypted properties.
        :param str always_encrypted_akv_auth_type: Sql always encrypted AKV authentication type. Type: string (or Expression with resultType string).
        :param 'CredentialReferenceResponse' credential: The credential reference containing authentication information.
        :param Any service_principal_id: The client ID of the application in Azure Active Directory used for Azure Key Vault authentication. Type: string (or Expression with resultType string).
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] service_principal_key: The key of the service principal used to authenticate against Azure Key Vault.
        """
        pulumi.set(__self__, "always_encrypted_akv_auth_type", always_encrypted_akv_auth_type)
        if credential is not None:
            pulumi.set(__self__, "credential", credential)
        if service_principal_id is not None:
            pulumi.set(__self__, "service_principal_id", service_principal_id)
        if service_principal_key is not None:
            pulumi.set(__self__, "service_principal_key", service_principal_key)

    @property
    @pulumi.getter(name="alwaysEncryptedAkvAuthType")
    def always_encrypted_akv_auth_type(self) -> str:
        """
        Sql always encrypted AKV authentication type. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "always_encrypted_akv_auth_type")

    @property
    @pulumi.getter
    def credential(self) -> Optional['outputs.CredentialReferenceResponse']:
        """
        The credential reference containing authentication information.
        """
        return pulumi.get(self, "credential")

    @property
    @pulumi.getter(name="servicePrincipalId")
    def service_principal_id(self) -> Optional[Any]:
        """
        The client ID of the application in Azure Active Directory used for Azure Key Vault authentication. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "service_principal_id")

    @property
    @pulumi.getter(name="servicePrincipalKey")
    def service_principal_key(self) -> Optional[Any]:
        """
        The key of the service principal used to authenticate against Azure Key Vault.
        """
        return pulumi.get(self, "service_principal_key")


@pulumi.output_type
class SqlDWSinkResponse(dict):
    """
    A copy activity SQL Data Warehouse sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "allowCopyCommand":
            suggest = "allow_copy_command"
        elif key == "allowPolyBase":
            suggest = "allow_poly_base"
        elif key == "copyCommandSettings":
            suggest = "copy_command_settings"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "polyBaseSettings":
            suggest = "poly_base_settings"
        elif key == "preCopyScript":
            suggest = "pre_copy_script"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "sqlWriterUseTableLock":
            suggest = "sql_writer_use_table_lock"
        elif key == "tableOption":
            suggest = "table_option"
        elif key == "upsertSettings":
            suggest = "upsert_settings"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"
        elif key == "writeBehavior":
            suggest = "write_behavior"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SqlDWSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SqlDWSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SqlDWSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 allow_copy_command: Optional[Any] = None,
                 allow_poly_base: Optional[Any] = None,
                 copy_command_settings: Optional['outputs.DWCopyCommandSettingsResponse'] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 poly_base_settings: Optional['outputs.PolybaseSettingsResponse'] = None,
                 pre_copy_script: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 sql_writer_use_table_lock: Optional[Any] = None,
                 table_option: Optional[Any] = None,
                 upsert_settings: Optional['outputs.SqlDWUpsertSettingsResponse'] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None,
                 write_behavior: Optional[Any] = None):
        """
        A copy activity SQL Data Warehouse sink.
        :param str type: Copy sink type.
               Expected value is 'SqlDWSink'.
        :param Any allow_copy_command: Indicates to use Copy Command to copy data into SQL Data Warehouse. Type: boolean (or Expression with resultType boolean).
        :param Any allow_poly_base: Indicates to use PolyBase to copy data into SQL Data Warehouse when applicable. Type: boolean (or Expression with resultType boolean).
        :param 'DWCopyCommandSettingsResponse' copy_command_settings: Specifies Copy Command related settings when allowCopyCommand is true.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param 'PolybaseSettingsResponse' poly_base_settings: Specifies PolyBase-related settings when allowPolyBase is true.
        :param Any pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any sql_writer_use_table_lock: Whether to use table lock during bulk copy. Type: boolean (or Expression with resultType boolean).
        :param Any table_option: The option to handle sink table, such as autoCreate. For now only 'autoCreate' value is supported. Type: string (or Expression with resultType string).
        :param 'SqlDWUpsertSettingsResponse' upsert_settings: SQL DW upsert settings.
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_behavior: Write behavior when copying data into azure SQL DW. Type: SqlDWWriteBehaviorEnum (or Expression with resultType SqlDWWriteBehaviorEnum)
        """
        pulumi.set(__self__, "type", 'SqlDWSink')
        if allow_copy_command is not None:
            pulumi.set(__self__, "allow_copy_command", allow_copy_command)
        if allow_poly_base is not None:
            pulumi.set(__self__, "allow_poly_base", allow_poly_base)
        if copy_command_settings is not None:
            pulumi.set(__self__, "copy_command_settings", copy_command_settings)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if poly_base_settings is not None:
            pulumi.set(__self__, "poly_base_settings", poly_base_settings)
        if pre_copy_script is not None:
            pulumi.set(__self__, "pre_copy_script", pre_copy_script)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if sql_writer_use_table_lock is not None:
            pulumi.set(__self__, "sql_writer_use_table_lock", sql_writer_use_table_lock)
        if table_option is not None:
            pulumi.set(__self__, "table_option", table_option)
        if upsert_settings is not None:
            pulumi.set(__self__, "upsert_settings", upsert_settings)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)
        if write_behavior is not None:
            pulumi.set(__self__, "write_behavior", write_behavior)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'SqlDWSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="allowCopyCommand")
    def allow_copy_command(self) -> Optional[Any]:
        """
        Indicates to use Copy Command to copy data into SQL Data Warehouse. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "allow_copy_command")

    @property
    @pulumi.getter(name="allowPolyBase")
    def allow_poly_base(self) -> Optional[Any]:
        """
        Indicates to use PolyBase to copy data into SQL Data Warehouse when applicable. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "allow_poly_base")

    @property
    @pulumi.getter(name="copyCommandSettings")
    def copy_command_settings(self) -> Optional['outputs.DWCopyCommandSettingsResponse']:
        """
        Specifies Copy Command related settings when allowCopyCommand is true.
        """
        return pulumi.get(self, "copy_command_settings")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="polyBaseSettings")
    def poly_base_settings(self) -> Optional['outputs.PolybaseSettingsResponse']:
        """
        Specifies PolyBase-related settings when allowPolyBase is true.
        """
        return pulumi.get(self, "poly_base_settings")

    @property
    @pulumi.getter(name="preCopyScript")
    def pre_copy_script(self) -> Optional[Any]:
        """
        SQL pre-copy script. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "pre_copy_script")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="sqlWriterUseTableLock")
    def sql_writer_use_table_lock(self) -> Optional[Any]:
        """
        Whether to use table lock during bulk copy. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "sql_writer_use_table_lock")

    @property
    @pulumi.getter(name="tableOption")
    def table_option(self) -> Optional[Any]:
        """
        The option to handle sink table, such as autoCreate. For now only 'autoCreate' value is supported. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_option")

    @property
    @pulumi.getter(name="upsertSettings")
    def upsert_settings(self) -> Optional['outputs.SqlDWUpsertSettingsResponse']:
        """
        SQL DW upsert settings.
        """
        return pulumi.get(self, "upsert_settings")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")

    @property
    @pulumi.getter(name="writeBehavior")
    def write_behavior(self) -> Optional[Any]:
        """
        Write behavior when copying data into azure SQL DW. Type: SqlDWWriteBehaviorEnum (or Expression with resultType SqlDWWriteBehaviorEnum)
        """
        return pulumi.get(self, "write_behavior")


@pulumi.output_type
class SqlDWSourceResponse(dict):
    """
    A copy activity SQL Data Warehouse source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "partitionOption":
            suggest = "partition_option"
        elif key == "partitionSettings":
            suggest = "partition_settings"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"
        elif key == "sqlReaderQuery":
            suggest = "sql_reader_query"
        elif key == "sqlReaderStoredProcedureName":
            suggest = "sql_reader_stored_procedure_name"
        elif key == "storedProcedureParameters":
            suggest = "stored_procedure_parameters"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SqlDWSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SqlDWSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SqlDWSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 partition_option: Optional[Any] = None,
                 partition_settings: Optional['outputs.SqlPartitionSettingsResponse'] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None,
                 sql_reader_query: Optional[Any] = None,
                 sql_reader_stored_procedure_name: Optional[Any] = None,
                 stored_procedure_parameters: Optional[Any] = None):
        """
        A copy activity SQL Data Warehouse source.
        :param str type: Copy source type.
               Expected value is 'SqlDWSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any partition_option: The partition mechanism that will be used for Sql read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange".
        :param 'SqlPartitionSettingsResponse' partition_settings: The settings that will be leveraged for Sql source partitioning.
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any sql_reader_query: SQL Data Warehouse reader query. Type: string (or Expression with resultType string).
        :param Any sql_reader_stored_procedure_name: Name of the stored procedure for a SQL Data Warehouse source. This cannot be used at the same time as SqlReaderQuery. Type: string (or Expression with resultType string).
        :param Any stored_procedure_parameters: Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}". Type: object (or Expression with resultType object), itemType: StoredProcedureParameter.
        """
        pulumi.set(__self__, "type", 'SqlDWSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if partition_option is not None:
            pulumi.set(__self__, "partition_option", partition_option)
        if partition_settings is not None:
            pulumi.set(__self__, "partition_settings", partition_settings)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)
        if sql_reader_query is not None:
            pulumi.set(__self__, "sql_reader_query", sql_reader_query)
        if sql_reader_stored_procedure_name is not None:
            pulumi.set(__self__, "sql_reader_stored_procedure_name", sql_reader_stored_procedure_name)
        if stored_procedure_parameters is not None:
            pulumi.set(__self__, "stored_procedure_parameters", stored_procedure_parameters)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'SqlDWSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="partitionOption")
    def partition_option(self) -> Optional[Any]:
        """
        The partition mechanism that will be used for Sql read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange".
        """
        return pulumi.get(self, "partition_option")

    @property
    @pulumi.getter(name="partitionSettings")
    def partition_settings(self) -> Optional['outputs.SqlPartitionSettingsResponse']:
        """
        The settings that will be leveraged for Sql source partitioning.
        """
        return pulumi.get(self, "partition_settings")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")

    @property
    @pulumi.getter(name="sqlReaderQuery")
    def sql_reader_query(self) -> Optional[Any]:
        """
        SQL Data Warehouse reader query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sql_reader_query")

    @property
    @pulumi.getter(name="sqlReaderStoredProcedureName")
    def sql_reader_stored_procedure_name(self) -> Optional[Any]:
        """
        Name of the stored procedure for a SQL Data Warehouse source. This cannot be used at the same time as SqlReaderQuery. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sql_reader_stored_procedure_name")

    @property
    @pulumi.getter(name="storedProcedureParameters")
    def stored_procedure_parameters(self) -> Optional[Any]:
        """
        Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}". Type: object (or Expression with resultType object), itemType: StoredProcedureParameter.
        """
        return pulumi.get(self, "stored_procedure_parameters")


@pulumi.output_type
class SqlDWUpsertSettingsResponse(dict):
    """
    Sql DW upsert option settings
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "interimSchemaName":
            suggest = "interim_schema_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SqlDWUpsertSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SqlDWUpsertSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SqlDWUpsertSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 interim_schema_name: Optional[Any] = None,
                 keys: Optional[Any] = None):
        """
        Sql DW upsert option settings
        :param Any interim_schema_name: Schema name for interim table. Type: string (or Expression with resultType string).
        :param Any keys: Key column names for unique row identification. Type: array of strings (or Expression with resultType array of strings).
        """
        if interim_schema_name is not None:
            pulumi.set(__self__, "interim_schema_name", interim_schema_name)
        if keys is not None:
            pulumi.set(__self__, "keys", keys)

    @property
    @pulumi.getter(name="interimSchemaName")
    def interim_schema_name(self) -> Optional[Any]:
        """
        Schema name for interim table. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "interim_schema_name")

    @property
    @pulumi.getter
    def keys(self) -> Optional[Any]:
        """
        Key column names for unique row identification. Type: array of strings (or Expression with resultType array of strings).
        """
        return pulumi.get(self, "keys")


@pulumi.output_type
class SqlMISinkResponse(dict):
    """
    A copy activity Azure SQL Managed Instance sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "preCopyScript":
            suggest = "pre_copy_script"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "sqlWriterStoredProcedureName":
            suggest = "sql_writer_stored_procedure_name"
        elif key == "sqlWriterTableType":
            suggest = "sql_writer_table_type"
        elif key == "sqlWriterUseTableLock":
            suggest = "sql_writer_use_table_lock"
        elif key == "storedProcedureParameters":
            suggest = "stored_procedure_parameters"
        elif key == "storedProcedureTableTypeParameterName":
            suggest = "stored_procedure_table_type_parameter_name"
        elif key == "tableOption":
            suggest = "table_option"
        elif key == "upsertSettings":
            suggest = "upsert_settings"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"
        elif key == "writeBehavior":
            suggest = "write_behavior"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SqlMISinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SqlMISinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SqlMISinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 pre_copy_script: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 sql_writer_stored_procedure_name: Optional[Any] = None,
                 sql_writer_table_type: Optional[Any] = None,
                 sql_writer_use_table_lock: Optional[Any] = None,
                 stored_procedure_parameters: Optional[Mapping[str, 'outputs.StoredProcedureParameterResponse']] = None,
                 stored_procedure_table_type_parameter_name: Optional[Any] = None,
                 table_option: Optional[Any] = None,
                 upsert_settings: Optional['outputs.SqlUpsertSettingsResponse'] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None,
                 write_behavior: Optional[Any] = None):
        """
        A copy activity Azure SQL Managed Instance sink.
        :param str type: Copy sink type.
               Expected value is 'SqlMISink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any sql_writer_stored_procedure_name: SQL writer stored procedure name. Type: string (or Expression with resultType string).
        :param Any sql_writer_table_type: SQL writer table type. Type: string (or Expression with resultType string).
        :param Any sql_writer_use_table_lock: Whether to use table lock during bulk copy. Type: boolean (or Expression with resultType boolean).
        :param Mapping[str, 'StoredProcedureParameterResponse'] stored_procedure_parameters: SQL stored procedure parameters.
        :param Any stored_procedure_table_type_parameter_name: The stored procedure parameter name of the table type. Type: string (or Expression with resultType string).
        :param Any table_option: The option to handle sink table, such as autoCreate. For now only 'autoCreate' value is supported. Type: string (or Expression with resultType string).
        :param 'SqlUpsertSettingsResponse' upsert_settings: SQL upsert settings.
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_behavior: White behavior when copying data into azure SQL MI. Type: SqlWriteBehaviorEnum (or Expression with resultType SqlWriteBehaviorEnum)
        """
        pulumi.set(__self__, "type", 'SqlMISink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if pre_copy_script is not None:
            pulumi.set(__self__, "pre_copy_script", pre_copy_script)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if sql_writer_stored_procedure_name is not None:
            pulumi.set(__self__, "sql_writer_stored_procedure_name", sql_writer_stored_procedure_name)
        if sql_writer_table_type is not None:
            pulumi.set(__self__, "sql_writer_table_type", sql_writer_table_type)
        if sql_writer_use_table_lock is not None:
            pulumi.set(__self__, "sql_writer_use_table_lock", sql_writer_use_table_lock)
        if stored_procedure_parameters is not None:
            pulumi.set(__self__, "stored_procedure_parameters", stored_procedure_parameters)
        if stored_procedure_table_type_parameter_name is not None:
            pulumi.set(__self__, "stored_procedure_table_type_parameter_name", stored_procedure_table_type_parameter_name)
        if table_option is not None:
            pulumi.set(__self__, "table_option", table_option)
        if upsert_settings is not None:
            pulumi.set(__self__, "upsert_settings", upsert_settings)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)
        if write_behavior is not None:
            pulumi.set(__self__, "write_behavior", write_behavior)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'SqlMISink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="preCopyScript")
    def pre_copy_script(self) -> Optional[Any]:
        """
        SQL pre-copy script. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "pre_copy_script")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="sqlWriterStoredProcedureName")
    def sql_writer_stored_procedure_name(self) -> Optional[Any]:
        """
        SQL writer stored procedure name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sql_writer_stored_procedure_name")

    @property
    @pulumi.getter(name="sqlWriterTableType")
    def sql_writer_table_type(self) -> Optional[Any]:
        """
        SQL writer table type. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sql_writer_table_type")

    @property
    @pulumi.getter(name="sqlWriterUseTableLock")
    def sql_writer_use_table_lock(self) -> Optional[Any]:
        """
        Whether to use table lock during bulk copy. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "sql_writer_use_table_lock")

    @property
    @pulumi.getter(name="storedProcedureParameters")
    def stored_procedure_parameters(self) -> Optional[Mapping[str, 'outputs.StoredProcedureParameterResponse']]:
        """
        SQL stored procedure parameters.
        """
        return pulumi.get(self, "stored_procedure_parameters")

    @property
    @pulumi.getter(name="storedProcedureTableTypeParameterName")
    def stored_procedure_table_type_parameter_name(self) -> Optional[Any]:
        """
        The stored procedure parameter name of the table type. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "stored_procedure_table_type_parameter_name")

    @property
    @pulumi.getter(name="tableOption")
    def table_option(self) -> Optional[Any]:
        """
        The option to handle sink table, such as autoCreate. For now only 'autoCreate' value is supported. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_option")

    @property
    @pulumi.getter(name="upsertSettings")
    def upsert_settings(self) -> Optional['outputs.SqlUpsertSettingsResponse']:
        """
        SQL upsert settings.
        """
        return pulumi.get(self, "upsert_settings")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")

    @property
    @pulumi.getter(name="writeBehavior")
    def write_behavior(self) -> Optional[Any]:
        """
        White behavior when copying data into azure SQL MI. Type: SqlWriteBehaviorEnum (or Expression with resultType SqlWriteBehaviorEnum)
        """
        return pulumi.get(self, "write_behavior")


@pulumi.output_type
class SqlMISourceResponse(dict):
    """
    A copy activity Azure SQL Managed Instance source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "partitionOption":
            suggest = "partition_option"
        elif key == "partitionSettings":
            suggest = "partition_settings"
        elif key == "produceAdditionalTypes":
            suggest = "produce_additional_types"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"
        elif key == "sqlReaderQuery":
            suggest = "sql_reader_query"
        elif key == "sqlReaderStoredProcedureName":
            suggest = "sql_reader_stored_procedure_name"
        elif key == "storedProcedureParameters":
            suggest = "stored_procedure_parameters"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SqlMISourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SqlMISourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SqlMISourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 partition_option: Optional[Any] = None,
                 partition_settings: Optional['outputs.SqlPartitionSettingsResponse'] = None,
                 produce_additional_types: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None,
                 sql_reader_query: Optional[Any] = None,
                 sql_reader_stored_procedure_name: Optional[Any] = None,
                 stored_procedure_parameters: Optional[Mapping[str, 'outputs.StoredProcedureParameterResponse']] = None):
        """
        A copy activity Azure SQL Managed Instance source.
        :param str type: Copy source type.
               Expected value is 'SqlMISource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any partition_option: The partition mechanism that will be used for Sql read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange".
        :param 'SqlPartitionSettingsResponse' partition_settings: The settings that will be leveraged for Sql source partitioning.
        :param Any produce_additional_types: Which additional types to produce.
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any sql_reader_query: SQL reader query. Type: string (or Expression with resultType string).
        :param Any sql_reader_stored_procedure_name: Name of the stored procedure for a Azure SQL Managed Instance source. This cannot be used at the same time as SqlReaderQuery. Type: string (or Expression with resultType string).
        :param Mapping[str, 'StoredProcedureParameterResponse'] stored_procedure_parameters: Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}".
        """
        pulumi.set(__self__, "type", 'SqlMISource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if partition_option is not None:
            pulumi.set(__self__, "partition_option", partition_option)
        if partition_settings is not None:
            pulumi.set(__self__, "partition_settings", partition_settings)
        if produce_additional_types is not None:
            pulumi.set(__self__, "produce_additional_types", produce_additional_types)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)
        if sql_reader_query is not None:
            pulumi.set(__self__, "sql_reader_query", sql_reader_query)
        if sql_reader_stored_procedure_name is not None:
            pulumi.set(__self__, "sql_reader_stored_procedure_name", sql_reader_stored_procedure_name)
        if stored_procedure_parameters is not None:
            pulumi.set(__self__, "stored_procedure_parameters", stored_procedure_parameters)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'SqlMISource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="partitionOption")
    def partition_option(self) -> Optional[Any]:
        """
        The partition mechanism that will be used for Sql read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange".
        """
        return pulumi.get(self, "partition_option")

    @property
    @pulumi.getter(name="partitionSettings")
    def partition_settings(self) -> Optional['outputs.SqlPartitionSettingsResponse']:
        """
        The settings that will be leveraged for Sql source partitioning.
        """
        return pulumi.get(self, "partition_settings")

    @property
    @pulumi.getter(name="produceAdditionalTypes")
    def produce_additional_types(self) -> Optional[Any]:
        """
        Which additional types to produce.
        """
        return pulumi.get(self, "produce_additional_types")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")

    @property
    @pulumi.getter(name="sqlReaderQuery")
    def sql_reader_query(self) -> Optional[Any]:
        """
        SQL reader query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sql_reader_query")

    @property
    @pulumi.getter(name="sqlReaderStoredProcedureName")
    def sql_reader_stored_procedure_name(self) -> Optional[Any]:
        """
        Name of the stored procedure for a Azure SQL Managed Instance source. This cannot be used at the same time as SqlReaderQuery. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sql_reader_stored_procedure_name")

    @property
    @pulumi.getter(name="storedProcedureParameters")
    def stored_procedure_parameters(self) -> Optional[Mapping[str, 'outputs.StoredProcedureParameterResponse']]:
        """
        Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}".
        """
        return pulumi.get(self, "stored_procedure_parameters")


@pulumi.output_type
class SqlPartitionSettingsResponse(dict):
    """
    The settings that will be leveraged for Sql source partitioning.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "partitionColumnName":
            suggest = "partition_column_name"
        elif key == "partitionLowerBound":
            suggest = "partition_lower_bound"
        elif key == "partitionUpperBound":
            suggest = "partition_upper_bound"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SqlPartitionSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SqlPartitionSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SqlPartitionSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 partition_column_name: Optional[Any] = None,
                 partition_lower_bound: Optional[Any] = None,
                 partition_upper_bound: Optional[Any] = None):
        """
        The settings that will be leveraged for Sql source partitioning.
        :param Any partition_column_name: The name of the column in integer or datetime type that will be used for proceeding partitioning. If not specified, the primary key of the table is auto-detected and used as the partition column. Type: string (or Expression with resultType string).
        :param Any partition_lower_bound: The minimum value of the partition column for partition range splitting. This value is used to decide the partition stride, not for filtering the rows in table. All rows in the table or query result will be partitioned and copied. Type: string (or Expression with resultType string).
        :param Any partition_upper_bound: The maximum value of the partition column for partition range splitting. This value is used to decide the partition stride, not for filtering the rows in table. All rows in the table or query result will be partitioned and copied. Type: string (or Expression with resultType string).
        """
        if partition_column_name is not None:
            pulumi.set(__self__, "partition_column_name", partition_column_name)
        if partition_lower_bound is not None:
            pulumi.set(__self__, "partition_lower_bound", partition_lower_bound)
        if partition_upper_bound is not None:
            pulumi.set(__self__, "partition_upper_bound", partition_upper_bound)

    @property
    @pulumi.getter(name="partitionColumnName")
    def partition_column_name(self) -> Optional[Any]:
        """
        The name of the column in integer or datetime type that will be used for proceeding partitioning. If not specified, the primary key of the table is auto-detected and used as the partition column. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_column_name")

    @property
    @pulumi.getter(name="partitionLowerBound")
    def partition_lower_bound(self) -> Optional[Any]:
        """
        The minimum value of the partition column for partition range splitting. This value is used to decide the partition stride, not for filtering the rows in table. All rows in the table or query result will be partitioned and copied. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_lower_bound")

    @property
    @pulumi.getter(name="partitionUpperBound")
    def partition_upper_bound(self) -> Optional[Any]:
        """
        The maximum value of the partition column for partition range splitting. This value is used to decide the partition stride, not for filtering the rows in table. All rows in the table or query result will be partitioned and copied. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_upper_bound")


@pulumi.output_type
class SqlServerLinkedServiceResponse(dict):
    """
    SQL Server linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectionString":
            suggest = "connection_string"
        elif key == "alwaysEncryptedSettings":
            suggest = "always_encrypted_settings"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "userName":
            suggest = "user_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SqlServerLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SqlServerLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SqlServerLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 connection_string: Any,
                 type: str,
                 always_encrypted_settings: Optional['outputs.SqlAlwaysEncryptedPropertiesResponse'] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 user_name: Optional[Any] = None):
        """
        SQL Server linked service.
        :param Any connection_string: The connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str type: Type of linked service.
               Expected value is 'SqlServer'.
        :param 'SqlAlwaysEncryptedPropertiesResponse' always_encrypted_settings: Sql always encrypted properties.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The on-premises Windows authentication password.
        :param Any user_name: The on-premises Windows authentication user name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "connection_string", connection_string)
        pulumi.set(__self__, "type", 'SqlServer')
        if always_encrypted_settings is not None:
            pulumi.set(__self__, "always_encrypted_settings", always_encrypted_settings)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if user_name is not None:
            pulumi.set(__self__, "user_name", user_name)

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Any:
        """
        The connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'SqlServer'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="alwaysEncryptedSettings")
    def always_encrypted_settings(self) -> Optional['outputs.SqlAlwaysEncryptedPropertiesResponse']:
        """
        Sql always encrypted properties.
        """
        return pulumi.get(self, "always_encrypted_settings")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        The on-premises Windows authentication password.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="userName")
    def user_name(self) -> Optional[Any]:
        """
        The on-premises Windows authentication user name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "user_name")


@pulumi.output_type
class SqlServerSinkResponse(dict):
    """
    A copy activity SQL server sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "preCopyScript":
            suggest = "pre_copy_script"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "sqlWriterStoredProcedureName":
            suggest = "sql_writer_stored_procedure_name"
        elif key == "sqlWriterTableType":
            suggest = "sql_writer_table_type"
        elif key == "sqlWriterUseTableLock":
            suggest = "sql_writer_use_table_lock"
        elif key == "storedProcedureParameters":
            suggest = "stored_procedure_parameters"
        elif key == "storedProcedureTableTypeParameterName":
            suggest = "stored_procedure_table_type_parameter_name"
        elif key == "tableOption":
            suggest = "table_option"
        elif key == "upsertSettings":
            suggest = "upsert_settings"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"
        elif key == "writeBehavior":
            suggest = "write_behavior"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SqlServerSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SqlServerSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SqlServerSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 pre_copy_script: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 sql_writer_stored_procedure_name: Optional[Any] = None,
                 sql_writer_table_type: Optional[Any] = None,
                 sql_writer_use_table_lock: Optional[Any] = None,
                 stored_procedure_parameters: Optional[Mapping[str, 'outputs.StoredProcedureParameterResponse']] = None,
                 stored_procedure_table_type_parameter_name: Optional[Any] = None,
                 table_option: Optional[Any] = None,
                 upsert_settings: Optional['outputs.SqlUpsertSettingsResponse'] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None,
                 write_behavior: Optional[Any] = None):
        """
        A copy activity SQL server sink.
        :param str type: Copy sink type.
               Expected value is 'SqlServerSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any sql_writer_stored_procedure_name: SQL writer stored procedure name. Type: string (or Expression with resultType string).
        :param Any sql_writer_table_type: SQL writer table type. Type: string (or Expression with resultType string).
        :param Any sql_writer_use_table_lock: Whether to use table lock during bulk copy. Type: boolean (or Expression with resultType boolean).
        :param Mapping[str, 'StoredProcedureParameterResponse'] stored_procedure_parameters: SQL stored procedure parameters.
        :param Any stored_procedure_table_type_parameter_name: The stored procedure parameter name of the table type. Type: string (or Expression with resultType string).
        :param Any table_option: The option to handle sink table, such as autoCreate. For now only 'autoCreate' value is supported. Type: string (or Expression with resultType string).
        :param 'SqlUpsertSettingsResponse' upsert_settings: SQL upsert settings.
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_behavior: Write behavior when copying data into sql server. Type: SqlWriteBehaviorEnum (or Expression with resultType SqlWriteBehaviorEnum)
        """
        pulumi.set(__self__, "type", 'SqlServerSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if pre_copy_script is not None:
            pulumi.set(__self__, "pre_copy_script", pre_copy_script)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if sql_writer_stored_procedure_name is not None:
            pulumi.set(__self__, "sql_writer_stored_procedure_name", sql_writer_stored_procedure_name)
        if sql_writer_table_type is not None:
            pulumi.set(__self__, "sql_writer_table_type", sql_writer_table_type)
        if sql_writer_use_table_lock is not None:
            pulumi.set(__self__, "sql_writer_use_table_lock", sql_writer_use_table_lock)
        if stored_procedure_parameters is not None:
            pulumi.set(__self__, "stored_procedure_parameters", stored_procedure_parameters)
        if stored_procedure_table_type_parameter_name is not None:
            pulumi.set(__self__, "stored_procedure_table_type_parameter_name", stored_procedure_table_type_parameter_name)
        if table_option is not None:
            pulumi.set(__self__, "table_option", table_option)
        if upsert_settings is not None:
            pulumi.set(__self__, "upsert_settings", upsert_settings)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)
        if write_behavior is not None:
            pulumi.set(__self__, "write_behavior", write_behavior)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'SqlServerSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="preCopyScript")
    def pre_copy_script(self) -> Optional[Any]:
        """
        SQL pre-copy script. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "pre_copy_script")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="sqlWriterStoredProcedureName")
    def sql_writer_stored_procedure_name(self) -> Optional[Any]:
        """
        SQL writer stored procedure name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sql_writer_stored_procedure_name")

    @property
    @pulumi.getter(name="sqlWriterTableType")
    def sql_writer_table_type(self) -> Optional[Any]:
        """
        SQL writer table type. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sql_writer_table_type")

    @property
    @pulumi.getter(name="sqlWriterUseTableLock")
    def sql_writer_use_table_lock(self) -> Optional[Any]:
        """
        Whether to use table lock during bulk copy. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "sql_writer_use_table_lock")

    @property
    @pulumi.getter(name="storedProcedureParameters")
    def stored_procedure_parameters(self) -> Optional[Mapping[str, 'outputs.StoredProcedureParameterResponse']]:
        """
        SQL stored procedure parameters.
        """
        return pulumi.get(self, "stored_procedure_parameters")

    @property
    @pulumi.getter(name="storedProcedureTableTypeParameterName")
    def stored_procedure_table_type_parameter_name(self) -> Optional[Any]:
        """
        The stored procedure parameter name of the table type. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "stored_procedure_table_type_parameter_name")

    @property
    @pulumi.getter(name="tableOption")
    def table_option(self) -> Optional[Any]:
        """
        The option to handle sink table, such as autoCreate. For now only 'autoCreate' value is supported. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_option")

    @property
    @pulumi.getter(name="upsertSettings")
    def upsert_settings(self) -> Optional['outputs.SqlUpsertSettingsResponse']:
        """
        SQL upsert settings.
        """
        return pulumi.get(self, "upsert_settings")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")

    @property
    @pulumi.getter(name="writeBehavior")
    def write_behavior(self) -> Optional[Any]:
        """
        Write behavior when copying data into sql server. Type: SqlWriteBehaviorEnum (or Expression with resultType SqlWriteBehaviorEnum)
        """
        return pulumi.get(self, "write_behavior")


@pulumi.output_type
class SqlServerSourceResponse(dict):
    """
    A copy activity SQL server source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "partitionOption":
            suggest = "partition_option"
        elif key == "partitionSettings":
            suggest = "partition_settings"
        elif key == "produceAdditionalTypes":
            suggest = "produce_additional_types"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"
        elif key == "sqlReaderQuery":
            suggest = "sql_reader_query"
        elif key == "sqlReaderStoredProcedureName":
            suggest = "sql_reader_stored_procedure_name"
        elif key == "storedProcedureParameters":
            suggest = "stored_procedure_parameters"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SqlServerSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SqlServerSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SqlServerSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 partition_option: Optional[Any] = None,
                 partition_settings: Optional['outputs.SqlPartitionSettingsResponse'] = None,
                 produce_additional_types: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None,
                 sql_reader_query: Optional[Any] = None,
                 sql_reader_stored_procedure_name: Optional[Any] = None,
                 stored_procedure_parameters: Optional[Mapping[str, 'outputs.StoredProcedureParameterResponse']] = None):
        """
        A copy activity SQL server source.
        :param str type: Copy source type.
               Expected value is 'SqlServerSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any partition_option: The partition mechanism that will be used for Sql read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange".
        :param 'SqlPartitionSettingsResponse' partition_settings: The settings that will be leveraged for Sql source partitioning.
        :param Any produce_additional_types: Which additional types to produce.
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any sql_reader_query: SQL reader query. Type: string (or Expression with resultType string).
        :param Any sql_reader_stored_procedure_name: Name of the stored procedure for a SQL Database source. This cannot be used at the same time as SqlReaderQuery. Type: string (or Expression with resultType string).
        :param Mapping[str, 'StoredProcedureParameterResponse'] stored_procedure_parameters: Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}".
        """
        pulumi.set(__self__, "type", 'SqlServerSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if partition_option is not None:
            pulumi.set(__self__, "partition_option", partition_option)
        if partition_settings is not None:
            pulumi.set(__self__, "partition_settings", partition_settings)
        if produce_additional_types is not None:
            pulumi.set(__self__, "produce_additional_types", produce_additional_types)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)
        if sql_reader_query is not None:
            pulumi.set(__self__, "sql_reader_query", sql_reader_query)
        if sql_reader_stored_procedure_name is not None:
            pulumi.set(__self__, "sql_reader_stored_procedure_name", sql_reader_stored_procedure_name)
        if stored_procedure_parameters is not None:
            pulumi.set(__self__, "stored_procedure_parameters", stored_procedure_parameters)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'SqlServerSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="partitionOption")
    def partition_option(self) -> Optional[Any]:
        """
        The partition mechanism that will be used for Sql read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange".
        """
        return pulumi.get(self, "partition_option")

    @property
    @pulumi.getter(name="partitionSettings")
    def partition_settings(self) -> Optional['outputs.SqlPartitionSettingsResponse']:
        """
        The settings that will be leveraged for Sql source partitioning.
        """
        return pulumi.get(self, "partition_settings")

    @property
    @pulumi.getter(name="produceAdditionalTypes")
    def produce_additional_types(self) -> Optional[Any]:
        """
        Which additional types to produce.
        """
        return pulumi.get(self, "produce_additional_types")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")

    @property
    @pulumi.getter(name="sqlReaderQuery")
    def sql_reader_query(self) -> Optional[Any]:
        """
        SQL reader query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sql_reader_query")

    @property
    @pulumi.getter(name="sqlReaderStoredProcedureName")
    def sql_reader_stored_procedure_name(self) -> Optional[Any]:
        """
        Name of the stored procedure for a SQL Database source. This cannot be used at the same time as SqlReaderQuery. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sql_reader_stored_procedure_name")

    @property
    @pulumi.getter(name="storedProcedureParameters")
    def stored_procedure_parameters(self) -> Optional[Mapping[str, 'outputs.StoredProcedureParameterResponse']]:
        """
        Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}".
        """
        return pulumi.get(self, "stored_procedure_parameters")


@pulumi.output_type
class SqlServerStoredProcedureActivityResponse(dict):
    """
    SQL stored procedure activity type.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "storedProcedureName":
            suggest = "stored_procedure_name"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "storedProcedureParameters":
            suggest = "stored_procedure_parameters"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SqlServerStoredProcedureActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SqlServerStoredProcedureActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SqlServerStoredProcedureActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 name: str,
                 stored_procedure_name: Any,
                 type: str,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 stored_procedure_parameters: Optional[Mapping[str, 'outputs.StoredProcedureParameterResponse']] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        SQL stored procedure activity type.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str name: Activity name.
        :param Any stored_procedure_name: Stored procedure name. Type: string (or Expression with resultType string).
        :param str type: Type of activity.
               Expected value is 'SqlServerStoredProcedure'.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param Mapping[str, 'StoredProcedureParameterResponse'] stored_procedure_parameters: Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}".
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "stored_procedure_name", stored_procedure_name)
        pulumi.set(__self__, "type", 'SqlServerStoredProcedure')
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if stored_procedure_parameters is not None:
            pulumi.set(__self__, "stored_procedure_parameters", stored_procedure_parameters)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="storedProcedureName")
    def stored_procedure_name(self) -> Any:
        """
        Stored procedure name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "stored_procedure_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'SqlServerStoredProcedure'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter(name="storedProcedureParameters")
    def stored_procedure_parameters(self) -> Optional[Mapping[str, 'outputs.StoredProcedureParameterResponse']]:
        """
        Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}".
        """
        return pulumi.get(self, "stored_procedure_parameters")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class SqlServerTableDatasetResponse(dict):
    """
    The on-premises SQL Server dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SqlServerTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SqlServerTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SqlServerTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        The on-premises SQL Server dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'SqlServerTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The table name of the SQL Server dataset. Type: string (or Expression with resultType string).
        :param Any table_name: This property will be retired. Please consider using schema + table properties instead.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'SqlServerTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'SqlServerTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The table name of the SQL Server dataset. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        This property will be retired. Please consider using schema + table properties instead.
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class SqlSinkResponse(dict):
    """
    A copy activity SQL sink.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "preCopyScript":
            suggest = "pre_copy_script"
        elif key == "sinkRetryCount":
            suggest = "sink_retry_count"
        elif key == "sinkRetryWait":
            suggest = "sink_retry_wait"
        elif key == "sqlWriterStoredProcedureName":
            suggest = "sql_writer_stored_procedure_name"
        elif key == "sqlWriterTableType":
            suggest = "sql_writer_table_type"
        elif key == "sqlWriterUseTableLock":
            suggest = "sql_writer_use_table_lock"
        elif key == "storedProcedureParameters":
            suggest = "stored_procedure_parameters"
        elif key == "storedProcedureTableTypeParameterName":
            suggest = "stored_procedure_table_type_parameter_name"
        elif key == "tableOption":
            suggest = "table_option"
        elif key == "upsertSettings":
            suggest = "upsert_settings"
        elif key == "writeBatchSize":
            suggest = "write_batch_size"
        elif key == "writeBatchTimeout":
            suggest = "write_batch_timeout"
        elif key == "writeBehavior":
            suggest = "write_behavior"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SqlSinkResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SqlSinkResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SqlSinkResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 pre_copy_script: Optional[Any] = None,
                 sink_retry_count: Optional[Any] = None,
                 sink_retry_wait: Optional[Any] = None,
                 sql_writer_stored_procedure_name: Optional[Any] = None,
                 sql_writer_table_type: Optional[Any] = None,
                 sql_writer_use_table_lock: Optional[Any] = None,
                 stored_procedure_parameters: Optional[Mapping[str, 'outputs.StoredProcedureParameterResponse']] = None,
                 stored_procedure_table_type_parameter_name: Optional[Any] = None,
                 table_option: Optional[Any] = None,
                 upsert_settings: Optional['outputs.SqlUpsertSettingsResponse'] = None,
                 write_batch_size: Optional[Any] = None,
                 write_batch_timeout: Optional[Any] = None,
                 write_behavior: Optional[Any] = None):
        """
        A copy activity SQL sink.
        :param str type: Copy sink type.
               Expected value is 'SqlSink'.
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        :param Any pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string).
        :param Any sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer).
        :param Any sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any sql_writer_stored_procedure_name: SQL writer stored procedure name. Type: string (or Expression with resultType string).
        :param Any sql_writer_table_type: SQL writer table type. Type: string (or Expression with resultType string).
        :param Any sql_writer_use_table_lock: Whether to use table lock during bulk copy. Type: boolean (or Expression with resultType boolean).
        :param Mapping[str, 'StoredProcedureParameterResponse'] stored_procedure_parameters: SQL stored procedure parameters.
        :param Any stored_procedure_table_type_parameter_name: The stored procedure parameter name of the table type. Type: string (or Expression with resultType string).
        :param Any table_option: The option to handle sink table, such as autoCreate. For now only 'autoCreate' value is supported. Type: string (or Expression with resultType string).
        :param 'SqlUpsertSettingsResponse' upsert_settings: SQL upsert settings.
        :param Any write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        :param Any write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any write_behavior: Write behavior when copying data into sql. Type: SqlWriteBehaviorEnum (or Expression with resultType SqlWriteBehaviorEnum)
        """
        pulumi.set(__self__, "type", 'SqlSink')
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if pre_copy_script is not None:
            pulumi.set(__self__, "pre_copy_script", pre_copy_script)
        if sink_retry_count is not None:
            pulumi.set(__self__, "sink_retry_count", sink_retry_count)
        if sink_retry_wait is not None:
            pulumi.set(__self__, "sink_retry_wait", sink_retry_wait)
        if sql_writer_stored_procedure_name is not None:
            pulumi.set(__self__, "sql_writer_stored_procedure_name", sql_writer_stored_procedure_name)
        if sql_writer_table_type is not None:
            pulumi.set(__self__, "sql_writer_table_type", sql_writer_table_type)
        if sql_writer_use_table_lock is not None:
            pulumi.set(__self__, "sql_writer_use_table_lock", sql_writer_use_table_lock)
        if stored_procedure_parameters is not None:
            pulumi.set(__self__, "stored_procedure_parameters", stored_procedure_parameters)
        if stored_procedure_table_type_parameter_name is not None:
            pulumi.set(__self__, "stored_procedure_table_type_parameter_name", stored_procedure_table_type_parameter_name)
        if table_option is not None:
            pulumi.set(__self__, "table_option", table_option)
        if upsert_settings is not None:
            pulumi.set(__self__, "upsert_settings", upsert_settings)
        if write_batch_size is not None:
            pulumi.set(__self__, "write_batch_size", write_batch_size)
        if write_batch_timeout is not None:
            pulumi.set(__self__, "write_batch_timeout", write_batch_timeout)
        if write_behavior is not None:
            pulumi.set(__self__, "write_behavior", write_behavior)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy sink type.
        Expected value is 'SqlSink'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="preCopyScript")
    def pre_copy_script(self) -> Optional[Any]:
        """
        SQL pre-copy script. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "pre_copy_script")

    @property
    @pulumi.getter(name="sinkRetryCount")
    def sink_retry_count(self) -> Optional[Any]:
        """
        Sink retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sink_retry_count")

    @property
    @pulumi.getter(name="sinkRetryWait")
    def sink_retry_wait(self) -> Optional[Any]:
        """
        Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "sink_retry_wait")

    @property
    @pulumi.getter(name="sqlWriterStoredProcedureName")
    def sql_writer_stored_procedure_name(self) -> Optional[Any]:
        """
        SQL writer stored procedure name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sql_writer_stored_procedure_name")

    @property
    @pulumi.getter(name="sqlWriterTableType")
    def sql_writer_table_type(self) -> Optional[Any]:
        """
        SQL writer table type. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sql_writer_table_type")

    @property
    @pulumi.getter(name="sqlWriterUseTableLock")
    def sql_writer_use_table_lock(self) -> Optional[Any]:
        """
        Whether to use table lock during bulk copy. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "sql_writer_use_table_lock")

    @property
    @pulumi.getter(name="storedProcedureParameters")
    def stored_procedure_parameters(self) -> Optional[Mapping[str, 'outputs.StoredProcedureParameterResponse']]:
        """
        SQL stored procedure parameters.
        """
        return pulumi.get(self, "stored_procedure_parameters")

    @property
    @pulumi.getter(name="storedProcedureTableTypeParameterName")
    def stored_procedure_table_type_parameter_name(self) -> Optional[Any]:
        """
        The stored procedure parameter name of the table type. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "stored_procedure_table_type_parameter_name")

    @property
    @pulumi.getter(name="tableOption")
    def table_option(self) -> Optional[Any]:
        """
        The option to handle sink table, such as autoCreate. For now only 'autoCreate' value is supported. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_option")

    @property
    @pulumi.getter(name="upsertSettings")
    def upsert_settings(self) -> Optional['outputs.SqlUpsertSettingsResponse']:
        """
        SQL upsert settings.
        """
        return pulumi.get(self, "upsert_settings")

    @property
    @pulumi.getter(name="writeBatchSize")
    def write_batch_size(self) -> Optional[Any]:
        """
        Write batch size. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "write_batch_size")

    @property
    @pulumi.getter(name="writeBatchTimeout")
    def write_batch_timeout(self) -> Optional[Any]:
        """
        Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "write_batch_timeout")

    @property
    @pulumi.getter(name="writeBehavior")
    def write_behavior(self) -> Optional[Any]:
        """
        Write behavior when copying data into sql. Type: SqlWriteBehaviorEnum (or Expression with resultType SqlWriteBehaviorEnum)
        """
        return pulumi.get(self, "write_behavior")


@pulumi.output_type
class SqlSourceResponse(dict):
    """
    A copy activity SQL source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "isolationLevel":
            suggest = "isolation_level"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "partitionOption":
            suggest = "partition_option"
        elif key == "partitionSettings":
            suggest = "partition_settings"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"
        elif key == "sqlReaderQuery":
            suggest = "sql_reader_query"
        elif key == "sqlReaderStoredProcedureName":
            suggest = "sql_reader_stored_procedure_name"
        elif key == "storedProcedureParameters":
            suggest = "stored_procedure_parameters"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SqlSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SqlSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SqlSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 isolation_level: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 partition_option: Optional[Any] = None,
                 partition_settings: Optional['outputs.SqlPartitionSettingsResponse'] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None,
                 sql_reader_query: Optional[Any] = None,
                 sql_reader_stored_procedure_name: Optional[Any] = None,
                 stored_procedure_parameters: Optional[Mapping[str, 'outputs.StoredProcedureParameterResponse']] = None):
        """
        A copy activity SQL source.
        :param str type: Copy source type.
               Expected value is 'SqlSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any isolation_level: Specifies the transaction locking behavior for the SQL source. Allowed values: ReadCommitted/ReadUncommitted/RepeatableRead/Serializable/Snapshot. The default value is ReadCommitted. Type: string (or Expression with resultType string).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any partition_option: The partition mechanism that will be used for Sql read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange".
        :param 'SqlPartitionSettingsResponse' partition_settings: The settings that will be leveraged for Sql source partitioning.
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any sql_reader_query: SQL reader query. Type: string (or Expression with resultType string).
        :param Any sql_reader_stored_procedure_name: Name of the stored procedure for a SQL Database source. This cannot be used at the same time as SqlReaderQuery. Type: string (or Expression with resultType string).
        :param Mapping[str, 'StoredProcedureParameterResponse'] stored_procedure_parameters: Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}".
        """
        pulumi.set(__self__, "type", 'SqlSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if isolation_level is not None:
            pulumi.set(__self__, "isolation_level", isolation_level)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if partition_option is not None:
            pulumi.set(__self__, "partition_option", partition_option)
        if partition_settings is not None:
            pulumi.set(__self__, "partition_settings", partition_settings)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)
        if sql_reader_query is not None:
            pulumi.set(__self__, "sql_reader_query", sql_reader_query)
        if sql_reader_stored_procedure_name is not None:
            pulumi.set(__self__, "sql_reader_stored_procedure_name", sql_reader_stored_procedure_name)
        if stored_procedure_parameters is not None:
            pulumi.set(__self__, "stored_procedure_parameters", stored_procedure_parameters)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'SqlSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="isolationLevel")
    def isolation_level(self) -> Optional[Any]:
        """
        Specifies the transaction locking behavior for the SQL source. Allowed values: ReadCommitted/ReadUncommitted/RepeatableRead/Serializable/Snapshot. The default value is ReadCommitted. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "isolation_level")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="partitionOption")
    def partition_option(self) -> Optional[Any]:
        """
        The partition mechanism that will be used for Sql read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange".
        """
        return pulumi.get(self, "partition_option")

    @property
    @pulumi.getter(name="partitionSettings")
    def partition_settings(self) -> Optional['outputs.SqlPartitionSettingsResponse']:
        """
        The settings that will be leveraged for Sql source partitioning.
        """
        return pulumi.get(self, "partition_settings")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")

    @property
    @pulumi.getter(name="sqlReaderQuery")
    def sql_reader_query(self) -> Optional[Any]:
        """
        SQL reader query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sql_reader_query")

    @property
    @pulumi.getter(name="sqlReaderStoredProcedureName")
    def sql_reader_stored_procedure_name(self) -> Optional[Any]:
        """
        Name of the stored procedure for a SQL Database source. This cannot be used at the same time as SqlReaderQuery. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "sql_reader_stored_procedure_name")

    @property
    @pulumi.getter(name="storedProcedureParameters")
    def stored_procedure_parameters(self) -> Optional[Mapping[str, 'outputs.StoredProcedureParameterResponse']]:
        """
        Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}".
        """
        return pulumi.get(self, "stored_procedure_parameters")


@pulumi.output_type
class SqlUpsertSettingsResponse(dict):
    """
    Sql upsert option settings
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "interimSchemaName":
            suggest = "interim_schema_name"
        elif key == "useTempDB":
            suggest = "use_temp_db"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SqlUpsertSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SqlUpsertSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SqlUpsertSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 interim_schema_name: Optional[Any] = None,
                 keys: Optional[Any] = None,
                 use_temp_db: Optional[Any] = None):
        """
        Sql upsert option settings
        :param Any interim_schema_name: Schema name for interim table. Type: string (or Expression with resultType string).
        :param Any keys: Key column names for unique row identification. Type: array of strings (or Expression with resultType array of strings).
        :param Any use_temp_db: Specifies whether to use temp db for upsert interim table. Type: boolean (or Expression with resultType boolean).
        """
        if interim_schema_name is not None:
            pulumi.set(__self__, "interim_schema_name", interim_schema_name)
        if keys is not None:
            pulumi.set(__self__, "keys", keys)
        if use_temp_db is not None:
            pulumi.set(__self__, "use_temp_db", use_temp_db)

    @property
    @pulumi.getter(name="interimSchemaName")
    def interim_schema_name(self) -> Optional[Any]:
        """
        Schema name for interim table. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "interim_schema_name")

    @property
    @pulumi.getter
    def keys(self) -> Optional[Any]:
        """
        Key column names for unique row identification. Type: array of strings (or Expression with resultType array of strings).
        """
        return pulumi.get(self, "keys")

    @property
    @pulumi.getter(name="useTempDB")
    def use_temp_db(self) -> Optional[Any]:
        """
        Specifies whether to use temp db for upsert interim table. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "use_temp_db")


@pulumi.output_type
class SquareLinkedServiceResponse(dict):
    """
    Square Service linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "clientId":
            suggest = "client_id"
        elif key == "clientSecret":
            suggest = "client_secret"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "connectionProperties":
            suggest = "connection_properties"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "redirectUri":
            suggest = "redirect_uri"
        elif key == "useEncryptedEndpoints":
            suggest = "use_encrypted_endpoints"
        elif key == "useHostVerification":
            suggest = "use_host_verification"
        elif key == "usePeerVerification":
            suggest = "use_peer_verification"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SquareLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SquareLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SquareLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 client_id: Optional[Any] = None,
                 client_secret: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 connection_properties: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 host: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 redirect_uri: Optional[Any] = None,
                 use_encrypted_endpoints: Optional[Any] = None,
                 use_host_verification: Optional[Any] = None,
                 use_peer_verification: Optional[Any] = None):
        """
        Square Service linked service.
        :param str type: Type of linked service.
               Expected value is 'Square'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Any client_id: The client ID associated with your Square application.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] client_secret: The client secret associated with your Square application.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any connection_properties: Properties used to connect to Square. It is mutually exclusive with any other properties in the linked service. Type: object.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Any host: The URL of the Square instance. (i.e. mystore.mysquare.com)
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Any redirect_uri: The redirect URL assigned in the Square application dashboard. (i.e. http://localhost:2500)
        :param Any use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        :param Any use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        :param Any use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        pulumi.set(__self__, "type", 'Square')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if client_id is not None:
            pulumi.set(__self__, "client_id", client_id)
        if client_secret is not None:
            pulumi.set(__self__, "client_secret", client_secret)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if connection_properties is not None:
            pulumi.set(__self__, "connection_properties", connection_properties)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if host is not None:
            pulumi.set(__self__, "host", host)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if redirect_uri is not None:
            pulumi.set(__self__, "redirect_uri", redirect_uri)
        if use_encrypted_endpoints is not None:
            pulumi.set(__self__, "use_encrypted_endpoints", use_encrypted_endpoints)
        if use_host_verification is not None:
            pulumi.set(__self__, "use_host_verification", use_host_verification)
        if use_peer_verification is not None:
            pulumi.set(__self__, "use_peer_verification", use_peer_verification)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Square'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="clientId")
    def client_id(self) -> Optional[Any]:
        """
        The client ID associated with your Square application.
        """
        return pulumi.get(self, "client_id")

    @property
    @pulumi.getter(name="clientSecret")
    def client_secret(self) -> Optional[Any]:
        """
        The client secret associated with your Square application.
        """
        return pulumi.get(self, "client_secret")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="connectionProperties")
    def connection_properties(self) -> Optional[Any]:
        """
        Properties used to connect to Square. It is mutually exclusive with any other properties in the linked service. Type: object.
        """
        return pulumi.get(self, "connection_properties")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def host(self) -> Optional[Any]:
        """
        The URL of the Square instance. (i.e. mystore.mysquare.com)
        """
        return pulumi.get(self, "host")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="redirectUri")
    def redirect_uri(self) -> Optional[Any]:
        """
        The redirect URL assigned in the Square application dashboard. (i.e. http://localhost:2500)
        """
        return pulumi.get(self, "redirect_uri")

    @property
    @pulumi.getter(name="useEncryptedEndpoints")
    def use_encrypted_endpoints(self) -> Optional[Any]:
        """
        Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        """
        return pulumi.get(self, "use_encrypted_endpoints")

    @property
    @pulumi.getter(name="useHostVerification")
    def use_host_verification(self) -> Optional[Any]:
        """
        Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_host_verification")

    @property
    @pulumi.getter(name="usePeerVerification")
    def use_peer_verification(self) -> Optional[Any]:
        """
        Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_peer_verification")


@pulumi.output_type
class SquareObjectDatasetResponse(dict):
    """
    Square Service dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SquareObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SquareObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SquareObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Square Service dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'SquareObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'SquareObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'SquareObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class SquareSourceResponse(dict):
    """
    A copy activity Square Service source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SquareSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SquareSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SquareSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Square Service source.
        :param str type: Copy source type.
               Expected value is 'SquareSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'SquareSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'SquareSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class SsisEnvironmentReferenceResponse(dict):
    """
    Ssis environment reference.
    """
    def __init__(__self__, *,
                 environment_folder_name: Optional[str] = None,
                 environment_name: Optional[str] = None,
                 id: Optional[float] = None,
                 reference_type: Optional[str] = None):
        """
        Ssis environment reference.
        :param str environment_folder_name: Environment folder name.
        :param str environment_name: Environment name.
        :param float id: Environment reference id.
        :param str reference_type: Reference type
        """
        if environment_folder_name is not None:
            pulumi.set(__self__, "environment_folder_name", environment_folder_name)
        if environment_name is not None:
            pulumi.set(__self__, "environment_name", environment_name)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if reference_type is not None:
            pulumi.set(__self__, "reference_type", reference_type)

    @property
    @pulumi.getter(name="environmentFolderName")
    def environment_folder_name(self) -> Optional[str]:
        """
        Environment folder name.
        """
        return pulumi.get(self, "environment_folder_name")

    @property
    @pulumi.getter(name="environmentName")
    def environment_name(self) -> Optional[str]:
        """
        Environment name.
        """
        return pulumi.get(self, "environment_name")

    @property
    @pulumi.getter
    def id(self) -> Optional[float]:
        """
        Environment reference id.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="referenceType")
    def reference_type(self) -> Optional[str]:
        """
        Reference type
        """
        return pulumi.get(self, "reference_type")


@pulumi.output_type
class SsisEnvironmentResponse(dict):
    """
    Ssis environment.
    """
    def __init__(__self__, *,
                 type: str,
                 description: Optional[str] = None,
                 folder_id: Optional[float] = None,
                 id: Optional[float] = None,
                 name: Optional[str] = None,
                 variables: Optional[Sequence['outputs.SsisVariableResponse']] = None):
        """
        Ssis environment.
        :param str type: The type of SSIS object metadata.
               Expected value is 'Environment'.
        :param str description: Metadata description.
        :param float folder_id: Folder id which contains environment.
        :param float id: Metadata id.
        :param str name: Metadata name.
        :param Sequence['SsisVariableResponse'] variables: Variable in environment
        """
        pulumi.set(__self__, "type", 'Environment')
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder_id is not None:
            pulumi.set(__self__, "folder_id", folder_id)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if variables is not None:
            pulumi.set(__self__, "variables", variables)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of SSIS object metadata.
        Expected value is 'Environment'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Metadata description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="folderId")
    def folder_id(self) -> Optional[float]:
        """
        Folder id which contains environment.
        """
        return pulumi.get(self, "folder_id")

    @property
    @pulumi.getter
    def id(self) -> Optional[float]:
        """
        Metadata id.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def name(self) -> Optional[str]:
        """
        Metadata name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def variables(self) -> Optional[Sequence['outputs.SsisVariableResponse']]:
        """
        Variable in environment
        """
        return pulumi.get(self, "variables")


@pulumi.output_type
class SsisFolderResponse(dict):
    """
    Ssis folder.
    """
    def __init__(__self__, *,
                 type: str,
                 description: Optional[str] = None,
                 id: Optional[float] = None,
                 name: Optional[str] = None):
        """
        Ssis folder.
        :param str type: The type of SSIS object metadata.
               Expected value is 'Folder'.
        :param str description: Metadata description.
        :param float id: Metadata id.
        :param str name: Metadata name.
        """
        pulumi.set(__self__, "type", 'Folder')
        if description is not None:
            pulumi.set(__self__, "description", description)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of SSIS object metadata.
        Expected value is 'Folder'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Metadata description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def id(self) -> Optional[float]:
        """
        Metadata id.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def name(self) -> Optional[str]:
        """
        Metadata name.
        """
        return pulumi.get(self, "name")


@pulumi.output_type
class SsisPackageResponse(dict):
    """
    Ssis Package.
    """
    def __init__(__self__, *,
                 type: str,
                 description: Optional[str] = None,
                 folder_id: Optional[float] = None,
                 id: Optional[float] = None,
                 name: Optional[str] = None,
                 parameters: Optional[Sequence['outputs.SsisParameterResponse']] = None,
                 project_id: Optional[float] = None,
                 project_version: Optional[float] = None):
        """
        Ssis Package.
        :param str type: The type of SSIS object metadata.
               Expected value is 'Package'.
        :param str description: Metadata description.
        :param float folder_id: Folder id which contains package.
        :param float id: Metadata id.
        :param str name: Metadata name.
        :param Sequence['SsisParameterResponse'] parameters: Parameters in package
        :param float project_id: Project id which contains package.
        :param float project_version: Project version which contains package.
        """
        pulumi.set(__self__, "type", 'Package')
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder_id is not None:
            pulumi.set(__self__, "folder_id", folder_id)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if project_id is not None:
            pulumi.set(__self__, "project_id", project_id)
        if project_version is not None:
            pulumi.set(__self__, "project_version", project_version)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of SSIS object metadata.
        Expected value is 'Package'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Metadata description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="folderId")
    def folder_id(self) -> Optional[float]:
        """
        Folder id which contains package.
        """
        return pulumi.get(self, "folder_id")

    @property
    @pulumi.getter
    def id(self) -> Optional[float]:
        """
        Metadata id.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def name(self) -> Optional[str]:
        """
        Metadata name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Sequence['outputs.SsisParameterResponse']]:
        """
        Parameters in package
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="projectId")
    def project_id(self) -> Optional[float]:
        """
        Project id which contains package.
        """
        return pulumi.get(self, "project_id")

    @property
    @pulumi.getter(name="projectVersion")
    def project_version(self) -> Optional[float]:
        """
        Project version which contains package.
        """
        return pulumi.get(self, "project_version")


@pulumi.output_type
class SsisParameterResponse(dict):
    """
    Ssis parameter.
    """
    def __init__(__self__, *,
                 data_type: Optional[str] = None,
                 default_value: Optional[str] = None,
                 description: Optional[str] = None,
                 design_default_value: Optional[str] = None,
                 id: Optional[float] = None,
                 name: Optional[str] = None,
                 required: Optional[bool] = None,
                 sensitive: Optional[bool] = None,
                 sensitive_default_value: Optional[str] = None,
                 value_set: Optional[bool] = None,
                 value_type: Optional[str] = None,
                 variable: Optional[str] = None):
        """
        Ssis parameter.
        :param str data_type: Parameter type.
        :param str default_value: Default value of parameter.
        :param str description: Parameter description.
        :param str design_default_value: Design default value of parameter.
        :param float id: Parameter id.
        :param str name: Parameter name.
        :param bool required: Whether parameter is required.
        :param bool sensitive: Whether parameter is sensitive.
        :param str sensitive_default_value: Default sensitive value of parameter.
        :param bool value_set: Parameter value set.
        :param str value_type: Parameter value type.
        :param str variable: Parameter reference variable.
        """
        if data_type is not None:
            pulumi.set(__self__, "data_type", data_type)
        if default_value is not None:
            pulumi.set(__self__, "default_value", default_value)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if design_default_value is not None:
            pulumi.set(__self__, "design_default_value", design_default_value)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if required is not None:
            pulumi.set(__self__, "required", required)
        if sensitive is not None:
            pulumi.set(__self__, "sensitive", sensitive)
        if sensitive_default_value is not None:
            pulumi.set(__self__, "sensitive_default_value", sensitive_default_value)
        if value_set is not None:
            pulumi.set(__self__, "value_set", value_set)
        if value_type is not None:
            pulumi.set(__self__, "value_type", value_type)
        if variable is not None:
            pulumi.set(__self__, "variable", variable)

    @property
    @pulumi.getter(name="dataType")
    def data_type(self) -> Optional[str]:
        """
        Parameter type.
        """
        return pulumi.get(self, "data_type")

    @property
    @pulumi.getter(name="defaultValue")
    def default_value(self) -> Optional[str]:
        """
        Default value of parameter.
        """
        return pulumi.get(self, "default_value")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Parameter description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="designDefaultValue")
    def design_default_value(self) -> Optional[str]:
        """
        Design default value of parameter.
        """
        return pulumi.get(self, "design_default_value")

    @property
    @pulumi.getter
    def id(self) -> Optional[float]:
        """
        Parameter id.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def name(self) -> Optional[str]:
        """
        Parameter name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def required(self) -> Optional[bool]:
        """
        Whether parameter is required.
        """
        return pulumi.get(self, "required")

    @property
    @pulumi.getter
    def sensitive(self) -> Optional[bool]:
        """
        Whether parameter is sensitive.
        """
        return pulumi.get(self, "sensitive")

    @property
    @pulumi.getter(name="sensitiveDefaultValue")
    def sensitive_default_value(self) -> Optional[str]:
        """
        Default sensitive value of parameter.
        """
        return pulumi.get(self, "sensitive_default_value")

    @property
    @pulumi.getter(name="valueSet")
    def value_set(self) -> Optional[bool]:
        """
        Parameter value set.
        """
        return pulumi.get(self, "value_set")

    @property
    @pulumi.getter(name="valueType")
    def value_type(self) -> Optional[str]:
        """
        Parameter value type.
        """
        return pulumi.get(self, "value_type")

    @property
    @pulumi.getter
    def variable(self) -> Optional[str]:
        """
        Parameter reference variable.
        """
        return pulumi.get(self, "variable")


@pulumi.output_type
class SsisProjectResponse(dict):
    """
    Ssis project.
    """
    def __init__(__self__, *,
                 type: str,
                 description: Optional[str] = None,
                 environment_refs: Optional[Sequence['outputs.SsisEnvironmentReferenceResponse']] = None,
                 folder_id: Optional[float] = None,
                 id: Optional[float] = None,
                 name: Optional[str] = None,
                 parameters: Optional[Sequence['outputs.SsisParameterResponse']] = None,
                 version: Optional[float] = None):
        """
        Ssis project.
        :param str type: The type of SSIS object metadata.
               Expected value is 'Project'.
        :param str description: Metadata description.
        :param Sequence['SsisEnvironmentReferenceResponse'] environment_refs: Environment reference in project
        :param float folder_id: Folder id which contains project.
        :param float id: Metadata id.
        :param str name: Metadata name.
        :param Sequence['SsisParameterResponse'] parameters: Parameters in project
        :param float version: Project version.
        """
        pulumi.set(__self__, "type", 'Project')
        if description is not None:
            pulumi.set(__self__, "description", description)
        if environment_refs is not None:
            pulumi.set(__self__, "environment_refs", environment_refs)
        if folder_id is not None:
            pulumi.set(__self__, "folder_id", folder_id)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of SSIS object metadata.
        Expected value is 'Project'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Metadata description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="environmentRefs")
    def environment_refs(self) -> Optional[Sequence['outputs.SsisEnvironmentReferenceResponse']]:
        """
        Environment reference in project
        """
        return pulumi.get(self, "environment_refs")

    @property
    @pulumi.getter(name="folderId")
    def folder_id(self) -> Optional[float]:
        """
        Folder id which contains project.
        """
        return pulumi.get(self, "folder_id")

    @property
    @pulumi.getter
    def id(self) -> Optional[float]:
        """
        Metadata id.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def name(self) -> Optional[str]:
        """
        Metadata name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Sequence['outputs.SsisParameterResponse']]:
        """
        Parameters in project
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def version(self) -> Optional[float]:
        """
        Project version.
        """
        return pulumi.get(self, "version")


@pulumi.output_type
class SsisVariableResponse(dict):
    """
    Ssis variable.
    """
    def __init__(__self__, *,
                 data_type: Optional[str] = None,
                 description: Optional[str] = None,
                 id: Optional[float] = None,
                 name: Optional[str] = None,
                 sensitive: Optional[bool] = None,
                 sensitive_value: Optional[str] = None,
                 value: Optional[str] = None):
        """
        Ssis variable.
        :param str data_type: Variable type.
        :param str description: Variable description.
        :param float id: Variable id.
        :param str name: Variable name.
        :param bool sensitive: Whether variable is sensitive.
        :param str sensitive_value: Variable sensitive value.
        :param str value: Variable value.
        """
        if data_type is not None:
            pulumi.set(__self__, "data_type", data_type)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if sensitive is not None:
            pulumi.set(__self__, "sensitive", sensitive)
        if sensitive_value is not None:
            pulumi.set(__self__, "sensitive_value", sensitive_value)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter(name="dataType")
    def data_type(self) -> Optional[str]:
        """
        Variable type.
        """
        return pulumi.get(self, "data_type")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Variable description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def id(self) -> Optional[float]:
        """
        Variable id.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def name(self) -> Optional[str]:
        """
        Variable name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def sensitive(self) -> Optional[bool]:
        """
        Whether variable is sensitive.
        """
        return pulumi.get(self, "sensitive")

    @property
    @pulumi.getter(name="sensitiveValue")
    def sensitive_value(self) -> Optional[str]:
        """
        Variable sensitive value.
        """
        return pulumi.get(self, "sensitive_value")

    @property
    @pulumi.getter
    def value(self) -> Optional[str]:
        """
        Variable value.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class StagingSettingsResponse(dict):
    """
    Staging settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "enableCompression":
            suggest = "enable_compression"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in StagingSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        StagingSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        StagingSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 enable_compression: Optional[Any] = None,
                 path: Optional[Any] = None):
        """
        Staging settings.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Staging linked service reference.
        :param Any enable_compression: Specifies whether to use compression when copying data via an interim staging. Default value is false. Type: boolean (or Expression with resultType boolean).
        :param Any path: The path to storage for storing the interim data. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        if enable_compression is not None:
            pulumi.set(__self__, "enable_compression", enable_compression)
        if path is not None:
            pulumi.set(__self__, "path", path)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Staging linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter(name="enableCompression")
    def enable_compression(self) -> Optional[Any]:
        """
        Specifies whether to use compression when copying data via an interim staging. Default value is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "enable_compression")

    @property
    @pulumi.getter
    def path(self) -> Optional[Any]:
        """
        The path to storage for storing the interim data. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "path")


@pulumi.output_type
class StoredProcedureParameterResponse(dict):
    """
    SQL stored procedure parameter.
    """
    def __init__(__self__, *,
                 type: Optional[str] = None,
                 value: Optional[Any] = None):
        """
        SQL stored procedure parameter.
        :param str type: Stored procedure parameter type.
        :param Any value: Stored procedure parameter value. Type: string (or Expression with resultType string).
        """
        if type is not None:
            pulumi.set(__self__, "type", type)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def type(self) -> Optional[str]:
        """
        Stored procedure parameter type.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def value(self) -> Optional[Any]:
        """
        Stored procedure parameter value. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class SwitchActivityResponse(dict):
    """
    This activity evaluates an expression and executes activities under the cases property that correspond to the expression evaluation expected in the equals property.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "defaultActivities":
            suggest = "default_activities"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SwitchActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SwitchActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SwitchActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 on: 'outputs.ExpressionResponse',
                 type: str,
                 cases: Optional[Sequence['outputs.SwitchCaseResponse']] = None,
                 default_activities: Optional[Sequence[Any]] = None,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        This activity evaluates an expression and executes activities under the cases property that correspond to the expression evaluation expected in the equals property.
        :param str name: Activity name.
        :param 'ExpressionResponse' on: An expression that would evaluate to a string or integer. This is used to determine the block of activities in cases that will be executed.
        :param str type: Type of activity.
               Expected value is 'Switch'.
        :param Sequence['SwitchCaseResponse'] cases: List of cases that correspond to expected values of the 'on' property. This is an optional property and if not provided, the activity will execute activities provided in defaultActivities.
        :param Sequence[Union['AppendVariableActivityResponse', 'AzureDataExplorerCommandActivityResponse', 'AzureFunctionActivityResponse', 'AzureMLBatchExecutionActivityResponse', 'AzureMLExecutePipelineActivityResponse', 'AzureMLUpdateResourceActivityResponse', 'ControlActivityResponse', 'CopyActivityResponse', 'CustomActivityResponse', 'DataLakeAnalyticsUSQLActivityResponse', 'DatabricksNotebookActivityResponse', 'DatabricksSparkJarActivityResponse', 'DatabricksSparkPythonActivityResponse', 'DeleteActivityResponse', 'ExecuteDataFlowActivityResponse', 'ExecutePipelineActivityResponse', 'ExecuteSSISPackageActivityResponse', 'ExecuteWranglingDataflowActivityResponse', 'ExecutionActivityResponse', 'FailActivityResponse', 'FilterActivityResponse', 'ForEachActivityResponse', 'GetMetadataActivityResponse', 'HDInsightHiveActivityResponse', 'HDInsightMapReduceActivityResponse', 'HDInsightPigActivityResponse', 'HDInsightSparkActivityResponse', 'HDInsightStreamingActivityResponse', 'IfConditionActivityResponse', 'LookupActivityResponse', 'ScriptActivityResponse', 'SetVariableActivityResponse', 'SqlServerStoredProcedureActivityResponse', 'SwitchActivityResponse', 'UntilActivityResponse', 'ValidationActivityResponse', 'WaitActivityResponse', 'WebActivityResponse', 'WebHookActivityResponse']] default_activities: List of activities to execute if no case condition is satisfied. This is an optional property and if not provided, the activity will exit without any action.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "on", on)
        pulumi.set(__self__, "type", 'Switch')
        if cases is not None:
            pulumi.set(__self__, "cases", cases)
        if default_activities is not None:
            pulumi.set(__self__, "default_activities", default_activities)
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def on(self) -> 'outputs.ExpressionResponse':
        """
        An expression that would evaluate to a string or integer. This is used to determine the block of activities in cases that will be executed.
        """
        return pulumi.get(self, "on")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'Switch'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def cases(self) -> Optional[Sequence['outputs.SwitchCaseResponse']]:
        """
        List of cases that correspond to expected values of the 'on' property. This is an optional property and if not provided, the activity will execute activities provided in defaultActivities.
        """
        return pulumi.get(self, "cases")

    @property
    @pulumi.getter(name="defaultActivities")
    def default_activities(self) -> Optional[Sequence[Any]]:
        """
        List of activities to execute if no case condition is satisfied. This is an optional property and if not provided, the activity will exit without any action.
        """
        return pulumi.get(self, "default_activities")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class SwitchCaseResponse(dict):
    """
    Switch cases with have a value and corresponding activities.
    """
    def __init__(__self__, *,
                 activities: Optional[Sequence[Any]] = None,
                 value: Optional[str] = None):
        """
        Switch cases with have a value and corresponding activities.
        :param Sequence[Union['AppendVariableActivityResponse', 'AzureDataExplorerCommandActivityResponse', 'AzureFunctionActivityResponse', 'AzureMLBatchExecutionActivityResponse', 'AzureMLExecutePipelineActivityResponse', 'AzureMLUpdateResourceActivityResponse', 'ControlActivityResponse', 'CopyActivityResponse', 'CustomActivityResponse', 'DataLakeAnalyticsUSQLActivityResponse', 'DatabricksNotebookActivityResponse', 'DatabricksSparkJarActivityResponse', 'DatabricksSparkPythonActivityResponse', 'DeleteActivityResponse', 'ExecuteDataFlowActivityResponse', 'ExecutePipelineActivityResponse', 'ExecuteSSISPackageActivityResponse', 'ExecuteWranglingDataflowActivityResponse', 'ExecutionActivityResponse', 'FailActivityResponse', 'FilterActivityResponse', 'ForEachActivityResponse', 'GetMetadataActivityResponse', 'HDInsightHiveActivityResponse', 'HDInsightMapReduceActivityResponse', 'HDInsightPigActivityResponse', 'HDInsightSparkActivityResponse', 'HDInsightStreamingActivityResponse', 'IfConditionActivityResponse', 'LookupActivityResponse', 'ScriptActivityResponse', 'SetVariableActivityResponse', 'SqlServerStoredProcedureActivityResponse', 'SwitchActivityResponse', 'UntilActivityResponse', 'ValidationActivityResponse', 'WaitActivityResponse', 'WebActivityResponse', 'WebHookActivityResponse']] activities: List of activities to execute for satisfied case condition.
        :param str value: Expected value that satisfies the expression result of the 'on' property.
        """
        if activities is not None:
            pulumi.set(__self__, "activities", activities)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def activities(self) -> Optional[Sequence[Any]]:
        """
        List of activities to execute for satisfied case condition.
        """
        return pulumi.get(self, "activities")

    @property
    @pulumi.getter
    def value(self) -> Optional[str]:
        """
        Expected value that satisfies the expression result of the 'on' property.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class SybaseLinkedServiceResponse(dict):
    """
    Linked service for Sybase data source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SybaseLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SybaseLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SybaseLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 database: Any,
                 server: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 authentication_type: Optional[str] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 schema: Optional[Any] = None,
                 username: Optional[Any] = None):
        """
        Linked service for Sybase data source.
        :param Any database: Database name for connection. Type: string (or Expression with resultType string).
        :param Any server: Server name for connection. Type: string (or Expression with resultType string).
        :param str type: Type of linked service.
               Expected value is 'Sybase'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param str authentication_type: AuthenticationType to be used for connection.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password for authentication.
        :param Any schema: Schema name for connection. Type: string (or Expression with resultType string).
        :param Any username: Username for authentication. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "database", database)
        pulumi.set(__self__, "server", server)
        pulumi.set(__self__, "type", 'Sybase')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if authentication_type is not None:
            pulumi.set(__self__, "authentication_type", authentication_type)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter
    def database(self) -> Any:
        """
        Database name for connection. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "database")

    @property
    @pulumi.getter
    def server(self) -> Any:
        """
        Server name for connection. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "server")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Sybase'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> Optional[str]:
        """
        AuthenticationType to be used for connection.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        Password for authentication.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Schema name for connection. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def username(self) -> Optional[Any]:
        """
        Username for authentication. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "username")


@pulumi.output_type
class SybaseSourceResponse(dict):
    """
    A copy activity source for Sybase databases.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SybaseSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SybaseSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SybaseSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for Sybase databases.
        :param str type: Copy source type.
               Expected value is 'SybaseSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: Database query. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'SybaseSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'SybaseSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        Database query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class SybaseTableDatasetResponse(dict):
    """
    The Sybase table dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SybaseTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SybaseTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SybaseTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        The Sybase table dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'SybaseTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The Sybase table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'SybaseTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'SybaseTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The Sybase table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class TabularSourceResponse(dict):
    """
    Copy activity sources of tabular type.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in TabularSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        TabularSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        TabularSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        Copy activity sources of tabular type.
        :param str type: Copy source type.
               Expected value is 'TabularSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'TabularSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'TabularSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class TarGZipReadSettingsResponse(dict):
    """
    The TarGZip compression read settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "preserveCompressionFileNameAsFolder":
            suggest = "preserve_compression_file_name_as_folder"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in TarGZipReadSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        TarGZipReadSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        TarGZipReadSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 preserve_compression_file_name_as_folder: Optional[Any] = None):
        """
        The TarGZip compression read settings.
        :param str type: The Compression setting type.
               Expected value is 'TarGZipReadSettings'.
        :param Any preserve_compression_file_name_as_folder: Preserve the compression file name as folder path. Type: boolean (or Expression with resultType boolean).
        """
        pulumi.set(__self__, "type", 'TarGZipReadSettings')
        if preserve_compression_file_name_as_folder is not None:
            pulumi.set(__self__, "preserve_compression_file_name_as_folder", preserve_compression_file_name_as_folder)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The Compression setting type.
        Expected value is 'TarGZipReadSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="preserveCompressionFileNameAsFolder")
    def preserve_compression_file_name_as_folder(self) -> Optional[Any]:
        """
        Preserve the compression file name as folder path. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "preserve_compression_file_name_as_folder")


@pulumi.output_type
class TarReadSettingsResponse(dict):
    """
    The Tar compression read settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "preserveCompressionFileNameAsFolder":
            suggest = "preserve_compression_file_name_as_folder"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in TarReadSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        TarReadSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        TarReadSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 preserve_compression_file_name_as_folder: Optional[Any] = None):
        """
        The Tar compression read settings.
        :param str type: The Compression setting type.
               Expected value is 'TarReadSettings'.
        :param Any preserve_compression_file_name_as_folder: Preserve the compression file name as folder path. Type: boolean (or Expression with resultType boolean).
        """
        pulumi.set(__self__, "type", 'TarReadSettings')
        if preserve_compression_file_name_as_folder is not None:
            pulumi.set(__self__, "preserve_compression_file_name_as_folder", preserve_compression_file_name_as_folder)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The Compression setting type.
        Expected value is 'TarReadSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="preserveCompressionFileNameAsFolder")
    def preserve_compression_file_name_as_folder(self) -> Optional[Any]:
        """
        Preserve the compression file name as folder path. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "preserve_compression_file_name_as_folder")


@pulumi.output_type
class TeamDeskLinkedServiceResponse(dict):
    """
    Linked service for TeamDesk.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"
        elif key == "apiToken":
            suggest = "api_token"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "userName":
            suggest = "user_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in TeamDeskLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        TeamDeskLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        TeamDeskLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 authentication_type: str,
                 type: str,
                 url: Any,
                 annotations: Optional[Sequence[Any]] = None,
                 api_token: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 user_name: Optional[Any] = None):
        """
        Linked service for TeamDesk.
        :param str authentication_type: The authentication type to use.
        :param str type: Type of linked service.
               Expected value is 'TeamDesk'.
        :param Any url: The url to connect TeamDesk source. Type: string (or Expression with resultType string).
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] api_token: The api token for the TeamDesk source.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The password of the TeamDesk source.
        :param Any user_name: The username of the TeamDesk source. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "authentication_type", authentication_type)
        pulumi.set(__self__, "type", 'TeamDesk')
        pulumi.set(__self__, "url", url)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if api_token is not None:
            pulumi.set(__self__, "api_token", api_token)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if user_name is not None:
            pulumi.set(__self__, "user_name", user_name)

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> str:
        """
        The authentication type to use.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'TeamDesk'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def url(self) -> Any:
        """
        The url to connect TeamDesk source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "url")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="apiToken")
    def api_token(self) -> Optional[Any]:
        """
        The api token for the TeamDesk source.
        """
        return pulumi.get(self, "api_token")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        The password of the TeamDesk source.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="userName")
    def user_name(self) -> Optional[Any]:
        """
        The username of the TeamDesk source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "user_name")


@pulumi.output_type
class TeradataLinkedServiceResponse(dict):
    """
    Linked service for Teradata data source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "connectionString":
            suggest = "connection_string"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in TeradataLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        TeradataLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        TeradataLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 authentication_type: Optional[str] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 connection_string: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 server: Optional[Any] = None,
                 username: Optional[Any] = None):
        """
        Linked service for Teradata data source.
        :param str type: Type of linked service.
               Expected value is 'Teradata'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param str authentication_type: AuthenticationType to be used for connection.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any connection_string: Teradata ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password for authentication.
        :param Any server: Server name for connection. Type: string (or Expression with resultType string).
        :param Any username: Username for authentication. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'Teradata')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if authentication_type is not None:
            pulumi.set(__self__, "authentication_type", authentication_type)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if connection_string is not None:
            pulumi.set(__self__, "connection_string", connection_string)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if server is not None:
            pulumi.set(__self__, "server", server)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Teradata'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> Optional[str]:
        """
        AuthenticationType to be used for connection.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Optional[Any]:
        """
        Teradata ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        Password for authentication.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def server(self) -> Optional[Any]:
        """
        Server name for connection. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "server")

    @property
    @pulumi.getter
    def username(self) -> Optional[Any]:
        """
        Username for authentication. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "username")


@pulumi.output_type
class TeradataPartitionSettingsResponse(dict):
    """
    The settings that will be leveraged for teradata source partitioning.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "partitionColumnName":
            suggest = "partition_column_name"
        elif key == "partitionLowerBound":
            suggest = "partition_lower_bound"
        elif key == "partitionUpperBound":
            suggest = "partition_upper_bound"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in TeradataPartitionSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        TeradataPartitionSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        TeradataPartitionSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 partition_column_name: Optional[Any] = None,
                 partition_lower_bound: Optional[Any] = None,
                 partition_upper_bound: Optional[Any] = None):
        """
        The settings that will be leveraged for teradata source partitioning.
        :param Any partition_column_name: The name of the column that will be used for proceeding range or hash partitioning. Type: string (or Expression with resultType string).
        :param Any partition_lower_bound: The minimum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        :param Any partition_upper_bound: The maximum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        """
        if partition_column_name is not None:
            pulumi.set(__self__, "partition_column_name", partition_column_name)
        if partition_lower_bound is not None:
            pulumi.set(__self__, "partition_lower_bound", partition_lower_bound)
        if partition_upper_bound is not None:
            pulumi.set(__self__, "partition_upper_bound", partition_upper_bound)

    @property
    @pulumi.getter(name="partitionColumnName")
    def partition_column_name(self) -> Optional[Any]:
        """
        The name of the column that will be used for proceeding range or hash partitioning. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_column_name")

    @property
    @pulumi.getter(name="partitionLowerBound")
    def partition_lower_bound(self) -> Optional[Any]:
        """
        The minimum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_lower_bound")

    @property
    @pulumi.getter(name="partitionUpperBound")
    def partition_upper_bound(self) -> Optional[Any]:
        """
        The maximum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "partition_upper_bound")


@pulumi.output_type
class TeradataSourceResponse(dict):
    """
    A copy activity Teradata source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "partitionOption":
            suggest = "partition_option"
        elif key == "partitionSettings":
            suggest = "partition_settings"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in TeradataSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        TeradataSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        TeradataSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 partition_option: Optional[Any] = None,
                 partition_settings: Optional['outputs.TeradataPartitionSettingsResponse'] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Teradata source.
        :param str type: Copy source type.
               Expected value is 'TeradataSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any partition_option: The partition mechanism that will be used for teradata read in parallel. Possible values include: "None", "Hash", "DynamicRange".
        :param 'TeradataPartitionSettingsResponse' partition_settings: The settings that will be leveraged for teradata source partitioning.
        :param Any query: Teradata query. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'TeradataSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if partition_option is not None:
            pulumi.set(__self__, "partition_option", partition_option)
        if partition_settings is not None:
            pulumi.set(__self__, "partition_settings", partition_settings)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'TeradataSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="partitionOption")
    def partition_option(self) -> Optional[Any]:
        """
        The partition mechanism that will be used for teradata read in parallel. Possible values include: "None", "Hash", "DynamicRange".
        """
        return pulumi.get(self, "partition_option")

    @property
    @pulumi.getter(name="partitionSettings")
    def partition_settings(self) -> Optional['outputs.TeradataPartitionSettingsResponse']:
        """
        The settings that will be leveraged for teradata source partitioning.
        """
        return pulumi.get(self, "partition_settings")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        Teradata query. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class TeradataTableDatasetResponse(dict):
    """
    The Teradata database dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in TeradataTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        TeradataTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        TeradataTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 database: Optional[Any] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None):
        """
        The Teradata database dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'TeradataTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param Any database: The database name of Teradata. Type: string (or Expression with resultType string).
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The table name of Teradata. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'TeradataTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if database is not None:
            pulumi.set(__self__, "database", database)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'TeradataTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def database(self) -> Optional[Any]:
        """
        The database name of Teradata. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "database")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The table name of Teradata. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")


@pulumi.output_type
class TextFormatResponse(dict):
    """
    The data stored in text format.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "columnDelimiter":
            suggest = "column_delimiter"
        elif key == "encodingName":
            suggest = "encoding_name"
        elif key == "escapeChar":
            suggest = "escape_char"
        elif key == "firstRowAsHeader":
            suggest = "first_row_as_header"
        elif key == "nullValue":
            suggest = "null_value"
        elif key == "quoteChar":
            suggest = "quote_char"
        elif key == "rowDelimiter":
            suggest = "row_delimiter"
        elif key == "skipLineCount":
            suggest = "skip_line_count"
        elif key == "treatEmptyAsNull":
            suggest = "treat_empty_as_null"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in TextFormatResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        TextFormatResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        TextFormatResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 column_delimiter: Optional[Any] = None,
                 deserializer: Optional[Any] = None,
                 encoding_name: Optional[Any] = None,
                 escape_char: Optional[Any] = None,
                 first_row_as_header: Optional[Any] = None,
                 null_value: Optional[Any] = None,
                 quote_char: Optional[Any] = None,
                 row_delimiter: Optional[Any] = None,
                 serializer: Optional[Any] = None,
                 skip_line_count: Optional[Any] = None,
                 treat_empty_as_null: Optional[Any] = None):
        """
        The data stored in text format.
        :param str type: Type of dataset storage format.
               Expected value is 'TextFormat'.
        :param Any column_delimiter: The column delimiter. Type: string (or Expression with resultType string).
        :param Any deserializer: Deserializer. Type: string (or Expression with resultType string).
        :param Any encoding_name: The code page name of the preferred encoding. If miss, the default value is ΓÇ£utf-8ΓÇ¥, unless BOM denotes another Unicode encoding. Refer to the ΓÇ£NameΓÇ¥ column of the table in the following link to set supported values: https://msdn.microsoft.com/library/system.text.encoding.aspx. Type: string (or Expression with resultType string).
        :param Any escape_char: The escape character. Type: string (or Expression with resultType string).
        :param Any first_row_as_header: When used as input, treat the first row of data as headers. When used as output,write the headers into the output as the first row of data. The default value is false. Type: boolean (or Expression with resultType boolean).
        :param Any null_value: The null value string. Type: string (or Expression with resultType string).
        :param Any quote_char: The quote character. Type: string (or Expression with resultType string).
        :param Any row_delimiter: The row delimiter. Type: string (or Expression with resultType string).
        :param Any serializer: Serializer. Type: string (or Expression with resultType string).
        :param Any skip_line_count: The number of lines/rows to be skipped when parsing text files. The default value is 0. Type: integer (or Expression with resultType integer).
        :param Any treat_empty_as_null: Treat empty column values in the text file as null. The default value is true. Type: boolean (or Expression with resultType boolean).
        """
        pulumi.set(__self__, "type", 'TextFormat')
        if column_delimiter is not None:
            pulumi.set(__self__, "column_delimiter", column_delimiter)
        if deserializer is not None:
            pulumi.set(__self__, "deserializer", deserializer)
        if encoding_name is not None:
            pulumi.set(__self__, "encoding_name", encoding_name)
        if escape_char is not None:
            pulumi.set(__self__, "escape_char", escape_char)
        if first_row_as_header is not None:
            pulumi.set(__self__, "first_row_as_header", first_row_as_header)
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if quote_char is not None:
            pulumi.set(__self__, "quote_char", quote_char)
        if row_delimiter is not None:
            pulumi.set(__self__, "row_delimiter", row_delimiter)
        if serializer is not None:
            pulumi.set(__self__, "serializer", serializer)
        if skip_line_count is not None:
            pulumi.set(__self__, "skip_line_count", skip_line_count)
        if treat_empty_as_null is not None:
            pulumi.set(__self__, "treat_empty_as_null", treat_empty_as_null)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset storage format.
        Expected value is 'TextFormat'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="columnDelimiter")
    def column_delimiter(self) -> Optional[Any]:
        """
        The column delimiter. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "column_delimiter")

    @property
    @pulumi.getter
    def deserializer(self) -> Optional[Any]:
        """
        Deserializer. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "deserializer")

    @property
    @pulumi.getter(name="encodingName")
    def encoding_name(self) -> Optional[Any]:
        """
        The code page name of the preferred encoding. If miss, the default value is ΓÇ£utf-8ΓÇ¥, unless BOM denotes another Unicode encoding. Refer to the ΓÇ£NameΓÇ¥ column of the table in the following link to set supported values: https://msdn.microsoft.com/library/system.text.encoding.aspx. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encoding_name")

    @property
    @pulumi.getter(name="escapeChar")
    def escape_char(self) -> Optional[Any]:
        """
        The escape character. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "escape_char")

    @property
    @pulumi.getter(name="firstRowAsHeader")
    def first_row_as_header(self) -> Optional[Any]:
        """
        When used as input, treat the first row of data as headers. When used as output,write the headers into the output as the first row of data. The default value is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "first_row_as_header")

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[Any]:
        """
        The null value string. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "null_value")

    @property
    @pulumi.getter(name="quoteChar")
    def quote_char(self) -> Optional[Any]:
        """
        The quote character. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "quote_char")

    @property
    @pulumi.getter(name="rowDelimiter")
    def row_delimiter(self) -> Optional[Any]:
        """
        The row delimiter. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "row_delimiter")

    @property
    @pulumi.getter
    def serializer(self) -> Optional[Any]:
        """
        Serializer. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "serializer")

    @property
    @pulumi.getter(name="skipLineCount")
    def skip_line_count(self) -> Optional[Any]:
        """
        The number of lines/rows to be skipped when parsing text files. The default value is 0. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "skip_line_count")

    @property
    @pulumi.getter(name="treatEmptyAsNull")
    def treat_empty_as_null(self) -> Optional[Any]:
        """
        Treat empty column values in the text file as null. The default value is true. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "treat_empty_as_null")


@pulumi.output_type
class TransformationResponse(dict):
    """
    A data flow transformation.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedService":
            suggest = "linked_service"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in TransformationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        TransformationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        TransformationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 dataset: Optional['outputs.DatasetReferenceResponse'] = None,
                 description: Optional[str] = None,
                 flowlet: Optional['outputs.DataFlowReferenceResponse'] = None,
                 linked_service: Optional['outputs.LinkedServiceReferenceResponse'] = None):
        """
        A data flow transformation.
        :param str name: Transformation name.
        :param 'DatasetReferenceResponse' dataset: Dataset reference.
        :param str description: Transformation description.
        :param 'DataFlowReferenceResponse' flowlet: Flowlet Reference
        :param 'LinkedServiceReferenceResponse' linked_service: Linked service reference.
        """
        pulumi.set(__self__, "name", name)
        if dataset is not None:
            pulumi.set(__self__, "dataset", dataset)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if flowlet is not None:
            pulumi.set(__self__, "flowlet", flowlet)
        if linked_service is not None:
            pulumi.set(__self__, "linked_service", linked_service)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Transformation name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def dataset(self) -> Optional['outputs.DatasetReferenceResponse']:
        """
        Dataset reference.
        """
        return pulumi.get(self, "dataset")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Transformation description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def flowlet(self) -> Optional['outputs.DataFlowReferenceResponse']:
        """
        Flowlet Reference
        """
        return pulumi.get(self, "flowlet")

    @property
    @pulumi.getter(name="linkedService")
    def linked_service(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service")


@pulumi.output_type
class TriggerDependencyReferenceResponse(dict):
    """
    Trigger referenced dependency.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "referenceTrigger":
            suggest = "reference_trigger"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in TriggerDependencyReferenceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        TriggerDependencyReferenceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        TriggerDependencyReferenceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 reference_trigger: 'outputs.TriggerReferenceResponse',
                 type: str):
        """
        Trigger referenced dependency.
        :param 'TriggerReferenceResponse' reference_trigger: Referenced trigger.
        :param str type: The type of dependency reference.
               Expected value is 'TriggerDependencyReference'.
        """
        pulumi.set(__self__, "reference_trigger", reference_trigger)
        pulumi.set(__self__, "type", 'TriggerDependencyReference')

    @property
    @pulumi.getter(name="referenceTrigger")
    def reference_trigger(self) -> 'outputs.TriggerReferenceResponse':
        """
        Referenced trigger.
        """
        return pulumi.get(self, "reference_trigger")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of dependency reference.
        Expected value is 'TriggerDependencyReference'.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class TriggerPipelineReferenceResponse(dict):
    """
    Pipeline that needs to be triggered with the given parameters.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "pipelineReference":
            suggest = "pipeline_reference"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in TriggerPipelineReferenceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        TriggerPipelineReferenceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        TriggerPipelineReferenceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 parameters: Optional[Mapping[str, Any]] = None,
                 pipeline_reference: Optional['outputs.PipelineReferenceResponse'] = None):
        """
        Pipeline that needs to be triggered with the given parameters.
        :param Mapping[str, Any] parameters: Pipeline parameters.
        :param 'PipelineReferenceResponse' pipeline_reference: Pipeline reference.
        """
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pipeline_reference is not None:
            pulumi.set(__self__, "pipeline_reference", pipeline_reference)

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, Any]]:
        """
        Pipeline parameters.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="pipelineReference")
    def pipeline_reference(self) -> Optional['outputs.PipelineReferenceResponse']:
        """
        Pipeline reference.
        """
        return pulumi.get(self, "pipeline_reference")


@pulumi.output_type
class TriggerReferenceResponse(dict):
    """
    Trigger reference type.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "referenceName":
            suggest = "reference_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in TriggerReferenceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        TriggerReferenceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        TriggerReferenceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 reference_name: str,
                 type: str):
        """
        Trigger reference type.
        :param str reference_name: Reference trigger name.
        :param str type: Trigger reference type.
        """
        pulumi.set(__self__, "reference_name", reference_name)
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="referenceName")
    def reference_name(self) -> str:
        """
        Reference trigger name.
        """
        return pulumi.get(self, "reference_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Trigger reference type.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class TumblingWindowTriggerDependencyReferenceResponse(dict):
    """
    Referenced tumbling window trigger dependency.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "referenceTrigger":
            suggest = "reference_trigger"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in TumblingWindowTriggerDependencyReferenceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        TumblingWindowTriggerDependencyReferenceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        TumblingWindowTriggerDependencyReferenceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 reference_trigger: 'outputs.TriggerReferenceResponse',
                 type: str,
                 offset: Optional[str] = None,
                 size: Optional[str] = None):
        """
        Referenced tumbling window trigger dependency.
        :param 'TriggerReferenceResponse' reference_trigger: Referenced trigger.
        :param str type: The type of dependency reference.
               Expected value is 'TumblingWindowTriggerDependencyReference'.
        :param str offset: Timespan applied to the start time of a tumbling window when evaluating dependency.
        :param str size: The size of the window when evaluating the dependency. If undefined the frequency of the tumbling window will be used.
        """
        pulumi.set(__self__, "reference_trigger", reference_trigger)
        pulumi.set(__self__, "type", 'TumblingWindowTriggerDependencyReference')
        if offset is not None:
            pulumi.set(__self__, "offset", offset)
        if size is not None:
            pulumi.set(__self__, "size", size)

    @property
    @pulumi.getter(name="referenceTrigger")
    def reference_trigger(self) -> 'outputs.TriggerReferenceResponse':
        """
        Referenced trigger.
        """
        return pulumi.get(self, "reference_trigger")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of dependency reference.
        Expected value is 'TumblingWindowTriggerDependencyReference'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def offset(self) -> Optional[str]:
        """
        Timespan applied to the start time of a tumbling window when evaluating dependency.
        """
        return pulumi.get(self, "offset")

    @property
    @pulumi.getter
    def size(self) -> Optional[str]:
        """
        The size of the window when evaluating the dependency. If undefined the frequency of the tumbling window will be used.
        """
        return pulumi.get(self, "size")


@pulumi.output_type
class TumblingWindowTriggerResponse(dict):
    """
    Trigger that schedules pipeline runs for all fixed time interval windows from a start time without gaps and also supports backfill scenarios (when start time is in the past).
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "maxConcurrency":
            suggest = "max_concurrency"
        elif key == "runtimeState":
            suggest = "runtime_state"
        elif key == "startTime":
            suggest = "start_time"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "endTime":
            suggest = "end_time"
        elif key == "retryPolicy":
            suggest = "retry_policy"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in TumblingWindowTriggerResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        TumblingWindowTriggerResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        TumblingWindowTriggerResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 frequency: str,
                 interval: int,
                 max_concurrency: int,
                 pipeline: 'outputs.TriggerPipelineReferenceResponse',
                 runtime_state: str,
                 start_time: str,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 delay: Optional[Any] = None,
                 depends_on: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 end_time: Optional[str] = None,
                 retry_policy: Optional['outputs.RetryPolicyResponse'] = None):
        """
        Trigger that schedules pipeline runs for all fixed time interval windows from a start time without gaps and also supports backfill scenarios (when start time is in the past).
        :param str frequency: The frequency of the time windows.
        :param int interval: The interval of the time windows. The minimum interval allowed is 15 Minutes.
        :param int max_concurrency: The max number of parallel time windows (ready for execution) for which a new run is triggered.
        :param 'TriggerPipelineReferenceResponse' pipeline: Pipeline for which runs are created when an event is fired for trigger window that is ready.
        :param str runtime_state: Indicates if trigger is running or not. Updated when Start/Stop APIs are called on the Trigger.
        :param str start_time: The start time for the time period for the trigger during which events are fired for windows that are ready. Only UTC time is currently supported.
        :param str type: Trigger type.
               Expected value is 'TumblingWindowTrigger'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the trigger.
        :param Any delay: Specifies how long the trigger waits past due time before triggering new run. It doesn't alter window start and end time. The default is 0. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Sequence[Union['SelfDependencyTumblingWindowTriggerReferenceResponse', 'TriggerDependencyReferenceResponse', 'TumblingWindowTriggerDependencyReferenceResponse']] depends_on: Triggers that this trigger depends on. Only tumbling window triggers are supported.
        :param str description: Trigger description.
        :param str end_time: The end time for the time period for the trigger during which events are fired for windows that are ready. Only UTC time is currently supported.
        :param 'RetryPolicyResponse' retry_policy: Retry policy that will be applied for failed pipeline runs.
        """
        pulumi.set(__self__, "frequency", frequency)
        pulumi.set(__self__, "interval", interval)
        pulumi.set(__self__, "max_concurrency", max_concurrency)
        pulumi.set(__self__, "pipeline", pipeline)
        pulumi.set(__self__, "runtime_state", runtime_state)
        pulumi.set(__self__, "start_time", start_time)
        pulumi.set(__self__, "type", 'TumblingWindowTrigger')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if delay is not None:
            pulumi.set(__self__, "delay", delay)
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if end_time is not None:
            pulumi.set(__self__, "end_time", end_time)
        if retry_policy is not None:
            pulumi.set(__self__, "retry_policy", retry_policy)

    @property
    @pulumi.getter
    def frequency(self) -> str:
        """
        The frequency of the time windows.
        """
        return pulumi.get(self, "frequency")

    @property
    @pulumi.getter
    def interval(self) -> int:
        """
        The interval of the time windows. The minimum interval allowed is 15 Minutes.
        """
        return pulumi.get(self, "interval")

    @property
    @pulumi.getter(name="maxConcurrency")
    def max_concurrency(self) -> int:
        """
        The max number of parallel time windows (ready for execution) for which a new run is triggered.
        """
        return pulumi.get(self, "max_concurrency")

    @property
    @pulumi.getter
    def pipeline(self) -> 'outputs.TriggerPipelineReferenceResponse':
        """
        Pipeline for which runs are created when an event is fired for trigger window that is ready.
        """
        return pulumi.get(self, "pipeline")

    @property
    @pulumi.getter(name="runtimeState")
    def runtime_state(self) -> str:
        """
        Indicates if trigger is running or not. Updated when Start/Stop APIs are called on the Trigger.
        """
        return pulumi.get(self, "runtime_state")

    @property
    @pulumi.getter(name="startTime")
    def start_time(self) -> str:
        """
        The start time for the time period for the trigger during which events are fired for windows that are ready. Only UTC time is currently supported.
        """
        return pulumi.get(self, "start_time")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Trigger type.
        Expected value is 'TumblingWindowTrigger'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the trigger.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def delay(self) -> Optional[Any]:
        """
        Specifies how long the trigger waits past due time before triggering new run. It doesn't alter window start and end time. The default is 0. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "delay")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence[Any]]:
        """
        Triggers that this trigger depends on. Only tumbling window triggers are supported.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Trigger description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="endTime")
    def end_time(self) -> Optional[str]:
        """
        The end time for the time period for the trigger during which events are fired for windows that are ready. Only UTC time is currently supported.
        """
        return pulumi.get(self, "end_time")

    @property
    @pulumi.getter(name="retryPolicy")
    def retry_policy(self) -> Optional['outputs.RetryPolicyResponse']:
        """
        Retry policy that will be applied for failed pipeline runs.
        """
        return pulumi.get(self, "retry_policy")


@pulumi.output_type
class UntilActivityResponse(dict):
    """
    This activity executes inner activities until the specified boolean expression results to true or timeout is reached, whichever is earlier.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dependsOn":
            suggest = "depends_on"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in UntilActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        UntilActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        UntilActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 activities: Sequence[Any],
                 expression: 'outputs.ExpressionResponse',
                 name: str,
                 type: str,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 timeout: Optional[Any] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        This activity executes inner activities until the specified boolean expression results to true or timeout is reached, whichever is earlier.
        :param Sequence[Union['AppendVariableActivityResponse', 'AzureDataExplorerCommandActivityResponse', 'AzureFunctionActivityResponse', 'AzureMLBatchExecutionActivityResponse', 'AzureMLExecutePipelineActivityResponse', 'AzureMLUpdateResourceActivityResponse', 'ControlActivityResponse', 'CopyActivityResponse', 'CustomActivityResponse', 'DataLakeAnalyticsUSQLActivityResponse', 'DatabricksNotebookActivityResponse', 'DatabricksSparkJarActivityResponse', 'DatabricksSparkPythonActivityResponse', 'DeleteActivityResponse', 'ExecuteDataFlowActivityResponse', 'ExecutePipelineActivityResponse', 'ExecuteSSISPackageActivityResponse', 'ExecuteWranglingDataflowActivityResponse', 'ExecutionActivityResponse', 'FailActivityResponse', 'FilterActivityResponse', 'ForEachActivityResponse', 'GetMetadataActivityResponse', 'HDInsightHiveActivityResponse', 'HDInsightMapReduceActivityResponse', 'HDInsightPigActivityResponse', 'HDInsightSparkActivityResponse', 'HDInsightStreamingActivityResponse', 'IfConditionActivityResponse', 'LookupActivityResponse', 'ScriptActivityResponse', 'SetVariableActivityResponse', 'SqlServerStoredProcedureActivityResponse', 'SwitchActivityResponse', 'UntilActivityResponse', 'ValidationActivityResponse', 'WaitActivityResponse', 'WebActivityResponse', 'WebHookActivityResponse']] activities: List of activities to execute.
        :param 'ExpressionResponse' expression: An expression that would evaluate to Boolean. The loop will continue until this expression evaluates to true
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'Until'.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Any timeout: Specifies the timeout for the activity to run. If there is no value specified, it takes the value of TimeSpan.FromDays(7) which is 1 week as default. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "activities", activities)
        pulumi.set(__self__, "expression", expression)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'Until')
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if timeout is not None:
            pulumi.set(__self__, "timeout", timeout)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter
    def activities(self) -> Sequence[Any]:
        """
        List of activities to execute.
        """
        return pulumi.get(self, "activities")

    @property
    @pulumi.getter
    def expression(self) -> 'outputs.ExpressionResponse':
        """
        An expression that would evaluate to Boolean. The loop will continue until this expression evaluates to true
        """
        return pulumi.get(self, "expression")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'Until'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def timeout(self) -> Optional[Any]:
        """
        Specifies the timeout for the activity to run. If there is no value specified, it takes the value of TimeSpan.FromDays(7) which is 1 week as default. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "timeout")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class UserAccessPolicyResponse(dict):
    """
    Get Data Plane read only token request definition.
    """
    def __init__(__self__, *,
                 access_resource_path: Optional[str] = None,
                 expire_time: Optional[str] = None,
                 permissions: Optional[str] = None,
                 profile_name: Optional[str] = None,
                 start_time: Optional[str] = None):
        """
        Get Data Plane read only token request definition.
        :param str access_resource_path: The resource path to get access relative to factory. Currently only empty string is supported which corresponds to the factory resource.
        :param str expire_time: Expiration time for the token. Maximum duration for the token is eight hours and by default the token will expire in eight hours.
        :param str permissions: The string with permissions for Data Plane access. Currently only 'r' is supported which grants read only access.
        :param str profile_name: The name of the profile. Currently only the default is supported. The default value is DefaultProfile.
        :param str start_time: Start time for the token. If not specified the current time will be used.
        """
        if access_resource_path is not None:
            pulumi.set(__self__, "access_resource_path", access_resource_path)
        if expire_time is not None:
            pulumi.set(__self__, "expire_time", expire_time)
        if permissions is not None:
            pulumi.set(__self__, "permissions", permissions)
        if profile_name is not None:
            pulumi.set(__self__, "profile_name", profile_name)
        if start_time is not None:
            pulumi.set(__self__, "start_time", start_time)

    @property
    @pulumi.getter(name="accessResourcePath")
    def access_resource_path(self) -> Optional[str]:
        """
        The resource path to get access relative to factory. Currently only empty string is supported which corresponds to the factory resource.
        """
        return pulumi.get(self, "access_resource_path")

    @property
    @pulumi.getter(name="expireTime")
    def expire_time(self) -> Optional[str]:
        """
        Expiration time for the token. Maximum duration for the token is eight hours and by default the token will expire in eight hours.
        """
        return pulumi.get(self, "expire_time")

    @property
    @pulumi.getter
    def permissions(self) -> Optional[str]:
        """
        The string with permissions for Data Plane access. Currently only 'r' is supported which grants read only access.
        """
        return pulumi.get(self, "permissions")

    @property
    @pulumi.getter(name="profileName")
    def profile_name(self) -> Optional[str]:
        """
        The name of the profile. Currently only the default is supported. The default value is DefaultProfile.
        """
        return pulumi.get(self, "profile_name")

    @property
    @pulumi.getter(name="startTime")
    def start_time(self) -> Optional[str]:
        """
        Start time for the token. If not specified the current time will be used.
        """
        return pulumi.get(self, "start_time")


@pulumi.output_type
class UserPropertyResponse(dict):
    """
    User property.
    """
    def __init__(__self__, *,
                 name: str,
                 value: Any):
        """
        User property.
        :param str name: User property name.
        :param Any value: User property value. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        User property name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> Any:
        """
        User property value. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class ValidationActivityResponse(dict):
    """
    This activity verifies that an external resource exists.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "childItems":
            suggest = "child_items"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "minimumSize":
            suggest = "minimum_size"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ValidationActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ValidationActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ValidationActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 dataset: 'outputs.DatasetReferenceResponse',
                 name: str,
                 type: str,
                 child_items: Optional[Any] = None,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 minimum_size: Optional[Any] = None,
                 sleep: Optional[Any] = None,
                 timeout: Optional[Any] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        This activity verifies that an external resource exists.
        :param 'DatasetReferenceResponse' dataset: Validation activity dataset reference.
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'Validation'.
        :param Any child_items: Can be used if dataset points to a folder. If set to true, the folder must have at least one file. If set to false, the folder must be empty. Type: boolean (or Expression with resultType boolean).
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Any minimum_size: Can be used if dataset points to a file. The file must be greater than or equal in size to the value specified. Type: integer (or Expression with resultType integer).
        :param Any sleep: A delay in seconds between validation attempts. If no value is specified, 10 seconds will be used as the default. Type: integer (or Expression with resultType integer).
        :param Any timeout: Specifies the timeout for the activity to run. If there is no value specified, it takes the value of TimeSpan.FromDays(7) which is 1 week as default. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "dataset", dataset)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'Validation')
        if child_items is not None:
            pulumi.set(__self__, "child_items", child_items)
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if minimum_size is not None:
            pulumi.set(__self__, "minimum_size", minimum_size)
        if sleep is not None:
            pulumi.set(__self__, "sleep", sleep)
        if timeout is not None:
            pulumi.set(__self__, "timeout", timeout)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter
    def dataset(self) -> 'outputs.DatasetReferenceResponse':
        """
        Validation activity dataset reference.
        """
        return pulumi.get(self, "dataset")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'Validation'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="childItems")
    def child_items(self) -> Optional[Any]:
        """
        Can be used if dataset points to a folder. If set to true, the folder must have at least one file. If set to false, the folder must be empty. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "child_items")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="minimumSize")
    def minimum_size(self) -> Optional[Any]:
        """
        Can be used if dataset points to a file. The file must be greater than or equal in size to the value specified. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "minimum_size")

    @property
    @pulumi.getter
    def sleep(self) -> Optional[Any]:
        """
        A delay in seconds between validation attempts. If no value is specified, 10 seconds will be used as the default. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "sleep")

    @property
    @pulumi.getter
    def timeout(self) -> Optional[Any]:
        """
        Specifies the timeout for the activity to run. If there is no value specified, it takes the value of TimeSpan.FromDays(7) which is 1 week as default. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "timeout")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class VariableSpecificationResponse(dict):
    """
    Definition of a single variable for a Pipeline.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "defaultValue":
            suggest = "default_value"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in VariableSpecificationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        VariableSpecificationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        VariableSpecificationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 default_value: Optional[Any] = None):
        """
        Definition of a single variable for a Pipeline.
        :param str type: Variable type.
        :param Any default_value: Default value of variable.
        """
        pulumi.set(__self__, "type", type)
        if default_value is not None:
            pulumi.set(__self__, "default_value", default_value)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Variable type.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="defaultValue")
    def default_value(self) -> Optional[Any]:
        """
        Default value of variable.
        """
        return pulumi.get(self, "default_value")


@pulumi.output_type
class VerticaLinkedServiceResponse(dict):
    """
    Vertica linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectVia":
            suggest = "connect_via"
        elif key == "connectionString":
            suggest = "connection_string"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in VerticaLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        VerticaLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        VerticaLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 connection_string: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 pwd: Optional['outputs.AzureKeyVaultSecretReferenceResponse'] = None):
        """
        Vertica linked service.
        :param str type: Type of linked service.
               Expected value is 'Vertica'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param 'AzureKeyVaultSecretReferenceResponse' pwd: The Azure key vault secret reference of password in connection string.
        """
        pulumi.set(__self__, "type", 'Vertica')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if connection_string is not None:
            pulumi.set(__self__, "connection_string", connection_string)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pwd is not None:
            pulumi.set(__self__, "pwd", pwd)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Vertica'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="connectionString")
    def connection_string(self) -> Optional[Any]:
        """
        An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference.
        """
        return pulumi.get(self, "connection_string")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def pwd(self) -> Optional['outputs.AzureKeyVaultSecretReferenceResponse']:
        """
        The Azure key vault secret reference of password in connection string.
        """
        return pulumi.get(self, "pwd")


@pulumi.output_type
class VerticaSourceResponse(dict):
    """
    A copy activity Vertica source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in VerticaSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        VerticaSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        VerticaSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Vertica source.
        :param str type: Copy source type.
               Expected value is 'VerticaSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'VerticaSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'VerticaSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class VerticaTableDatasetResponse(dict):
    """
    Vertica dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in VerticaTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        VerticaTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        VerticaTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Vertica dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'VerticaTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table: The table name of the Vertica. Type: string (or Expression with resultType string).
        :param Any table_name: This property will be retired. Please consider using schema + table properties instead.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'VerticaTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table is not None:
            pulumi.set(__self__, "table", table)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'VerticaTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter
    def table(self) -> Optional[Any]:
        """
        The table name of the Vertica. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        This property will be retired. Please consider using schema + table properties instead.
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class WaitActivityResponse(dict):
    """
    This activity suspends pipeline execution for the specified interval.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "waitTimeInSeconds":
            suggest = "wait_time_in_seconds"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in WaitActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        WaitActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        WaitActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 type: str,
                 wait_time_in_seconds: Any,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        This activity suspends pipeline execution for the specified interval.
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'Wait'.
        :param Any wait_time_in_seconds: Duration in seconds.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'Wait')
        pulumi.set(__self__, "wait_time_in_seconds", wait_time_in_seconds)
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'Wait'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="waitTimeInSeconds")
    def wait_time_in_seconds(self) -> Any:
        """
        Duration in seconds.
        """
        return pulumi.get(self, "wait_time_in_seconds")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class WebActivityAuthenticationResponse(dict):
    """
    Web activity authentication properties.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "userTenant":
            suggest = "user_tenant"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in WebActivityAuthenticationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        WebActivityAuthenticationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        WebActivityAuthenticationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 credential: Optional['outputs.CredentialReferenceResponse'] = None,
                 password: Optional[Any] = None,
                 pfx: Optional[Any] = None,
                 resource: Optional[Any] = None,
                 type: Optional[str] = None,
                 user_tenant: Optional[Any] = None,
                 username: Optional[Any] = None):
        """
        Web activity authentication properties.
        :param 'CredentialReferenceResponse' credential: The credential reference containing authentication information.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password for the PFX file or basic authentication / Secret when used for ServicePrincipal
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] pfx: Base64-encoded contents of a PFX file or Certificate when used for ServicePrincipal
        :param Any resource: Resource for which Azure Auth token will be requested when using MSI Authentication. Type: string (or Expression with resultType string).
        :param str type: Web activity authentication (Basic/ClientCertificate/MSI/ServicePrincipal)
        :param Any user_tenant: TenantId for which Azure Auth token will be requested when using ServicePrincipal Authentication. Type: string (or Expression with resultType string).
        :param Any username: Web activity authentication user name for basic authentication or ClientID when used for ServicePrincipal. Type: string (or Expression with resultType string).
        """
        if credential is not None:
            pulumi.set(__self__, "credential", credential)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if pfx is not None:
            pulumi.set(__self__, "pfx", pfx)
        if resource is not None:
            pulumi.set(__self__, "resource", resource)
        if type is not None:
            pulumi.set(__self__, "type", type)
        if user_tenant is not None:
            pulumi.set(__self__, "user_tenant", user_tenant)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter
    def credential(self) -> Optional['outputs.CredentialReferenceResponse']:
        """
        The credential reference containing authentication information.
        """
        return pulumi.get(self, "credential")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        Password for the PFX file or basic authentication / Secret when used for ServicePrincipal
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def pfx(self) -> Optional[Any]:
        """
        Base64-encoded contents of a PFX file or Certificate when used for ServicePrincipal
        """
        return pulumi.get(self, "pfx")

    @property
    @pulumi.getter
    def resource(self) -> Optional[Any]:
        """
        Resource for which Azure Auth token will be requested when using MSI Authentication. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "resource")

    @property
    @pulumi.getter
    def type(self) -> Optional[str]:
        """
        Web activity authentication (Basic/ClientCertificate/MSI/ServicePrincipal)
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="userTenant")
    def user_tenant(self) -> Optional[Any]:
        """
        TenantId for which Azure Auth token will be requested when using ServicePrincipal Authentication. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "user_tenant")

    @property
    @pulumi.getter
    def username(self) -> Optional[Any]:
        """
        Web activity authentication user name for basic authentication or ClientID when used for ServicePrincipal. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "username")


@pulumi.output_type
class WebActivityResponse(dict):
    """
    Web activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectVia":
            suggest = "connect_via"
        elif key == "dependsOn":
            suggest = "depends_on"
        elif key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "linkedServices":
            suggest = "linked_services"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in WebActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        WebActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        WebActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 method: str,
                 name: str,
                 type: str,
                 url: Any,
                 authentication: Optional['outputs.WebActivityAuthenticationResponse'] = None,
                 body: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 datasets: Optional[Sequence['outputs.DatasetReferenceResponse']] = None,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 headers: Optional[Any] = None,
                 linked_service_name: Optional['outputs.LinkedServiceReferenceResponse'] = None,
                 linked_services: Optional[Sequence['outputs.LinkedServiceReferenceResponse']] = None,
                 policy: Optional['outputs.ActivityPolicyResponse'] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        Web activity.
        :param str method: Rest API method for target endpoint.
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'WebActivity'.
        :param Any url: Web activity target endpoint and path. Type: string (or Expression with resultType string).
        :param 'WebActivityAuthenticationResponse' authentication: Authentication method used for calling the endpoint.
        :param Any body: Represents the payload that will be sent to the endpoint. Required for POST/PUT method, not allowed for GET method Type: string (or Expression with resultType string).
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Sequence['DatasetReferenceResponse'] datasets: List of datasets passed to web endpoint.
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Any headers: Represents the headers that will be sent to the request. For example, to set the language and type on a request: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" }. Type: string (or Expression with resultType string).
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param Sequence['LinkedServiceReferenceResponse'] linked_services: List of linked services passed to web endpoint.
        :param 'ActivityPolicyResponse' policy: Activity policy.
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "method", method)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'WebActivity')
        pulumi.set(__self__, "url", url)
        if authentication is not None:
            pulumi.set(__self__, "authentication", authentication)
        if body is not None:
            pulumi.set(__self__, "body", body)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if datasets is not None:
            pulumi.set(__self__, "datasets", datasets)
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if headers is not None:
            pulumi.set(__self__, "headers", headers)
        if linked_service_name is not None:
            pulumi.set(__self__, "linked_service_name", linked_service_name)
        if linked_services is not None:
            pulumi.set(__self__, "linked_services", linked_services)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter
    def method(self) -> str:
        """
        Rest API method for target endpoint.
        """
        return pulumi.get(self, "method")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'WebActivity'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def url(self) -> Any:
        """
        Web activity target endpoint and path. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "url")

    @property
    @pulumi.getter
    def authentication(self) -> Optional['outputs.WebActivityAuthenticationResponse']:
        """
        Authentication method used for calling the endpoint.
        """
        return pulumi.get(self, "authentication")

    @property
    @pulumi.getter
    def body(self) -> Optional[Any]:
        """
        Represents the payload that will be sent to the endpoint. Required for POST/PUT method, not allowed for GET method Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "body")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def datasets(self) -> Optional[Sequence['outputs.DatasetReferenceResponse']]:
        """
        List of datasets passed to web endpoint.
        """
        return pulumi.get(self, "datasets")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def headers(self) -> Optional[Any]:
        """
        Represents the headers that will be sent to the request. For example, to set the language and type on a request: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" }. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "headers")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> Optional['outputs.LinkedServiceReferenceResponse']:
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter(name="linkedServices")
    def linked_services(self) -> Optional[Sequence['outputs.LinkedServiceReferenceResponse']]:
        """
        List of linked services passed to web endpoint.
        """
        return pulumi.get(self, "linked_services")

    @property
    @pulumi.getter
    def policy(self) -> Optional['outputs.ActivityPolicyResponse']:
        """
        Activity policy.
        """
        return pulumi.get(self, "policy")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class WebAnonymousAuthenticationResponse(dict):
    """
    A WebLinkedService that uses anonymous authentication to communicate with an HTTP endpoint.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in WebAnonymousAuthenticationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        WebAnonymousAuthenticationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        WebAnonymousAuthenticationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 authentication_type: str,
                 url: Any):
        """
        A WebLinkedService that uses anonymous authentication to communicate with an HTTP endpoint.
        :param str authentication_type: Type of authentication used to connect to the web table source.
               Expected value is 'Anonymous'.
        :param Any url: The URL of the web service endpoint, e.g. http://www.microsoft.com . Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "authentication_type", 'Anonymous')
        pulumi.set(__self__, "url", url)

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> str:
        """
        Type of authentication used to connect to the web table source.
        Expected value is 'Anonymous'.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter
    def url(self) -> Any:
        """
        The URL of the web service endpoint, e.g. http://www.microsoft.com . Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "url")


@pulumi.output_type
class WebBasicAuthenticationResponse(dict):
    """
    A WebLinkedService that uses basic authentication to communicate with an HTTP endpoint.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in WebBasicAuthenticationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        WebBasicAuthenticationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        WebBasicAuthenticationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 authentication_type: str,
                 password: Any,
                 url: Any,
                 username: Any):
        """
        A WebLinkedService that uses basic authentication to communicate with an HTTP endpoint.
        :param str authentication_type: Type of authentication used to connect to the web table source.
               Expected value is 'Basic'.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The password for Basic authentication.
        :param Any url: The URL of the web service endpoint, e.g. http://www.microsoft.com . Type: string (or Expression with resultType string).
        :param Any username: User name for Basic authentication. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "authentication_type", 'Basic')
        pulumi.set(__self__, "password", password)
        pulumi.set(__self__, "url", url)
        pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> str:
        """
        Type of authentication used to connect to the web table source.
        Expected value is 'Basic'.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter
    def password(self) -> Any:
        """
        The password for Basic authentication.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def url(self) -> Any:
        """
        The URL of the web service endpoint, e.g. http://www.microsoft.com . Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "url")

    @property
    @pulumi.getter
    def username(self) -> Any:
        """
        User name for Basic authentication. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "username")


@pulumi.output_type
class WebClientCertificateAuthenticationResponse(dict):
    """
    A WebLinkedService that uses client certificate based authentication to communicate with an HTTP endpoint. This scheme follows mutual authentication; the server must also provide valid credentials to the client.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in WebClientCertificateAuthenticationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        WebClientCertificateAuthenticationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        WebClientCertificateAuthenticationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 authentication_type: str,
                 password: Any,
                 pfx: Any,
                 url: Any):
        """
        A WebLinkedService that uses client certificate based authentication to communicate with an HTTP endpoint. This scheme follows mutual authentication; the server must also provide valid credentials to the client.
        :param str authentication_type: Type of authentication used to connect to the web table source.
               Expected value is 'ClientCertificate'.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: Password for the PFX file.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] pfx: Base64-encoded contents of a PFX file.
        :param Any url: The URL of the web service endpoint, e.g. http://www.microsoft.com . Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "authentication_type", 'ClientCertificate')
        pulumi.set(__self__, "password", password)
        pulumi.set(__self__, "pfx", pfx)
        pulumi.set(__self__, "url", url)

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> str:
        """
        Type of authentication used to connect to the web table source.
        Expected value is 'ClientCertificate'.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter
    def password(self) -> Any:
        """
        Password for the PFX file.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def pfx(self) -> Any:
        """
        Base64-encoded contents of a PFX file.
        """
        return pulumi.get(self, "pfx")

    @property
    @pulumi.getter
    def url(self) -> Any:
        """
        The URL of the web service endpoint, e.g. http://www.microsoft.com . Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "url")


@pulumi.output_type
class WebHookActivityResponse(dict):
    """
    WebHook activity.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dependsOn":
            suggest = "depends_on"
        elif key == "reportStatusOnCallBack":
            suggest = "report_status_on_call_back"
        elif key == "userProperties":
            suggest = "user_properties"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in WebHookActivityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        WebHookActivityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        WebHookActivityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 method: str,
                 name: str,
                 type: str,
                 url: Any,
                 authentication: Optional['outputs.WebActivityAuthenticationResponse'] = None,
                 body: Optional[Any] = None,
                 depends_on: Optional[Sequence['outputs.ActivityDependencyResponse']] = None,
                 description: Optional[str] = None,
                 headers: Optional[Any] = None,
                 report_status_on_call_back: Optional[Any] = None,
                 timeout: Optional[str] = None,
                 user_properties: Optional[Sequence['outputs.UserPropertyResponse']] = None):
        """
        WebHook activity.
        :param str method: Rest API method for target endpoint.
        :param str name: Activity name.
        :param str type: Type of activity.
               Expected value is 'WebHook'.
        :param Any url: WebHook activity target endpoint and path. Type: string (or Expression with resultType string).
        :param 'WebActivityAuthenticationResponse' authentication: Authentication method used for calling the endpoint.
        :param Any body: Represents the payload that will be sent to the endpoint. Required for POST/PUT method, not allowed for GET method Type: string (or Expression with resultType string).
        :param Sequence['ActivityDependencyResponse'] depends_on: Activity depends on condition.
        :param str description: Activity description.
        :param Any headers: Represents the headers that will be sent to the request. For example, to set the language and type on a request: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" }. Type: string (or Expression with resultType string).
        :param Any report_status_on_call_back: When set to true, statusCode, output and error in callback request body will be consumed by activity. The activity can be marked as failed by setting statusCode >= 400 in callback request. Default is false. Type: boolean (or Expression with resultType boolean).
        :param str timeout: The timeout within which the webhook should be called back. If there is no value specified, it defaults to 10 minutes. Type: string. Pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Sequence['UserPropertyResponse'] user_properties: Activity user properties.
        """
        pulumi.set(__self__, "method", method)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", 'WebHook')
        pulumi.set(__self__, "url", url)
        if authentication is not None:
            pulumi.set(__self__, "authentication", authentication)
        if body is not None:
            pulumi.set(__self__, "body", body)
        if depends_on is not None:
            pulumi.set(__self__, "depends_on", depends_on)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if headers is not None:
            pulumi.set(__self__, "headers", headers)
        if report_status_on_call_back is not None:
            pulumi.set(__self__, "report_status_on_call_back", report_status_on_call_back)
        if timeout is not None:
            pulumi.set(__self__, "timeout", timeout)
        if user_properties is not None:
            pulumi.set(__self__, "user_properties", user_properties)

    @property
    @pulumi.getter
    def method(self) -> str:
        """
        Rest API method for target endpoint.
        """
        return pulumi.get(self, "method")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Activity name.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of activity.
        Expected value is 'WebHook'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def url(self) -> Any:
        """
        WebHook activity target endpoint and path. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "url")

    @property
    @pulumi.getter
    def authentication(self) -> Optional['outputs.WebActivityAuthenticationResponse']:
        """
        Authentication method used for calling the endpoint.
        """
        return pulumi.get(self, "authentication")

    @property
    @pulumi.getter
    def body(self) -> Optional[Any]:
        """
        Represents the payload that will be sent to the endpoint. Required for POST/PUT method, not allowed for GET method Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "body")

    @property
    @pulumi.getter(name="dependsOn")
    def depends_on(self) -> Optional[Sequence['outputs.ActivityDependencyResponse']]:
        """
        Activity depends on condition.
        """
        return pulumi.get(self, "depends_on")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Activity description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def headers(self) -> Optional[Any]:
        """
        Represents the headers that will be sent to the request. For example, to set the language and type on a request: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" }. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "headers")

    @property
    @pulumi.getter(name="reportStatusOnCallBack")
    def report_status_on_call_back(self) -> Optional[Any]:
        """
        When set to true, statusCode, output and error in callback request body will be consumed by activity. The activity can be marked as failed by setting statusCode >= 400 in callback request. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "report_status_on_call_back")

    @property
    @pulumi.getter
    def timeout(self) -> Optional[str]:
        """
        The timeout within which the webhook should be called back. If there is no value specified, it defaults to 10 minutes. Type: string. Pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "timeout")

    @property
    @pulumi.getter(name="userProperties")
    def user_properties(self) -> Optional[Sequence['outputs.UserPropertyResponse']]:
        """
        Activity user properties.
        """
        return pulumi.get(self, "user_properties")


@pulumi.output_type
class WebLinkedServiceResponse(dict):
    """
    Web linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "typeProperties":
            suggest = "type_properties"
        elif key == "connectVia":
            suggest = "connect_via"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in WebLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        WebLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        WebLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 type_properties: Any,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None):
        """
        Web linked service.
        :param str type: Type of linked service.
               Expected value is 'Web'.
        :param Union['WebAnonymousAuthenticationResponse', 'WebBasicAuthenticationResponse', 'WebClientCertificateAuthenticationResponse'] type_properties: Web linked service properties.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        """
        pulumi.set(__self__, "type", 'Web')
        pulumi.set(__self__, "type_properties", type_properties)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Web'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="typeProperties")
    def type_properties(self) -> Any:
        """
        Web linked service properties.
        """
        return pulumi.get(self, "type_properties")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")


@pulumi.output_type
class WebSourceResponse(dict):
    """
    A copy activity source for web page table.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in WebSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        WebSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        WebSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity source for web page table.
        :param str type: Copy source type.
               Expected value is 'WebSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'WebSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'WebSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class WebTableDatasetResponse(dict):
    """
    The dataset points to a HTML table in the web page.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in WebTableDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        WebTableDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        WebTableDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 index: Any,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 path: Optional[Any] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        The dataset points to a HTML table in the web page.
        :param Any index: The zero-based index of the table in the web page. Type: integer (or Expression with resultType integer), minimum: 0.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'WebTable'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any path: The relative URL to the web page from the linked service URL. Type: string (or Expression with resultType string).
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "index", index)
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'WebTable')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter
    def index(self) -> Any:
        """
        The zero-based index of the table in the web page. Type: integer (or Expression with resultType integer), minimum: 0.
        """
        return pulumi.get(self, "index")

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'WebTable'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def path(self) -> Optional[Any]:
        """
        The relative URL to the web page from the linked service URL. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "path")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class WranglingDataFlowResponse(dict):
    """
    Power Query data flow.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "documentLocale":
            suggest = "document_locale"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in WranglingDataFlowResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        WranglingDataFlowResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        WranglingDataFlowResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 document_locale: Optional[str] = None,
                 folder: Optional['outputs.DataFlowResponseFolder'] = None,
                 script: Optional[str] = None,
                 sources: Optional[Sequence['outputs.PowerQuerySourceResponse']] = None):
        """
        Power Query data flow.
        :param str type: Type of data flow.
               Expected value is 'WranglingDataFlow'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the data flow.
        :param str description: The description of the data flow.
        :param str document_locale: Locale of the Power query mashup document.
        :param 'DataFlowResponseFolder' folder: The folder that this data flow is in. If not specified, Data flow will appear at the root level.
        :param str script: Power query mashup script.
        :param Sequence['PowerQuerySourceResponse'] sources: List of sources in Power Query.
        """
        pulumi.set(__self__, "type", 'WranglingDataFlow')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if document_locale is not None:
            pulumi.set(__self__, "document_locale", document_locale)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if script is not None:
            pulumi.set(__self__, "script", script)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of data flow.
        Expected value is 'WranglingDataFlow'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the data flow.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        The description of the data flow.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="documentLocale")
    def document_locale(self) -> Optional[str]:
        """
        Locale of the Power query mashup document.
        """
        return pulumi.get(self, "document_locale")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DataFlowResponseFolder']:
        """
        The folder that this data flow is in. If not specified, Data flow will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def script(self) -> Optional[str]:
        """
        Power query mashup script.
        """
        return pulumi.get(self, "script")

    @property
    @pulumi.getter
    def sources(self) -> Optional[Sequence['outputs.PowerQuerySourceResponse']]:
        """
        List of sources in Power Query.
        """
        return pulumi.get(self, "sources")


@pulumi.output_type
class XeroLinkedServiceResponse(dict):
    """
    Xero Service linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectVia":
            suggest = "connect_via"
        elif key == "connectionProperties":
            suggest = "connection_properties"
        elif key == "consumerKey":
            suggest = "consumer_key"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "privateKey":
            suggest = "private_key"
        elif key == "useEncryptedEndpoints":
            suggest = "use_encrypted_endpoints"
        elif key == "useHostVerification":
            suggest = "use_host_verification"
        elif key == "usePeerVerification":
            suggest = "use_peer_verification"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in XeroLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        XeroLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        XeroLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 connection_properties: Optional[Any] = None,
                 consumer_key: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 host: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 private_key: Optional[Any] = None,
                 use_encrypted_endpoints: Optional[Any] = None,
                 use_host_verification: Optional[Any] = None,
                 use_peer_verification: Optional[Any] = None):
        """
        Xero Service linked service.
        :param str type: Type of linked service.
               Expected value is 'Xero'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any connection_properties: Properties used to connect to Xero. It is mutually exclusive with any other properties in the linked service. Type: object.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] consumer_key: The consumer key associated with the Xero application.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Any host: The endpoint of the Xero server. (i.e. api.xero.com)
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] private_key: The private key from the .pem file that was generated for your Xero private application. You must include all the text from the .pem file, including the Unix line endings(
               ).
        :param Any use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        :param Any use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        :param Any use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        pulumi.set(__self__, "type", 'Xero')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if connection_properties is not None:
            pulumi.set(__self__, "connection_properties", connection_properties)
        if consumer_key is not None:
            pulumi.set(__self__, "consumer_key", consumer_key)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if host is not None:
            pulumi.set(__self__, "host", host)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if private_key is not None:
            pulumi.set(__self__, "private_key", private_key)
        if use_encrypted_endpoints is not None:
            pulumi.set(__self__, "use_encrypted_endpoints", use_encrypted_endpoints)
        if use_host_verification is not None:
            pulumi.set(__self__, "use_host_verification", use_host_verification)
        if use_peer_verification is not None:
            pulumi.set(__self__, "use_peer_verification", use_peer_verification)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Xero'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="connectionProperties")
    def connection_properties(self) -> Optional[Any]:
        """
        Properties used to connect to Xero. It is mutually exclusive with any other properties in the linked service. Type: object.
        """
        return pulumi.get(self, "connection_properties")

    @property
    @pulumi.getter(name="consumerKey")
    def consumer_key(self) -> Optional[Any]:
        """
        The consumer key associated with the Xero application.
        """
        return pulumi.get(self, "consumer_key")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def host(self) -> Optional[Any]:
        """
        The endpoint of the Xero server. (i.e. api.xero.com)
        """
        return pulumi.get(self, "host")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="privateKey")
    def private_key(self) -> Optional[Any]:
        """
        The private key from the .pem file that was generated for your Xero private application. You must include all the text from the .pem file, including the Unix line endings(
        ).
        """
        return pulumi.get(self, "private_key")

    @property
    @pulumi.getter(name="useEncryptedEndpoints")
    def use_encrypted_endpoints(self) -> Optional[Any]:
        """
        Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        """
        return pulumi.get(self, "use_encrypted_endpoints")

    @property
    @pulumi.getter(name="useHostVerification")
    def use_host_verification(self) -> Optional[Any]:
        """
        Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_host_verification")

    @property
    @pulumi.getter(name="usePeerVerification")
    def use_peer_verification(self) -> Optional[Any]:
        """
        Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_peer_verification")


@pulumi.output_type
class XeroObjectDatasetResponse(dict):
    """
    Xero Service dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in XeroObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        XeroObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        XeroObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Xero Service dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'XeroObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'XeroObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'XeroObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class XeroSourceResponse(dict):
    """
    A copy activity Xero Service source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in XeroSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        XeroSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        XeroSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Xero Service source.
        :param str type: Copy source type.
               Expected value is 'XeroSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'XeroSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'XeroSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


@pulumi.output_type
class XmlDatasetResponse(dict):
    """
    Xml dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "encodingName":
            suggest = "encoding_name"
        elif key == "nullValue":
            suggest = "null_value"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in XmlDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        XmlDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        XmlDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 location: Any,
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 compression: Optional['outputs.DatasetCompressionResponse'] = None,
                 description: Optional[str] = None,
                 encoding_name: Optional[Any] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 null_value: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None):
        """
        Xml dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param Union['AmazonS3CompatibleLocationResponse', 'AmazonS3LocationResponse', 'AzureBlobFSLocationResponse', 'AzureBlobStorageLocationResponse', 'AzureDataLakeStoreLocationResponse', 'AzureFileStorageLocationResponse', 'FileServerLocationResponse', 'FtpServerLocationResponse', 'GoogleCloudStorageLocationResponse', 'HdfsLocationResponse', 'HttpServerLocationResponse', 'OracleCloudStorageLocationResponse', 'SftpLocationResponse'] location: The location of the json data storage.
        :param str type: Type of dataset.
               Expected value is 'Xml'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param 'DatasetCompressionResponse' compression: The data compression method used for the json dataset.
        :param str description: Dataset description.
        :param Any encoding_name: The code page name of the preferred encoding. If not specified, the default value is UTF-8, unless BOM denotes another Unicode encoding. Refer to the name column of the table in the following link to set supported values: https://msdn.microsoft.com/library/system.text.encoding.aspx. Type: string (or Expression with resultType string).
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Any null_value: The null value string. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "location", location)
        pulumi.set(__self__, "type", 'Xml')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if compression is not None:
            pulumi.set(__self__, "compression", compression)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encoding_name is not None:
            pulumi.set(__self__, "encoding_name", encoding_name)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def location(self) -> Any:
        """
        The location of the json data storage.
        """
        return pulumi.get(self, "location")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'Xml'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def compression(self) -> Optional['outputs.DatasetCompressionResponse']:
        """
        The data compression method used for the json dataset.
        """
        return pulumi.get(self, "compression")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encodingName")
    def encoding_name(self) -> Optional[Any]:
        """
        The code page name of the preferred encoding. If not specified, the default value is UTF-8, unless BOM denotes another Unicode encoding. Refer to the name column of the table in the following link to set supported values: https://msdn.microsoft.com/library/system.text.encoding.aspx. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encoding_name")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[Any]:
        """
        The null value string. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "null_value")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")


@pulumi.output_type
class XmlReadSettingsResponse(dict):
    """
    Xml read settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "compressionProperties":
            suggest = "compression_properties"
        elif key == "detectDataType":
            suggest = "detect_data_type"
        elif key == "namespacePrefixes":
            suggest = "namespace_prefixes"
        elif key == "validationMode":
            suggest = "validation_mode"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in XmlReadSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        XmlReadSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        XmlReadSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 compression_properties: Optional[Any] = None,
                 detect_data_type: Optional[Any] = None,
                 namespace_prefixes: Optional[Any] = None,
                 namespaces: Optional[Any] = None,
                 validation_mode: Optional[Any] = None):
        """
        Xml read settings.
        :param str type: The read setting type.
               Expected value is 'XmlReadSettings'.
        :param Union['TarGZipReadSettingsResponse', 'TarReadSettingsResponse', 'ZipDeflateReadSettingsResponse'] compression_properties: Compression settings.
        :param Any detect_data_type: Indicates whether type detection is enabled when reading the xml files. Type: boolean (or Expression with resultType boolean).
        :param Any namespace_prefixes: Namespace uri to prefix mappings to override the prefixes in column names when namespace is enabled, if no prefix is defined for a namespace uri, the prefix of xml element/attribute name in the xml data file will be used. Example: "{"http://www.example.com/xml":"prefix"}" Type: object (or Expression with resultType object).
        :param Any namespaces: Indicates whether namespace is enabled when reading the xml files. Type: boolean (or Expression with resultType boolean).
        :param Any validation_mode: Indicates what validation method is used when reading the xml files. Allowed values: 'none', 'xsd', or 'dtd'. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "type", 'XmlReadSettings')
        if compression_properties is not None:
            pulumi.set(__self__, "compression_properties", compression_properties)
        if detect_data_type is not None:
            pulumi.set(__self__, "detect_data_type", detect_data_type)
        if namespace_prefixes is not None:
            pulumi.set(__self__, "namespace_prefixes", namespace_prefixes)
        if namespaces is not None:
            pulumi.set(__self__, "namespaces", namespaces)
        if validation_mode is not None:
            pulumi.set(__self__, "validation_mode", validation_mode)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The read setting type.
        Expected value is 'XmlReadSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="compressionProperties")
    def compression_properties(self) -> Optional[Any]:
        """
        Compression settings.
        """
        return pulumi.get(self, "compression_properties")

    @property
    @pulumi.getter(name="detectDataType")
    def detect_data_type(self) -> Optional[Any]:
        """
        Indicates whether type detection is enabled when reading the xml files. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "detect_data_type")

    @property
    @pulumi.getter(name="namespacePrefixes")
    def namespace_prefixes(self) -> Optional[Any]:
        """
        Namespace uri to prefix mappings to override the prefixes in column names when namespace is enabled, if no prefix is defined for a namespace uri, the prefix of xml element/attribute name in the xml data file will be used. Example: "{"http://www.example.com/xml":"prefix"}" Type: object (or Expression with resultType object).
        """
        return pulumi.get(self, "namespace_prefixes")

    @property
    @pulumi.getter
    def namespaces(self) -> Optional[Any]:
        """
        Indicates whether namespace is enabled when reading the xml files. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "namespaces")

    @property
    @pulumi.getter(name="validationMode")
    def validation_mode(self) -> Optional[Any]:
        """
        Indicates what validation method is used when reading the xml files. Allowed values: 'none', 'xsd', or 'dtd'. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "validation_mode")


@pulumi.output_type
class XmlSourceResponse(dict):
    """
    A copy activity Xml source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "formatSettings":
            suggest = "format_settings"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"
        elif key == "storeSettings":
            suggest = "store_settings"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in XmlSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        XmlSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        XmlSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 format_settings: Optional['outputs.XmlReadSettingsResponse'] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None,
                 store_settings: Optional[Any] = None):
        """
        A copy activity Xml source.
        :param str type: Copy source type.
               Expected value is 'XmlSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param 'XmlReadSettingsResponse' format_settings: Xml format settings.
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Union['AmazonS3CompatibleReadSettingsResponse', 'AmazonS3ReadSettingsResponse', 'AzureBlobFSReadSettingsResponse', 'AzureBlobStorageReadSettingsResponse', 'AzureDataLakeStoreReadSettingsResponse', 'AzureFileStorageReadSettingsResponse', 'FileServerReadSettingsResponse', 'FtpReadSettingsResponse', 'GoogleCloudStorageReadSettingsResponse', 'HdfsReadSettingsResponse', 'HttpReadSettingsResponse', 'OracleCloudStorageReadSettingsResponse', 'SftpReadSettingsResponse'] store_settings: Xml store settings.
        """
        pulumi.set(__self__, "type", 'XmlSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if format_settings is not None:
            pulumi.set(__self__, "format_settings", format_settings)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)
        if store_settings is not None:
            pulumi.set(__self__, "store_settings", store_settings)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'XmlSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="formatSettings")
    def format_settings(self) -> Optional['outputs.XmlReadSettingsResponse']:
        """
        Xml format settings.
        """
        return pulumi.get(self, "format_settings")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")

    @property
    @pulumi.getter(name="storeSettings")
    def store_settings(self) -> Optional[Any]:
        """
        Xml store settings.
        """
        return pulumi.get(self, "store_settings")


@pulumi.output_type
class ZendeskLinkedServiceResponse(dict):
    """
    Linked service for Zendesk.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "authenticationType":
            suggest = "authentication_type"
        elif key == "apiToken":
            suggest = "api_token"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "userName":
            suggest = "user_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ZendeskLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ZendeskLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ZendeskLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 authentication_type: str,
                 type: str,
                 url: Any,
                 annotations: Optional[Sequence[Any]] = None,
                 api_token: Optional[Any] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 password: Optional[Any] = None,
                 user_name: Optional[Any] = None):
        """
        Linked service for Zendesk.
        :param str authentication_type: The authentication type to use.
        :param str type: Type of linked service.
               Expected value is 'Zendesk'.
        :param Any url: The url to connect Zendesk source. Type: string (or Expression with resultType string).
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] api_token: The api token for the Zendesk source.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] password: The password of the Zendesk source.
        :param Any user_name: The username of the Zendesk source. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "authentication_type", authentication_type)
        pulumi.set(__self__, "type", 'Zendesk')
        pulumi.set(__self__, "url", url)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if api_token is not None:
            pulumi.set(__self__, "api_token", api_token)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if user_name is not None:
            pulumi.set(__self__, "user_name", user_name)

    @property
    @pulumi.getter(name="authenticationType")
    def authentication_type(self) -> str:
        """
        The authentication type to use.
        """
        return pulumi.get(self, "authentication_type")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Zendesk'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def url(self) -> Any:
        """
        The url to connect Zendesk source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "url")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="apiToken")
    def api_token(self) -> Optional[Any]:
        """
        The api token for the Zendesk source.
        """
        return pulumi.get(self, "api_token")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def password(self) -> Optional[Any]:
        """
        The password of the Zendesk source.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="userName")
    def user_name(self) -> Optional[Any]:
        """
        The username of the Zendesk source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "user_name")


@pulumi.output_type
class ZipDeflateReadSettingsResponse(dict):
    """
    The ZipDeflate compression read settings.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "preserveZipFileNameAsFolder":
            suggest = "preserve_zip_file_name_as_folder"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ZipDeflateReadSettingsResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ZipDeflateReadSettingsResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ZipDeflateReadSettingsResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 preserve_zip_file_name_as_folder: Optional[Any] = None):
        """
        The ZipDeflate compression read settings.
        :param str type: The Compression setting type.
               Expected value is 'ZipDeflateReadSettings'.
        :param Any preserve_zip_file_name_as_folder: Preserve the zip file name as folder path. Type: boolean (or Expression with resultType boolean).
        """
        pulumi.set(__self__, "type", 'ZipDeflateReadSettings')
        if preserve_zip_file_name_as_folder is not None:
            pulumi.set(__self__, "preserve_zip_file_name_as_folder", preserve_zip_file_name_as_folder)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The Compression setting type.
        Expected value is 'ZipDeflateReadSettings'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="preserveZipFileNameAsFolder")
    def preserve_zip_file_name_as_folder(self) -> Optional[Any]:
        """
        Preserve the zip file name as folder path. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "preserve_zip_file_name_as_folder")


@pulumi.output_type
class ZohoLinkedServiceResponse(dict):
    """
    Zoho server linked service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accessToken":
            suggest = "access_token"
        elif key == "connectVia":
            suggest = "connect_via"
        elif key == "connectionProperties":
            suggest = "connection_properties"
        elif key == "encryptedCredential":
            suggest = "encrypted_credential"
        elif key == "useEncryptedEndpoints":
            suggest = "use_encrypted_endpoints"
        elif key == "useHostVerification":
            suggest = "use_host_verification"
        elif key == "usePeerVerification":
            suggest = "use_peer_verification"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ZohoLinkedServiceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ZohoLinkedServiceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ZohoLinkedServiceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 access_token: Optional[Any] = None,
                 annotations: Optional[Sequence[Any]] = None,
                 connect_via: Optional['outputs.IntegrationRuntimeReferenceResponse'] = None,
                 connection_properties: Optional[Any] = None,
                 description: Optional[str] = None,
                 encrypted_credential: Optional[Any] = None,
                 endpoint: Optional[Any] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 use_encrypted_endpoints: Optional[Any] = None,
                 use_host_verification: Optional[Any] = None,
                 use_peer_verification: Optional[Any] = None):
        """
        Zoho server linked service.
        :param str type: Type of linked service.
               Expected value is 'Zoho'.
        :param Union['AzureKeyVaultSecretReferenceResponse', 'SecureStringResponse'] access_token: The access token for Zoho authentication.
        :param Sequence[Any] annotations: List of tags that can be used for describing the linked service.
        :param 'IntegrationRuntimeReferenceResponse' connect_via: The integration runtime reference.
        :param Any connection_properties: Properties used to connect to Zoho. It is mutually exclusive with any other properties in the linked service. Type: object.
        :param str description: Linked service description.
        :param Any encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        :param Any endpoint: The endpoint of the Zoho server. (i.e. crm.zoho.com/crm/private)
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for linked service.
        :param Any use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        :param Any use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        :param Any use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        pulumi.set(__self__, "type", 'Zoho')
        if access_token is not None:
            pulumi.set(__self__, "access_token", access_token)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if connect_via is not None:
            pulumi.set(__self__, "connect_via", connect_via)
        if connection_properties is not None:
            pulumi.set(__self__, "connection_properties", connection_properties)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encrypted_credential is not None:
            pulumi.set(__self__, "encrypted_credential", encrypted_credential)
        if endpoint is not None:
            pulumi.set(__self__, "endpoint", endpoint)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if use_encrypted_endpoints is not None:
            pulumi.set(__self__, "use_encrypted_endpoints", use_encrypted_endpoints)
        if use_host_verification is not None:
            pulumi.set(__self__, "use_host_verification", use_host_verification)
        if use_peer_verification is not None:
            pulumi.set(__self__, "use_peer_verification", use_peer_verification)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of linked service.
        Expected value is 'Zoho'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="accessToken")
    def access_token(self) -> Optional[Any]:
        """
        The access token for Zoho authentication.
        """
        return pulumi.get(self, "access_token")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the linked service.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="connectVia")
    def connect_via(self) -> Optional['outputs.IntegrationRuntimeReferenceResponse']:
        """
        The integration runtime reference.
        """
        return pulumi.get(self, "connect_via")

    @property
    @pulumi.getter(name="connectionProperties")
    def connection_properties(self) -> Optional[Any]:
        """
        Properties used to connect to Zoho. It is mutually exclusive with any other properties in the linked service. Type: object.
        """
        return pulumi.get(self, "connection_properties")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Linked service description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="encryptedCredential")
    def encrypted_credential(self) -> Optional[Any]:
        """
        The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "encrypted_credential")

    @property
    @pulumi.getter
    def endpoint(self) -> Optional[Any]:
        """
        The endpoint of the Zoho server. (i.e. crm.zoho.com/crm/private)
        """
        return pulumi.get(self, "endpoint")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for linked service.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="useEncryptedEndpoints")
    def use_encrypted_endpoints(self) -> Optional[Any]:
        """
        Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
        """
        return pulumi.get(self, "use_encrypted_endpoints")

    @property
    @pulumi.getter(name="useHostVerification")
    def use_host_verification(self) -> Optional[Any]:
        """
        Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_host_verification")

    @property
    @pulumi.getter(name="usePeerVerification")
    def use_peer_verification(self) -> Optional[Any]:
        """
        Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
        """
        return pulumi.get(self, "use_peer_verification")


@pulumi.output_type
class ZohoObjectDatasetResponse(dict):
    """
    Zoho server dataset.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "linkedServiceName":
            suggest = "linked_service_name"
        elif key == "tableName":
            suggest = "table_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ZohoObjectDatasetResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ZohoObjectDatasetResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ZohoObjectDatasetResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 linked_service_name: 'outputs.LinkedServiceReferenceResponse',
                 type: str,
                 annotations: Optional[Sequence[Any]] = None,
                 description: Optional[str] = None,
                 folder: Optional['outputs.DatasetResponseFolder'] = None,
                 parameters: Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']] = None,
                 schema: Optional[Any] = None,
                 structure: Optional[Any] = None,
                 table_name: Optional[Any] = None):
        """
        Zoho server dataset.
        :param 'LinkedServiceReferenceResponse' linked_service_name: Linked service reference.
        :param str type: Type of dataset.
               Expected value is 'ZohoObject'.
        :param Sequence[Any] annotations: List of tags that can be used for describing the Dataset.
        :param str description: Dataset description.
        :param 'DatasetResponseFolder' folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        :param Mapping[str, 'ParameterSpecificationResponse'] parameters: Parameters for dataset.
        :param Any schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        :param Any structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        :param Any table_name: The table name. Type: string (or Expression with resultType string).
        """
        pulumi.set(__self__, "linked_service_name", linked_service_name)
        pulumi.set(__self__, "type", 'ZohoObject')
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder is not None:
            pulumi.set(__self__, "folder", folder)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if schema is not None:
            pulumi.set(__self__, "schema", schema)
        if structure is not None:
            pulumi.set(__self__, "structure", structure)
        if table_name is not None:
            pulumi.set(__self__, "table_name", table_name)

    @property
    @pulumi.getter(name="linkedServiceName")
    def linked_service_name(self) -> 'outputs.LinkedServiceReferenceResponse':
        """
        Linked service reference.
        """
        return pulumi.get(self, "linked_service_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of dataset.
        Expected value is 'ZohoObject'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def annotations(self) -> Optional[Sequence[Any]]:
        """
        List of tags that can be used for describing the Dataset.
        """
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Dataset description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def folder(self) -> Optional['outputs.DatasetResponseFolder']:
        """
        The folder that this Dataset is in. If not specified, Dataset will appear at the root level.
        """
        return pulumi.get(self, "folder")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Mapping[str, 'outputs.ParameterSpecificationResponse']]:
        """
        Parameters for dataset.
        """
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter
    def schema(self) -> Optional[Any]:
        """
        Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement.
        """
        return pulumi.get(self, "schema")

    @property
    @pulumi.getter
    def structure(self) -> Optional[Any]:
        """
        Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement.
        """
        return pulumi.get(self, "structure")

    @property
    @pulumi.getter(name="tableName")
    def table_name(self) -> Optional[Any]:
        """
        The table name. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "table_name")


@pulumi.output_type
class ZohoSourceResponse(dict):
    """
    A copy activity Zoho server source.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "additionalColumns":
            suggest = "additional_columns"
        elif key == "disableMetricsCollection":
            suggest = "disable_metrics_collection"
        elif key == "maxConcurrentConnections":
            suggest = "max_concurrent_connections"
        elif key == "queryTimeout":
            suggest = "query_timeout"
        elif key == "sourceRetryCount":
            suggest = "source_retry_count"
        elif key == "sourceRetryWait":
            suggest = "source_retry_wait"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ZohoSourceResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ZohoSourceResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ZohoSourceResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 additional_columns: Optional[Any] = None,
                 disable_metrics_collection: Optional[Any] = None,
                 max_concurrent_connections: Optional[Any] = None,
                 query: Optional[Any] = None,
                 query_timeout: Optional[Any] = None,
                 source_retry_count: Optional[Any] = None,
                 source_retry_wait: Optional[Any] = None):
        """
        A copy activity Zoho server source.
        :param str type: Copy source type.
               Expected value is 'ZohoSource'.
        :param Any additional_columns: Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        :param Any disable_metrics_collection: If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        :param Any max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        :param Any query: A query to retrieve data from source. Type: string (or Expression with resultType string).
        :param Any query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        :param Any source_retry_count: Source retry count. Type: integer (or Expression with resultType integer).
        :param Any source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        pulumi.set(__self__, "type", 'ZohoSource')
        if additional_columns is not None:
            pulumi.set(__self__, "additional_columns", additional_columns)
        if disable_metrics_collection is not None:
            pulumi.set(__self__, "disable_metrics_collection", disable_metrics_collection)
        if max_concurrent_connections is not None:
            pulumi.set(__self__, "max_concurrent_connections", max_concurrent_connections)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if query_timeout is not None:
            pulumi.set(__self__, "query_timeout", query_timeout)
        if source_retry_count is not None:
            pulumi.set(__self__, "source_retry_count", source_retry_count)
        if source_retry_wait is not None:
            pulumi.set(__self__, "source_retry_wait", source_retry_wait)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Copy source type.
        Expected value is 'ZohoSource'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="additionalColumns")
    def additional_columns(self) -> Optional[Any]:
        """
        Specifies the additional columns to be added to source data. Type: array of objects(AdditionalColumns) (or Expression with resultType array of objects).
        """
        return pulumi.get(self, "additional_columns")

    @property
    @pulumi.getter(name="disableMetricsCollection")
    def disable_metrics_collection(self) -> Optional[Any]:
        """
        If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean).
        """
        return pulumi.get(self, "disable_metrics_collection")

    @property
    @pulumi.getter(name="maxConcurrentConnections")
    def max_concurrent_connections(self) -> Optional[Any]:
        """
        The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "max_concurrent_connections")

    @property
    @pulumi.getter
    def query(self) -> Optional[Any]:
        """
        A query to retrieve data from source. Type: string (or Expression with resultType string).
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="queryTimeout")
    def query_timeout(self) -> Optional[Any]:
        """
        Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "query_timeout")

    @property
    @pulumi.getter(name="sourceRetryCount")
    def source_retry_count(self) -> Optional[Any]:
        """
        Source retry count. Type: integer (or Expression with resultType integer).
        """
        return pulumi.get(self, "source_retry_count")

    @property
    @pulumi.getter(name="sourceRetryWait")
    def source_retry_wait(self) -> Optional[Any]:
        """
        Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+)\.)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
        """
        return pulumi.get(self, "source_retry_wait")


