internal AzureDataExplorerDataFeed(DataFeedSourceType dataSourceType, string dataFeedId, string dataFeedName, string dataFeedDescription, DataFeedGranularityType granularityName, int? granularityAmount, IList<DataFeedMetric> metrics, IList<MetricDimension> dimension, string timestampColumn, DateTimeOffset dataStartFrom, long? startOffsetInSeconds, int? maxConcurrency, long? minRetryIntervalInSeconds, long? stopRetryAfterInSeconds, DataFeedRollupType? needRollup, DataFeedAutoRollupMethod? rollUpMethod, IList<string> rollUpColumns, string allUpIdentification, DataFeedMissingDataPointFillType? fillMissingPointType, double? fillMissingPointValue, DataFeedAccessMode? viewMode, IList<string> admins, IList<string> viewers, bool? isAdmin, string creator, DataFeedStatus? status, DateTimeOffset? createdTime, string actionLinkTemplate, SqlSourceParameter dataSourceParameter) : base(dataSourceType, dataFeedId, dataFeedName, dataFeedDescription, granularityName, granularityAmount, metrics, dimension, timestampColumn, dataStartFrom, startOffsetInSeconds, maxConcurrency, minRetryIntervalInSeconds, stopRetryAfterInSeconds, needRollup, rollUpMethod, rollUpColumns, allUpIdentification, fillMissingPointType, fillMissingPointValue, viewMode, admins, viewers, isAdmin, creator, status, createdTime, actionLinkTemplate)
 {
     DataSourceParameter = dataSourceParameter;
     DataSourceType = dataSourceType;
 }
        internal static MySqlDataFeed DeserializeMySqlDataFeed(JsonElement element)
        {
            Optional <SqlSourceParameter> dataSourceParameter = default;
            DataFeedSourceType            dataSourceType      = default;
            Optional <string>             dataFeedId          = default;
            string                  dataFeedName                                  = default;
            Optional <string>       dataFeedDescription                           = default;
            DataFeedGranularityType granularityName                               = default;
            Optional <int?>         granularityAmount                             = default;
            IList <DataFeedMetric>  metrics                                       = default;
            Optional <IList <DataFeedDimension> > dimension                       = default;
            Optional <string>                           timestampColumn           = default;
            DateTimeOffset                              dataStartFrom             = default;
            Optional <long>                             startOffsetInSeconds      = default;
            Optional <int>                              maxConcurrency            = default;
            Optional <long>                             minRetryIntervalInSeconds = default;
            Optional <long>                             stopRetryAfterInSeconds   = default;
            Optional <DataFeedRollupType>               needRollup                = default;
            Optional <DataFeedAutoRollupMethod>         rollUpMethod              = default;
            Optional <IList <string> >                  rollUpColumns             = default;
            Optional <string>                           allUpIdentification       = default;
            Optional <DataFeedMissingDataPointFillType> fillMissingPointType      = default;
            Optional <double>                           fillMissingPointValue     = default;
            Optional <DataFeedAccessMode>               viewMode                  = default;
            Optional <IList <string> >                  admins                    = default;
            Optional <IList <string> >                  viewers                   = default;
            Optional <bool>                             isAdmin                   = default;
            Optional <string>                           creator                   = default;
            Optional <DataFeedStatus>                   status                    = default;
            Optional <DateTimeOffset>                   createdTime               = default;
            Optional <string>                           actionLinkTemplate        = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("dataSourceParameter"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    dataSourceParameter = SqlSourceParameter.DeserializeSqlSourceParameter(property.Value);
                    continue;
                }
                if (property.NameEquals("dataSourceType"))
                {
                    dataSourceType = new DataFeedSourceType(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("dataFeedId"))
                {
                    dataFeedId = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("dataFeedName"))
                {
                    dataFeedName = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("dataFeedDescription"))
                {
                    dataFeedDescription = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("granularityName"))
                {
                    granularityName = new DataFeedGranularityType(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("granularityAmount"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        granularityAmount = null;
                        continue;
                    }
                    granularityAmount = property.Value.GetInt32();
                    continue;
                }
                if (property.NameEquals("metrics"))
                {
                    List <DataFeedMetric> array = new List <DataFeedMetric>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(DataFeedMetric.DeserializeDataFeedMetric(item));
                    }
                    metrics = array;
                    continue;
                }
                if (property.NameEquals("dimension"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <DataFeedDimension> array = new List <DataFeedDimension>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(DataFeedDimension.DeserializeDataFeedDimension(item));
                    }
                    dimension = array;
                    continue;
                }
                if (property.NameEquals("timestampColumn"))
                {
                    timestampColumn = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("dataStartFrom"))
                {
                    dataStartFrom = property.Value.GetDateTimeOffset("O");
                    continue;
                }
                if (property.NameEquals("startOffsetInSeconds"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    startOffsetInSeconds = property.Value.GetInt64();
                    continue;
                }
                if (property.NameEquals("maxConcurrency"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    maxConcurrency = property.Value.GetInt32();
                    continue;
                }
                if (property.NameEquals("minRetryIntervalInSeconds"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    minRetryIntervalInSeconds = property.Value.GetInt64();
                    continue;
                }
                if (property.NameEquals("stopRetryAfterInSeconds"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    stopRetryAfterInSeconds = property.Value.GetInt64();
                    continue;
                }
                if (property.NameEquals("needRollup"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    needRollup = new DataFeedRollupType(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("rollUpMethod"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    rollUpMethod = new DataFeedAutoRollupMethod(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("rollUpColumns"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <string> array = new List <string>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(item.GetString());
                    }
                    rollUpColumns = array;
                    continue;
                }
                if (property.NameEquals("allUpIdentification"))
                {
                    allUpIdentification = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("fillMissingPointType"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    fillMissingPointType = new DataFeedMissingDataPointFillType(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("fillMissingPointValue"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    fillMissingPointValue = property.Value.GetDouble();
                    continue;
                }
                if (property.NameEquals("viewMode"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    viewMode = new DataFeedAccessMode(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("admins"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <string> array = new List <string>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(item.GetString());
                    }
                    admins = array;
                    continue;
                }
                if (property.NameEquals("viewers"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <string> array = new List <string>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(item.GetString());
                    }
                    viewers = array;
                    continue;
                }
                if (property.NameEquals("isAdmin"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    isAdmin = property.Value.GetBoolean();
                    continue;
                }
                if (property.NameEquals("creator"))
                {
                    creator = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("status"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    status = new DataFeedStatus(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("createdTime"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    createdTime = property.Value.GetDateTimeOffset("O");
                    continue;
                }
                if (property.NameEquals("actionLinkTemplate"))
                {
                    actionLinkTemplate = property.Value.GetString();
                    continue;
                }
            }
            return(new MySqlDataFeed(dataSourceType, dataFeedId.Value, dataFeedName, dataFeedDescription.Value, granularityName, Optional.ToNullable(granularityAmount), metrics, Optional.ToList(dimension), timestampColumn.Value, dataStartFrom, Optional.ToNullable(startOffsetInSeconds), Optional.ToNullable(maxConcurrency), Optional.ToNullable(minRetryIntervalInSeconds), Optional.ToNullable(stopRetryAfterInSeconds), Optional.ToNullable(needRollup), Optional.ToNullable(rollUpMethod), Optional.ToList(rollUpColumns), allUpIdentification.Value, Optional.ToNullable(fillMissingPointType), Optional.ToNullable(fillMissingPointValue), Optional.ToNullable(viewMode), Optional.ToList(admins), Optional.ToList(viewers), Optional.ToNullable(isAdmin), creator.Value, Optional.ToNullable(status), Optional.ToNullable(createdTime), actionLinkTemplate.Value, dataSourceParameter.Value));
        }
Esempio n. 3
0
        internal static DataFeedDetail DeserializeDataFeedDetail(JsonElement element)
        {
            if (element.TryGetProperty("dataSourceType", out JsonElement discriminator))
            {
                switch (discriminator.GetString())
                {
                case "AzureApplicationInsights": return(AzureApplicationInsightsDataFeed.DeserializeAzureApplicationInsightsDataFeed(element));

                case "AzureBlob": return(AzureBlobDataFeed.DeserializeAzureBlobDataFeed(element));

                case "AzureCosmosDB": return(AzureCosmosDBDataFeed.DeserializeAzureCosmosDBDataFeed(element));

                case "AzureDataExplorer": return(AzureDataExplorerDataFeed.DeserializeAzureDataExplorerDataFeed(element));

                case "AzureDataLakeStorageGen2": return(AzureDataLakeStorageGen2DataFeed.DeserializeAzureDataLakeStorageGen2DataFeed(element));

                case "AzureTable": return(AzureTableDataFeed.DeserializeAzureTableDataFeed(element));

                case "Elasticsearch": return(ElasticsearchDataFeed.DeserializeElasticsearchDataFeed(element));

                case "HttpRequest": return(HttpRequestDataFeed.DeserializeHttpRequestDataFeed(element));

                case "InfluxDB": return(InfluxDBDataFeed.DeserializeInfluxDBDataFeed(element));

                case "MongoDB": return(MongoDBDataFeed.DeserializeMongoDBDataFeed(element));

                case "MySql": return(MySqlDataFeed.DeserializeMySqlDataFeed(element));

                case "PostgreSql": return(PostgreSqlDataFeed.DeserializePostgreSqlDataFeed(element));

                case "SqlServer": return(SQLServerDataFeed.DeserializeSQLServerDataFeed(element));
                }
            }
            DataFeedSourceType      dataSourceType                                = default;
            Optional <string>       dataFeedId                                    = default;
            string                  dataFeedName                                  = default;
            Optional <string>       dataFeedDescription                           = default;
            DataFeedGranularityType granularityName                               = default;
            Optional <int?>         granularityAmount                             = default;
            IList <DataFeedMetric>  metrics                                       = default;
            Optional <IList <DataFeedDimension> > dimension                       = default;
            Optional <string>                           timestampColumn           = default;
            DateTimeOffset                              dataStartFrom             = default;
            Optional <long>                             startOffsetInSeconds      = default;
            Optional <int>                              maxConcurrency            = default;
            Optional <long>                             minRetryIntervalInSeconds = default;
            Optional <long>                             stopRetryAfterInSeconds   = default;
            Optional <DataFeedRollupType>               needRollup                = default;
            Optional <DataFeedAutoRollupMethod>         rollUpMethod              = default;
            Optional <IList <string> >                  rollUpColumns             = default;
            Optional <string>                           allUpIdentification       = default;
            Optional <DataFeedMissingDataPointFillType> fillMissingPointType      = default;
            Optional <double>                           fillMissingPointValue     = default;
            Optional <DataFeedAccessMode>               viewMode                  = default;
            Optional <IList <string> >                  admins                    = default;
            Optional <IList <string> >                  viewers                   = default;
            Optional <bool>                             isAdmin                   = default;
            Optional <string>                           creator                   = default;
            Optional <DataFeedStatus>                   status                    = default;
            Optional <DateTimeOffset>                   createdTime               = default;
            Optional <string>                           actionLinkTemplate        = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("dataSourceType"))
                {
                    dataSourceType = new DataFeedSourceType(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("dataFeedId"))
                {
                    dataFeedId = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("dataFeedName"))
                {
                    dataFeedName = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("dataFeedDescription"))
                {
                    dataFeedDescription = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("granularityName"))
                {
                    granularityName = new DataFeedGranularityType(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("granularityAmount"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        granularityAmount = null;
                        continue;
                    }
                    granularityAmount = property.Value.GetInt32();
                    continue;
                }
                if (property.NameEquals("metrics"))
                {
                    List <DataFeedMetric> array = new List <DataFeedMetric>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(DataFeedMetric.DeserializeDataFeedMetric(item));
                    }
                    metrics = array;
                    continue;
                }
                if (property.NameEquals("dimension"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <DataFeedDimension> array = new List <DataFeedDimension>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(DataFeedDimension.DeserializeDataFeedDimension(item));
                    }
                    dimension = array;
                    continue;
                }
                if (property.NameEquals("timestampColumn"))
                {
                    timestampColumn = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("dataStartFrom"))
                {
                    dataStartFrom = property.Value.GetDateTimeOffset("O");
                    continue;
                }
                if (property.NameEquals("startOffsetInSeconds"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    startOffsetInSeconds = property.Value.GetInt64();
                    continue;
                }
                if (property.NameEquals("maxConcurrency"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    maxConcurrency = property.Value.GetInt32();
                    continue;
                }
                if (property.NameEquals("minRetryIntervalInSeconds"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    minRetryIntervalInSeconds = property.Value.GetInt64();
                    continue;
                }
                if (property.NameEquals("stopRetryAfterInSeconds"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    stopRetryAfterInSeconds = property.Value.GetInt64();
                    continue;
                }
                if (property.NameEquals("needRollup"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    needRollup = new DataFeedRollupType(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("rollUpMethod"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    rollUpMethod = new DataFeedAutoRollupMethod(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("rollUpColumns"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <string> array = new List <string>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(item.GetString());
                    }
                    rollUpColumns = array;
                    continue;
                }
                if (property.NameEquals("allUpIdentification"))
                {
                    allUpIdentification = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("fillMissingPointType"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    fillMissingPointType = new DataFeedMissingDataPointFillType(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("fillMissingPointValue"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    fillMissingPointValue = property.Value.GetDouble();
                    continue;
                }
                if (property.NameEquals("viewMode"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    viewMode = new DataFeedAccessMode(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("admins"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <string> array = new List <string>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(item.GetString());
                    }
                    admins = array;
                    continue;
                }
                if (property.NameEquals("viewers"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <string> array = new List <string>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(item.GetString());
                    }
                    viewers = array;
                    continue;
                }
                if (property.NameEquals("isAdmin"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    isAdmin = property.Value.GetBoolean();
                    continue;
                }
                if (property.NameEquals("creator"))
                {
                    creator = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("status"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    status = new DataFeedStatus(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("createdTime"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    createdTime = property.Value.GetDateTimeOffset("O");
                    continue;
                }
                if (property.NameEquals("actionLinkTemplate"))
                {
                    actionLinkTemplate = property.Value.GetString();
                    continue;
                }
            }
            return(new DataFeedDetail(dataSourceType, dataFeedId.Value, dataFeedName, dataFeedDescription.Value, granularityName, Optional.ToNullable(granularityAmount), metrics, Optional.ToList(dimension), timestampColumn.Value, dataStartFrom, Optional.ToNullable(startOffsetInSeconds), Optional.ToNullable(maxConcurrency), Optional.ToNullable(minRetryIntervalInSeconds), Optional.ToNullable(stopRetryAfterInSeconds), Optional.ToNullable(needRollup), Optional.ToNullable(rollUpMethod), Optional.ToList(rollUpColumns), allUpIdentification.Value, Optional.ToNullable(fillMissingPointType), Optional.ToNullable(fillMissingPointValue), Optional.ToNullable(viewMode), Optional.ToList(admins), Optional.ToList(viewers), Optional.ToNullable(isAdmin), creator.Value, Optional.ToNullable(status), Optional.ToNullable(createdTime), actionLinkTemplate.Value));
        }
Esempio n. 4
0
 internal DataFeedDetail(DataFeedSourceKind dataSourceType, string dataFeedId, string dataFeedName, string dataFeedDescription, DataFeedGranularityType granularityName, int?granularityAmount, IList <DataFeedMetric> metrics, IList <DataFeedDimension> dimension, string timestampColumn, DateTimeOffset dataStartFrom, long?startOffsetInSeconds, int?maxConcurrency, long?minRetryIntervalInSeconds, long?stopRetryAfterInSeconds, DataFeedRollupType?needRollup, DataFeedAutoRollupMethod?rollUpMethod, IList <string> rollUpColumns, string allUpIdentification, DataFeedMissingDataPointFillType?fillMissingPointType, double?fillMissingPointValue, DataFeedAccessMode?viewMode, IList <string> admins, IList <string> viewers, bool?isAdmin, string creator, DataFeedStatus?status, DateTimeOffset?createdTime, string actionLinkTemplate, AuthenticationTypeEnum?authenticationType, string credentialId)
 {
     DataSourceType            = dataSourceType;
     DataFeedId                = dataFeedId;
     DataFeedName              = dataFeedName;
     DataFeedDescription       = dataFeedDescription;
     GranularityName           = granularityName;
     GranularityAmount         = granularityAmount;
     Metrics                   = metrics;
     Dimension                 = dimension;
     TimestampColumn           = timestampColumn;
     DataStartFrom             = dataStartFrom;
     StartOffsetInSeconds      = startOffsetInSeconds;
     MaxConcurrency            = maxConcurrency;
     MinRetryIntervalInSeconds = minRetryIntervalInSeconds;
     StopRetryAfterInSeconds   = stopRetryAfterInSeconds;
     NeedRollup                = needRollup;
     RollUpMethod              = rollUpMethod;
     RollUpColumns             = rollUpColumns;
     AllUpIdentification       = allUpIdentification;
     FillMissingPointType      = fillMissingPointType;
     FillMissingPointValue     = fillMissingPointValue;
     ViewMode                  = viewMode;
     Admins             = admins;
     Viewers            = viewers;
     IsAdmin            = isAdmin;
     Creator            = creator;
     Status             = status;
     CreatedTime        = createdTime;
     ActionLinkTemplate = actionLinkTemplate;
     AuthenticationType = authenticationType;
     CredentialId       = credentialId;
 }
        internal DataFeedDetail(DataFeedSourceType dataSourceType, string dataFeedId, string dataFeedName, string dataFeedDescription, DataFeedGranularityType granularityName, int?granularityAmount, IList <DataFeedMetric> metrics, IList <MetricDimension> dimension, string timestampColumn, DateTimeOffset dataStartFrom, long?startOffsetInSeconds, int?maxConcurrency, long?minRetryIntervalInSeconds, long?stopRetryAfterInSeconds, DataFeedRollupType?needRollup, DataFeedAutoRollupMethod?rollUpMethod, IList <string> rollUpColumns, string allUpIdentification, DataFeedMissingDataPointFillType?fillMissingPointType, double?fillMissingPointValue, AccessMode?viewMode, IList <string> admins, IList <string> viewers, bool?isAdmin, string creator, DataFeedStatus?status, DateTimeOffset?createdTime, string actionLinkTemplate)
        {
            Argument.AssertNotNullOrEmpty(dataFeedName, nameof(dataFeedName));
            Argument.AssertNotNullOrEmpty(metrics, nameof(metrics));

            DataSourceType            = dataSourceType;
            DataFeedId                = dataFeedId;
            DataFeedName              = dataFeedName;
            DataFeedDescription       = dataFeedDescription;
            GranularityName           = granularityName;
            GranularityAmount         = granularityAmount;
            Metrics                   = metrics;
            Dimension                 = dimension ?? new ChangeTrackingList <MetricDimension>();
            TimestampColumn           = timestampColumn;
            DataStartFrom             = dataStartFrom;
            StartOffsetInSeconds      = startOffsetInSeconds;
            MaxConcurrency            = maxConcurrency;
            MinRetryIntervalInSeconds = minRetryIntervalInSeconds;
            StopRetryAfterInSeconds   = stopRetryAfterInSeconds;
            NeedRollup                = needRollup;
            RollUpMethod              = rollUpMethod;
            RollUpColumns             = rollUpColumns ?? new ChangeTrackingList <string>();
            AllUpIdentification       = allUpIdentification;
            FillMissingPointType      = fillMissingPointType;
            FillMissingPointValue     = fillMissingPointValue;
            ViewMode                  = viewMode;
            Admins             = admins ?? new ChangeTrackingList <string>();
            Viewers            = viewers ?? new ChangeTrackingList <string>();
            IsAdmin            = isAdmin;
            Creator            = creator;
            Status             = status;
            CreatedTime        = createdTime;
            ActionLinkTemplate = actionLinkTemplate;
        }