示例#1
0
        internal static EloquaObjectDataset DeserializeEloquaObjectDataset(JsonElement element)
        {
            string                 type              = default;
            Optional <string>      description       = default;
            Optional <object>      structure         = default;
            Optional <object>      schema            = default;
            LinkedServiceReference linkedServiceName = default;
            Optional <IDictionary <string, ParameterSpecification> > parameters = default;
            Optional <IList <object> >   annotations                    = default;
            Optional <DatasetFolder>     folder                         = default;
            Optional <object>            tableName                      = default;
            IDictionary <string, object> additionalProperties           = default;
            Dictionary <string, object>  additionalPropertiesDictionary = new Dictionary <string, object>();

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("type"))
                {
                    type = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("description"))
                {
                    description = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("structure"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    structure = property.Value.GetObject();
                    continue;
                }
                if (property.NameEquals("schema"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    schema = property.Value.GetObject();
                    continue;
                }
                if (property.NameEquals("linkedServiceName"))
                {
                    linkedServiceName = LinkedServiceReference.DeserializeLinkedServiceReference(property.Value);
                    continue;
                }
                if (property.NameEquals("parameters"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    Dictionary <string, ParameterSpecification> dictionary = new Dictionary <string, ParameterSpecification>();
                    foreach (var property0 in property.Value.EnumerateObject())
                    {
                        dictionary.Add(property0.Name, ParameterSpecification.DeserializeParameterSpecification(property0.Value));
                    }
                    parameters = dictionary;
                    continue;
                }
                if (property.NameEquals("annotations"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <object> array = new List <object>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(item.GetObject());
                    }
                    annotations = array;
                    continue;
                }
                if (property.NameEquals("folder"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    folder = DatasetFolder.DeserializeDatasetFolder(property.Value);
                    continue;
                }
                if (property.NameEquals("typeProperties"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    foreach (var property0 in property.Value.EnumerateObject())
                    {
                        if (property0.NameEquals("tableName"))
                        {
                            if (property0.Value.ValueKind == JsonValueKind.Null)
                            {
                                property0.ThrowNonNullablePropertyIsNull();
                                continue;
                            }
                            tableName = property0.Value.GetObject();
                            continue;
                        }
                    }
                    continue;
                }
                additionalPropertiesDictionary.Add(property.Name, property.Value.GetObject());
            }
            additionalProperties = additionalPropertiesDictionary;
            return(new EloquaObjectDataset(type, description.Value, structure.Value, schema.Value, linkedServiceName, Optional.ToDictionary(parameters), Optional.ToList(annotations), folder.Value, additionalProperties, tableName.Value));
        }
示例#2
0
        internal static PaypalObjectDataset DeserializePaypalObjectDataset(JsonElement element)
        {
            string type        = default;
            string description = default;
            object structure   = default;
            object schema      = default;
            LinkedServiceReference linkedServiceName = default;
            IDictionary <string, ParameterSpecification> parameters = default;
            IList <object> annotations = default;
            DatasetFolder  folder      = default;
            object         tableName   = default;
            IDictionary <string, object> additionalProperties           = default;
            Dictionary <string, object>  additionalPropertiesDictionary = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("type"))
                {
                    type = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("description"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    description = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("structure"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    structure = property.Value.GetObject();
                    continue;
                }
                if (property.NameEquals("schema"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    schema = property.Value.GetObject();
                    continue;
                }
                if (property.NameEquals("linkedServiceName"))
                {
                    linkedServiceName = LinkedServiceReference.DeserializeLinkedServiceReference(property.Value);
                    continue;
                }
                if (property.NameEquals("parameters"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    Dictionary <string, ParameterSpecification> dictionary = new Dictionary <string, ParameterSpecification>();
                    foreach (var property0 in property.Value.EnumerateObject())
                    {
                        if (property0.Value.ValueKind == JsonValueKind.Null)
                        {
                            dictionary.Add(property0.Name, null);
                        }
                        else
                        {
                            dictionary.Add(property0.Name, ParameterSpecification.DeserializeParameterSpecification(property0.Value));
                        }
                    }
                    parameters = dictionary;
                    continue;
                }
                if (property.NameEquals("annotations"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    List <object> array = new List <object>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        if (item.ValueKind == JsonValueKind.Null)
                        {
                            array.Add(null);
                        }
                        else
                        {
                            array.Add(item.GetObject());
                        }
                    }
                    annotations = array;
                    continue;
                }
                if (property.NameEquals("folder"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    folder = DatasetFolder.DeserializeDatasetFolder(property.Value);
                    continue;
                }
                if (property.NameEquals("typeProperties"))
                {
                    foreach (var property0 in property.Value.EnumerateObject())
                    {
                        if (property0.NameEquals("tableName"))
                        {
                            if (property0.Value.ValueKind == JsonValueKind.Null)
                            {
                                continue;
                            }
                            tableName = property0.Value.GetObject();
                            continue;
                        }
                    }
                    continue;
                }
                additionalPropertiesDictionary ??= new Dictionary <string, object>();
                if (property.Value.ValueKind == JsonValueKind.Null)
                {
                    additionalPropertiesDictionary.Add(property.Name, null);
                }
                else
                {
                    additionalPropertiesDictionary.Add(property.Name, property.Value.GetObject());
                }
            }
            additionalProperties = additionalPropertiesDictionary;
            return(new PaypalObjectDataset(type, description, structure, schema, linkedServiceName, parameters, annotations, folder, additionalProperties, tableName));
        }
示例#3
0
        internal static Dataset DeserializeDataset(JsonElement element)
        {
            if (element.TryGetProperty("type", out JsonElement discriminator))
            {
                switch (discriminator.GetString())
                {
                case "AmazonMWSObject": return(AmazonMWSObjectDataset.DeserializeAmazonMWSObjectDataset(element));

                case "AmazonRedshiftTable": return(AmazonRedshiftTableDataset.DeserializeAmazonRedshiftTableDataset(element));

                case "AmazonS3Object": return(AmazonS3Dataset.DeserializeAmazonS3Dataset(element));

                case "Avro": return(AvroDataset.DeserializeAvroDataset(element));

                case "AzureBlob": return(AzureBlobDataset.DeserializeAzureBlobDataset(element));

                case "AzureBlobFSFile": return(AzureBlobFSDataset.DeserializeAzureBlobFSDataset(element));

                case "AzureDataExplorerTable": return(AzureDataExplorerTableDataset.DeserializeAzureDataExplorerTableDataset(element));

                case "AzureDataLakeStoreFile": return(AzureDataLakeStoreDataset.DeserializeAzureDataLakeStoreDataset(element));

                case "AzureDatabricksDeltaLakeDataset": return(AzureDatabricksDeltaLakeDataset.DeserializeAzureDatabricksDeltaLakeDataset(element));

                case "AzureMariaDBTable": return(AzureMariaDBTableDataset.DeserializeAzureMariaDBTableDataset(element));

                case "AzureMySqlTable": return(AzureMySqlTableDataset.DeserializeAzureMySqlTableDataset(element));

                case "AzurePostgreSqlTable": return(AzurePostgreSqlTableDataset.DeserializeAzurePostgreSqlTableDataset(element));

                case "AzureSearchIndex": return(AzureSearchIndexDataset.DeserializeAzureSearchIndexDataset(element));

                case "AzureSqlDWTable": return(AzureSqlDWTableDataset.DeserializeAzureSqlDWTableDataset(element));

                case "AzureSqlMITable": return(AzureSqlMITableDataset.DeserializeAzureSqlMITableDataset(element));

                case "AzureSqlTable": return(AzureSqlTableDataset.DeserializeAzureSqlTableDataset(element));

                case "AzureTable": return(AzureTableDataset.DeserializeAzureTableDataset(element));

                case "Binary": return(BinaryDataset.DeserializeBinaryDataset(element));

                case "CassandraTable": return(CassandraTableDataset.DeserializeCassandraTableDataset(element));

                case "CommonDataServiceForAppsEntity": return(CommonDataServiceForAppsEntityDataset.DeserializeCommonDataServiceForAppsEntityDataset(element));

                case "ConcurObject": return(ConcurObjectDataset.DeserializeConcurObjectDataset(element));

                case "CosmosDbMongoDbApiCollection": return(CosmosDbMongoDbApiCollectionDataset.DeserializeCosmosDbMongoDbApiCollectionDataset(element));

                case "CosmosDbSqlApiCollection": return(CosmosDbSqlApiCollectionDataset.DeserializeCosmosDbSqlApiCollectionDataset(element));

                case "CouchbaseTable": return(CouchbaseTableDataset.DeserializeCouchbaseTableDataset(element));

                case "CustomDataset": return(CustomDataset.DeserializeCustomDataset(element));

                case "Db2Table": return(Db2TableDataset.DeserializeDb2TableDataset(element));

                case "DelimitedText": return(DelimitedTextDataset.DeserializeDelimitedTextDataset(element));

                case "DocumentDbCollection": return(DocumentDbCollectionDataset.DeserializeDocumentDbCollectionDataset(element));

                case "DrillTable": return(DrillTableDataset.DeserializeDrillTableDataset(element));

                case "DynamicsAXResource": return(DynamicsAXResourceDataset.DeserializeDynamicsAXResourceDataset(element));

                case "DynamicsCrmEntity": return(DynamicsCrmEntityDataset.DeserializeDynamicsCrmEntityDataset(element));

                case "DynamicsEntity": return(DynamicsEntityDataset.DeserializeDynamicsEntityDataset(element));

                case "EloquaObject": return(EloquaObjectDataset.DeserializeEloquaObjectDataset(element));

                case "Excel": return(ExcelDataset.DeserializeExcelDataset(element));

                case "FileShare": return(FileShareDataset.DeserializeFileShareDataset(element));

                case "GoogleAdWordsObject": return(GoogleAdWordsObjectDataset.DeserializeGoogleAdWordsObjectDataset(element));

                case "GoogleBigQueryObject": return(GoogleBigQueryObjectDataset.DeserializeGoogleBigQueryObjectDataset(element));

                case "GreenplumTable": return(GreenplumTableDataset.DeserializeGreenplumTableDataset(element));

                case "HBaseObject": return(HBaseObjectDataset.DeserializeHBaseObjectDataset(element));

                case "HiveObject": return(HiveObjectDataset.DeserializeHiveObjectDataset(element));

                case "HttpFile": return(HttpDataset.DeserializeHttpDataset(element));

                case "HubspotObject": return(HubspotObjectDataset.DeserializeHubspotObjectDataset(element));

                case "ImpalaObject": return(ImpalaObjectDataset.DeserializeImpalaObjectDataset(element));

                case "InformixTable": return(InformixTableDataset.DeserializeInformixTableDataset(element));

                case "JiraObject": return(JiraObjectDataset.DeserializeJiraObjectDataset(element));

                case "Json": return(JsonDataset.DeserializeJsonDataset(element));

                case "MagentoObject": return(MagentoObjectDataset.DeserializeMagentoObjectDataset(element));

                case "MariaDBTable": return(MariaDBTableDataset.DeserializeMariaDBTableDataset(element));

                case "MarketoObject": return(MarketoObjectDataset.DeserializeMarketoObjectDataset(element));

                case "MicrosoftAccessTable": return(MicrosoftAccessTableDataset.DeserializeMicrosoftAccessTableDataset(element));

                case "MongoDbAtlasCollection": return(MongoDbAtlasCollectionDataset.DeserializeMongoDbAtlasCollectionDataset(element));

                case "MongoDbCollection": return(MongoDbCollectionDataset.DeserializeMongoDbCollectionDataset(element));

                case "MongoDbV2Collection": return(MongoDbV2CollectionDataset.DeserializeMongoDbV2CollectionDataset(element));

                case "MySqlTable": return(MySqlTableDataset.DeserializeMySqlTableDataset(element));

                case "NetezzaTable": return(NetezzaTableDataset.DeserializeNetezzaTableDataset(element));

                case "ODataResource": return(ODataResourceDataset.DeserializeODataResourceDataset(element));

                case "OdbcTable": return(OdbcTableDataset.DeserializeOdbcTableDataset(element));

                case "Office365Table": return(Office365Dataset.DeserializeOffice365Dataset(element));

                case "OracleServiceCloudObject": return(OracleServiceCloudObjectDataset.DeserializeOracleServiceCloudObjectDataset(element));

                case "OracleTable": return(OracleTableDataset.DeserializeOracleTableDataset(element));

                case "Orc": return(OrcDataset.DeserializeOrcDataset(element));

                case "Parquet": return(ParquetDataset.DeserializeParquetDataset(element));

                case "PaypalObject": return(PaypalObjectDataset.DeserializePaypalObjectDataset(element));

                case "PhoenixObject": return(PhoenixObjectDataset.DeserializePhoenixObjectDataset(element));

                case "PostgreSqlTable": return(PostgreSqlTableDataset.DeserializePostgreSqlTableDataset(element));

                case "PrestoObject": return(PrestoObjectDataset.DeserializePrestoObjectDataset(element));

                case "QuickBooksObject": return(QuickBooksObjectDataset.DeserializeQuickBooksObjectDataset(element));

                case "RelationalTable": return(RelationalTableDataset.DeserializeRelationalTableDataset(element));

                case "ResponsysObject": return(ResponsysObjectDataset.DeserializeResponsysObjectDataset(element));

                case "RestResource": return(RestResourceDataset.DeserializeRestResourceDataset(element));

                case "SalesforceMarketingCloudObject": return(SalesforceMarketingCloudObjectDataset.DeserializeSalesforceMarketingCloudObjectDataset(element));

                case "SalesforceObject": return(SalesforceObjectDataset.DeserializeSalesforceObjectDataset(element));

                case "SalesforceServiceCloudObject": return(SalesforceServiceCloudObjectDataset.DeserializeSalesforceServiceCloudObjectDataset(element));

                case "SapBwCube": return(SapBwCubeDataset.DeserializeSapBwCubeDataset(element));

                case "SapCloudForCustomerResource": return(SapCloudForCustomerResourceDataset.DeserializeSapCloudForCustomerResourceDataset(element));

                case "SapEccResource": return(SapEccResourceDataset.DeserializeSapEccResourceDataset(element));

                case "SapHanaTable": return(SapHanaTableDataset.DeserializeSapHanaTableDataset(element));

                case "SapOpenHubTable": return(SapOpenHubTableDataset.DeserializeSapOpenHubTableDataset(element));

                case "SapTableResource": return(SapTableResourceDataset.DeserializeSapTableResourceDataset(element));

                case "ServiceNowObject": return(ServiceNowObjectDataset.DeserializeServiceNowObjectDataset(element));

                case "SharePointOnlineListResource": return(SharePointOnlineListResourceDataset.DeserializeSharePointOnlineListResourceDataset(element));

                case "ShopifyObject": return(ShopifyObjectDataset.DeserializeShopifyObjectDataset(element));

                case "SnowflakeTable": return(SnowflakeDataset.DeserializeSnowflakeDataset(element));

                case "SparkObject": return(SparkObjectDataset.DeserializeSparkObjectDataset(element));

                case "SqlServerTable": return(SqlServerTableDataset.DeserializeSqlServerTableDataset(element));

                case "SquareObject": return(SquareObjectDataset.DeserializeSquareObjectDataset(element));

                case "SybaseTable": return(SybaseTableDataset.DeserializeSybaseTableDataset(element));

                case "TeradataTable": return(TeradataTableDataset.DeserializeTeradataTableDataset(element));

                case "VerticaTable": return(VerticaTableDataset.DeserializeVerticaTableDataset(element));

                case "WebTable": return(WebTableDataset.DeserializeWebTableDataset(element));

                case "XeroObject": return(XeroObjectDataset.DeserializeXeroObjectDataset(element));

                case "Xml": return(XmlDataset.DeserializeXmlDataset(element));

                case "ZohoObject": return(ZohoObjectDataset.DeserializeZohoObjectDataset(element));
                }
            }
            string                 type              = default;
            Optional <string>      description       = default;
            Optional <object>      structure         = default;
            Optional <object>      schema            = default;
            LinkedServiceReference linkedServiceName = default;
            Optional <IDictionary <string, ParameterSpecification> > parameters = default;
            Optional <IList <object> >   annotations                    = default;
            Optional <DatasetFolder>     folder                         = default;
            IDictionary <string, object> additionalProperties           = default;
            Dictionary <string, object>  additionalPropertiesDictionary = new Dictionary <string, object>();

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("type"))
                {
                    type = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("description"))
                {
                    description = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("structure"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    structure = property.Value.GetObject();
                    continue;
                }
                if (property.NameEquals("schema"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    schema = property.Value.GetObject();
                    continue;
                }
                if (property.NameEquals("linkedServiceName"))
                {
                    linkedServiceName = LinkedServiceReference.DeserializeLinkedServiceReference(property.Value);
                    continue;
                }
                if (property.NameEquals("parameters"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    Dictionary <string, ParameterSpecification> dictionary = new Dictionary <string, ParameterSpecification>();
                    foreach (var property0 in property.Value.EnumerateObject())
                    {
                        dictionary.Add(property0.Name, ParameterSpecification.DeserializeParameterSpecification(property0.Value));
                    }
                    parameters = dictionary;
                    continue;
                }
                if (property.NameEquals("annotations"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <object> array = new List <object>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(item.GetObject());
                    }
                    annotations = array;
                    continue;
                }
                if (property.NameEquals("folder"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    folder = DatasetFolder.DeserializeDatasetFolder(property.Value);
                    continue;
                }
                additionalPropertiesDictionary.Add(property.Name, property.Value.GetObject());
            }
            additionalProperties = additionalPropertiesDictionary;
            return(new Dataset(type, description.Value, structure.Value, schema.Value, linkedServiceName, Optional.ToDictionary(parameters), Optional.ToList(annotations), folder.Value, additionalProperties));
        }
        internal static AmazonS3Dataset DeserializeAmazonS3Dataset(JsonElement element)
        {
            string                 type              = default;
            Optional <string>      description       = default;
            Optional <object>      structure         = default;
            Optional <object>      schema            = default;
            LinkedServiceReference linkedServiceName = default;
            Optional <IDictionary <string, ParameterSpecification> > parameters = default;
            Optional <IList <object> > annotations = default;
            Optional <DatasetFolder>   folder      = default;
            object            bucketName           = default;
            Optional <object> key     = default;
            Optional <object> prefix  = default;
            Optional <object> version = default;
            Optional <object> modifiedDatetimeStart                        = default;
            Optional <object> modifiedDatetimeEnd                          = default;
            Optional <DatasetStorageFormat> format                         = default;
            Optional <DatasetCompression>   compression                    = default;
            IDictionary <string, object>    additionalProperties           = default;
            Dictionary <string, object>     additionalPropertiesDictionary = new Dictionary <string, object>();

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("type"))
                {
                    type = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("description"))
                {
                    description = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("structure"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    structure = property.Value.GetObject();
                    continue;
                }
                if (property.NameEquals("schema"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    schema = property.Value.GetObject();
                    continue;
                }
                if (property.NameEquals("linkedServiceName"))
                {
                    linkedServiceName = LinkedServiceReference.DeserializeLinkedServiceReference(property.Value);
                    continue;
                }
                if (property.NameEquals("parameters"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    Dictionary <string, ParameterSpecification> dictionary = new Dictionary <string, ParameterSpecification>();
                    foreach (var property0 in property.Value.EnumerateObject())
                    {
                        dictionary.Add(property0.Name, ParameterSpecification.DeserializeParameterSpecification(property0.Value));
                    }
                    parameters = dictionary;
                    continue;
                }
                if (property.NameEquals("annotations"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <object> array = new List <object>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(item.GetObject());
                    }
                    annotations = array;
                    continue;
                }
                if (property.NameEquals("folder"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    folder = DatasetFolder.DeserializeDatasetFolder(property.Value);
                    continue;
                }
                if (property.NameEquals("typeProperties"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    foreach (var property0 in property.Value.EnumerateObject())
                    {
                        if (property0.NameEquals("bucketName"))
                        {
                            bucketName = property0.Value.GetObject();
                            continue;
                        }
                        if (property0.NameEquals("key"))
                        {
                            if (property0.Value.ValueKind == JsonValueKind.Null)
                            {
                                property0.ThrowNonNullablePropertyIsNull();
                                continue;
                            }
                            key = property0.Value.GetObject();
                            continue;
                        }
                        if (property0.NameEquals("prefix"))
                        {
                            if (property0.Value.ValueKind == JsonValueKind.Null)
                            {
                                property0.ThrowNonNullablePropertyIsNull();
                                continue;
                            }
                            prefix = property0.Value.GetObject();
                            continue;
                        }
                        if (property0.NameEquals("version"))
                        {
                            if (property0.Value.ValueKind == JsonValueKind.Null)
                            {
                                property0.ThrowNonNullablePropertyIsNull();
                                continue;
                            }
                            version = property0.Value.GetObject();
                            continue;
                        }
                        if (property0.NameEquals("modifiedDatetimeStart"))
                        {
                            if (property0.Value.ValueKind == JsonValueKind.Null)
                            {
                                property0.ThrowNonNullablePropertyIsNull();
                                continue;
                            }
                            modifiedDatetimeStart = property0.Value.GetObject();
                            continue;
                        }
                        if (property0.NameEquals("modifiedDatetimeEnd"))
                        {
                            if (property0.Value.ValueKind == JsonValueKind.Null)
                            {
                                property0.ThrowNonNullablePropertyIsNull();
                                continue;
                            }
                            modifiedDatetimeEnd = property0.Value.GetObject();
                            continue;
                        }
                        if (property0.NameEquals("format"))
                        {
                            if (property0.Value.ValueKind == JsonValueKind.Null)
                            {
                                property0.ThrowNonNullablePropertyIsNull();
                                continue;
                            }
                            format = DatasetStorageFormat.DeserializeDatasetStorageFormat(property0.Value);
                            continue;
                        }
                        if (property0.NameEquals("compression"))
                        {
                            if (property0.Value.ValueKind == JsonValueKind.Null)
                            {
                                property0.ThrowNonNullablePropertyIsNull();
                                continue;
                            }
                            compression = DatasetCompression.DeserializeDatasetCompression(property0.Value);
                            continue;
                        }
                    }
                    continue;
                }
                additionalPropertiesDictionary.Add(property.Name, property.Value.GetObject());
            }
            additionalProperties = additionalPropertiesDictionary;
            return(new AmazonS3Dataset(type, description.Value, structure.Value, schema.Value, linkedServiceName, Optional.ToDictionary(parameters), Optional.ToList(annotations), folder.Value, additionalProperties, bucketName, key.Value, prefix.Value, version.Value, modifiedDatetimeStart.Value, modifiedDatetimeEnd.Value, format.Value, compression.Value));
        }
        internal static SapOpenHubTableDataset DeserializeSapOpenHubTableDataset(JsonElement element)
        {
            string                 type              = default;
            Optional <string>      description       = default;
            Optional <object>      structure         = default;
            Optional <object>      schema            = default;
            LinkedServiceReference linkedServiceName = default;
            Optional <IDictionary <string, ParameterSpecification> > parameters = default;
            Optional <IList <object> > annotations = default;
            Optional <DatasetFolder>   folder      = default;
            object                       openHubDestinationName         = default;
            Optional <object>            excludeLastRequest             = default;
            Optional <object>            baseRequestId                  = default;
            IDictionary <string, object> additionalProperties           = default;
            Dictionary <string, object>  additionalPropertiesDictionary = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("type"))
                {
                    type = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("description"))
                {
                    description = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("structure"))
                {
                    structure = property.Value.GetObject();
                    continue;
                }
                if (property.NameEquals("schema"))
                {
                    schema = property.Value.GetObject();
                    continue;
                }
                if (property.NameEquals("linkedServiceName"))
                {
                    linkedServiceName = LinkedServiceReference.DeserializeLinkedServiceReference(property.Value);
                    continue;
                }
                if (property.NameEquals("parameters"))
                {
                    Dictionary <string, ParameterSpecification> dictionary = new Dictionary <string, ParameterSpecification>();
                    foreach (var property0 in property.Value.EnumerateObject())
                    {
                        dictionary.Add(property0.Name, ParameterSpecification.DeserializeParameterSpecification(property0.Value));
                    }
                    parameters = dictionary;
                    continue;
                }
                if (property.NameEquals("annotations"))
                {
                    List <object> array = new List <object>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(item.GetObject());
                    }
                    annotations = array;
                    continue;
                }
                if (property.NameEquals("folder"))
                {
                    folder = DatasetFolder.DeserializeDatasetFolder(property.Value);
                    continue;
                }
                if (property.NameEquals("typeProperties"))
                {
                    foreach (var property0 in property.Value.EnumerateObject())
                    {
                        if (property0.NameEquals("openHubDestinationName"))
                        {
                            openHubDestinationName = property0.Value.GetObject();
                            continue;
                        }
                        if (property0.NameEquals("excludeLastRequest"))
                        {
                            excludeLastRequest = property0.Value.GetObject();
                            continue;
                        }
                        if (property0.NameEquals("baseRequestId"))
                        {
                            baseRequestId = property0.Value.GetObject();
                            continue;
                        }
                    }
                    continue;
                }
                additionalPropertiesDictionary ??= new Dictionary <string, object>();
                additionalPropertiesDictionary.Add(property.Name, property.Value.GetObject());
            }
            additionalProperties = additionalPropertiesDictionary;
            return(new SapOpenHubTableDataset(type, description.Value, structure.Value, schema.Value, linkedServiceName, Optional.ToDictionary(parameters), Optional.ToList(annotations), folder.Value, additionalProperties, openHubDestinationName, excludeLastRequest.Value, baseRequestId.Value));
        }
        internal static DelimitedTextDataset DeserializeDelimitedTextDataset(JsonElement element)
        {
            string                 type              = default;
            Optional <string>      description       = default;
            Optional <object>      structure         = default;
            Optional <object>      schema            = default;
            LinkedServiceReference linkedServiceName = default;
            Optional <IDictionary <string, ParameterSpecification> > parameters = default;
            Optional <IList <object> > annotations     = default;
            Optional <DatasetFolder>   folder          = default;
            Optional <DatasetLocation> location        = default;
            Optional <object>          columnDelimiter = default;
            Optional <object>          rowDelimiter    = default;
            Optional <object>          encodingName    = default;
            Optional <DelimitedTextCompressionCodec> compressionCodec = default;
            Optional <DatasetCompressionLevel>       compressionLevel = default;
            Optional <object>            quoteChar                      = default;
            Optional <object>            escapeChar                     = default;
            Optional <object>            firstRowAsHeader               = default;
            Optional <object>            nullValue                      = default;
            IDictionary <string, object> additionalProperties           = default;
            Dictionary <string, object>  additionalPropertiesDictionary = new Dictionary <string, object>();

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("type"))
                {
                    type = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("description"))
                {
                    description = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("structure"))
                {
                    structure = property.Value.GetObject();
                    continue;
                }
                if (property.NameEquals("schema"))
                {
                    schema = property.Value.GetObject();
                    continue;
                }
                if (property.NameEquals("linkedServiceName"))
                {
                    linkedServiceName = LinkedServiceReference.DeserializeLinkedServiceReference(property.Value);
                    continue;
                }
                if (property.NameEquals("parameters"))
                {
                    Dictionary <string, ParameterSpecification> dictionary = new Dictionary <string, ParameterSpecification>();
                    foreach (var property0 in property.Value.EnumerateObject())
                    {
                        dictionary.Add(property0.Name, ParameterSpecification.DeserializeParameterSpecification(property0.Value));
                    }
                    parameters = dictionary;
                    continue;
                }
                if (property.NameEquals("annotations"))
                {
                    List <object> array = new List <object>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(item.GetObject());
                    }
                    annotations = array;
                    continue;
                }
                if (property.NameEquals("folder"))
                {
                    folder = DatasetFolder.DeserializeDatasetFolder(property.Value);
                    continue;
                }
                if (property.NameEquals("typeProperties"))
                {
                    foreach (var property0 in property.Value.EnumerateObject())
                    {
                        if (property0.NameEquals("location"))
                        {
                            location = DatasetLocation.DeserializeDatasetLocation(property0.Value);
                            continue;
                        }
                        if (property0.NameEquals("columnDelimiter"))
                        {
                            columnDelimiter = property0.Value.GetObject();
                            continue;
                        }
                        if (property0.NameEquals("rowDelimiter"))
                        {
                            rowDelimiter = property0.Value.GetObject();
                            continue;
                        }
                        if (property0.NameEquals("encodingName"))
                        {
                            encodingName = property0.Value.GetObject();
                            continue;
                        }
                        if (property0.NameEquals("compressionCodec"))
                        {
                            compressionCodec = new DelimitedTextCompressionCodec(property0.Value.GetString());
                            continue;
                        }
                        if (property0.NameEquals("compressionLevel"))
                        {
                            compressionLevel = new DatasetCompressionLevel(property0.Value.GetString());
                            continue;
                        }
                        if (property0.NameEquals("quoteChar"))
                        {
                            quoteChar = property0.Value.GetObject();
                            continue;
                        }
                        if (property0.NameEquals("escapeChar"))
                        {
                            escapeChar = property0.Value.GetObject();
                            continue;
                        }
                        if (property0.NameEquals("firstRowAsHeader"))
                        {
                            firstRowAsHeader = property0.Value.GetObject();
                            continue;
                        }
                        if (property0.NameEquals("nullValue"))
                        {
                            nullValue = property0.Value.GetObject();
                            continue;
                        }
                    }
                    continue;
                }
                additionalPropertiesDictionary.Add(property.Name, property.Value.GetObject());
            }
            additionalProperties = additionalPropertiesDictionary;
            return(new DelimitedTextDataset(type, description.Value, structure.Value, schema.Value, linkedServiceName, Optional.ToDictionary(parameters), Optional.ToList(annotations), folder.Value, additionalProperties, location.Value, columnDelimiter.Value, rowDelimiter.Value, encodingName.Value, Optional.ToNullable(compressionCodec), Optional.ToNullable(compressionLevel), quoteChar.Value, escapeChar.Value, firstRowAsHeader.Value, nullValue.Value));
        }