internal RecommendedActionData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, string kind, string location, string recommendationReason, DateTimeOffset?validSince, DateTimeOffset?lastRefresh, RecommendedActionStateInfo state, bool?isExecutableAction, bool?isRevertableAction, bool?isArchivedAction, DateTimeOffset?executeActionStartOn, TimeSpan?executeActionDuration, DateTimeOffset?revertActionStartOn, TimeSpan?revertActionDuration, RecommendedActionInitiatedBy?executeActionInitiatedBy, DateTimeOffset?executeActionInitiatedOn, RecommendedActionInitiatedBy?revertActionInitiatedBy, DateTimeOffset?revertActionInitiatedOn, int?score, RecommendedActionImplementationInfo implementationDetails, RecommendedActionErrorInfo errorDetails, IReadOnlyList <RecommendedActionImpactRecord> estimatedImpact, IReadOnlyList <RecommendedActionImpactRecord> observedImpact, IReadOnlyList <RecommendedActionMetricInfo> timeSeries, IReadOnlyList <string> linkedObjects, IReadOnlyDictionary <string, BinaryData> details) : base(id, name, resourceType, systemData) { Kind = kind; Location = location; RecommendationReason = recommendationReason; ValidSince = validSince; LastRefresh = lastRefresh; State = state; IsExecutableAction = isExecutableAction; IsRevertableAction = isRevertableAction; IsArchivedAction = isArchivedAction; ExecuteActionStartOn = executeActionStartOn; ExecuteActionDuration = executeActionDuration; RevertActionStartOn = revertActionStartOn; RevertActionDuration = revertActionDuration; ExecuteActionInitiatedBy = executeActionInitiatedBy; ExecuteActionInitiatedOn = executeActionInitiatedOn; RevertActionInitiatedBy = revertActionInitiatedBy; RevertActionInitiatedOn = revertActionInitiatedOn; Score = score; ImplementationDetails = implementationDetails; ErrorDetails = errorDetails; EstimatedImpact = estimatedImpact; ObservedImpact = observedImpact; TimeSeries = timeSeries; LinkedObjects = linkedObjects; Details = details; }
internal static RecommendedActionData DeserializeRecommendedActionData(JsonElement element) { Optional <string> kind = default; Optional <string> location = default; ResourceIdentifier id = default; string name = default; ResourceType type = default; SystemData systemData = default; Optional <string> recommendationReason = default; Optional <DateTimeOffset> validSince = default; Optional <DateTimeOffset> lastRefresh = default; Optional <RecommendedActionStateInfo> state = default; Optional <bool> isExecutableAction = default; Optional <bool> isRevertableAction = default; Optional <bool> isArchivedAction = default; Optional <DateTimeOffset> executeActionStartTime = default; Optional <TimeSpan> executeActionDuration = default; Optional <DateTimeOffset> revertActionStartTime = default; Optional <TimeSpan> revertActionDuration = default; Optional <RecommendedActionInitiatedBy> executeActionInitiatedBy = default; Optional <DateTimeOffset> executeActionInitiatedTime = default; Optional <RecommendedActionInitiatedBy> revertActionInitiatedBy = default; Optional <DateTimeOffset> revertActionInitiatedTime = default; Optional <int> score = default; Optional <RecommendedActionImplementationInfo> implementationDetails = default; Optional <RecommendedActionErrorInfo> errorDetails = default; Optional <IReadOnlyList <RecommendedActionImpactRecord> > estimatedImpact = default; Optional <IReadOnlyList <RecommendedActionImpactRecord> > observedImpact = default; Optional <IReadOnlyList <RecommendedActionMetricInfo> > timeSeries = default; Optional <IReadOnlyList <string> > linkedObjects = default; Optional <IReadOnlyDictionary <string, BinaryData> > details = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("kind")) { kind = property.Value.GetString(); continue; } if (property.NameEquals("location")) { location = property.Value.GetString(); continue; } if (property.NameEquals("id")) { id = new ResourceIdentifier(property.Value.GetString()); continue; } if (property.NameEquals("name")) { name = property.Value.GetString(); continue; } if (property.NameEquals("type")) { type = new ResourceType(property.Value.GetString()); continue; } if (property.NameEquals("systemData")) { systemData = JsonSerializer.Deserialize <SystemData>(property.Value.ToString()); continue; } if (property.NameEquals("properties")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } foreach (var property0 in property.Value.EnumerateObject()) { if (property0.NameEquals("recommendationReason")) { recommendationReason = property0.Value.GetString(); continue; } if (property0.NameEquals("validSince")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } validSince = property0.Value.GetDateTimeOffset("O"); continue; } if (property0.NameEquals("lastRefresh")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } lastRefresh = property0.Value.GetDateTimeOffset("O"); continue; } if (property0.NameEquals("state")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } state = RecommendedActionStateInfo.DeserializeRecommendedActionStateInfo(property0.Value); continue; } if (property0.NameEquals("isExecutableAction")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } isExecutableAction = property0.Value.GetBoolean(); continue; } if (property0.NameEquals("isRevertableAction")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } isRevertableAction = property0.Value.GetBoolean(); continue; } if (property0.NameEquals("isArchivedAction")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } isArchivedAction = property0.Value.GetBoolean(); continue; } if (property0.NameEquals("executeActionStartTime")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } executeActionStartTime = property0.Value.GetDateTimeOffset("O"); continue; } if (property0.NameEquals("executeActionDuration")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } executeActionDuration = property0.Value.GetTimeSpan("P"); continue; } if (property0.NameEquals("revertActionStartTime")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } revertActionStartTime = property0.Value.GetDateTimeOffset("O"); continue; } if (property0.NameEquals("revertActionDuration")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } revertActionDuration = property0.Value.GetTimeSpan("P"); continue; } if (property0.NameEquals("executeActionInitiatedBy")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } executeActionInitiatedBy = property0.Value.GetString().ToRecommendedActionInitiatedBy(); continue; } if (property0.NameEquals("executeActionInitiatedTime")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } executeActionInitiatedTime = property0.Value.GetDateTimeOffset("O"); continue; } if (property0.NameEquals("revertActionInitiatedBy")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } revertActionInitiatedBy = property0.Value.GetString().ToRecommendedActionInitiatedBy(); continue; } if (property0.NameEquals("revertActionInitiatedTime")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } revertActionInitiatedTime = property0.Value.GetDateTimeOffset("O"); continue; } if (property0.NameEquals("score")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } score = property0.Value.GetInt32(); continue; } if (property0.NameEquals("implementationDetails")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } implementationDetails = RecommendedActionImplementationInfo.DeserializeRecommendedActionImplementationInfo(property0.Value); continue; } if (property0.NameEquals("errorDetails")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } errorDetails = RecommendedActionErrorInfo.DeserializeRecommendedActionErrorInfo(property0.Value); continue; } if (property0.NameEquals("estimatedImpact")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <RecommendedActionImpactRecord> array = new List <RecommendedActionImpactRecord>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(RecommendedActionImpactRecord.DeserializeRecommendedActionImpactRecord(item)); } estimatedImpact = array; continue; } if (property0.NameEquals("observedImpact")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <RecommendedActionImpactRecord> array = new List <RecommendedActionImpactRecord>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(RecommendedActionImpactRecord.DeserializeRecommendedActionImpactRecord(item)); } observedImpact = array; continue; } if (property0.NameEquals("timeSeries")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <RecommendedActionMetricInfo> array = new List <RecommendedActionMetricInfo>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(RecommendedActionMetricInfo.DeserializeRecommendedActionMetricInfo(item)); } timeSeries = array; continue; } if (property0.NameEquals("linkedObjects")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <string> array = new List <string>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(item.GetString()); } linkedObjects = array; continue; } if (property0.NameEquals("details")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } Dictionary <string, BinaryData> dictionary = new Dictionary <string, BinaryData>(); foreach (var property1 in property0.Value.EnumerateObject()) { dictionary.Add(property1.Name, BinaryData.FromString(property1.Value.GetRawText())); } details = dictionary; continue; } } continue; } } return(new RecommendedActionData(id, name, type, systemData, kind.Value, location.Value, recommendationReason.Value, Optional.ToNullable(validSince), Optional.ToNullable(lastRefresh), state.Value, Optional.ToNullable(isExecutableAction), Optional.ToNullable(isRevertableAction), Optional.ToNullable(isArchivedAction), Optional.ToNullable(executeActionStartTime), Optional.ToNullable(executeActionDuration), Optional.ToNullable(revertActionStartTime), Optional.ToNullable(revertActionDuration), Optional.ToNullable(executeActionInitiatedBy), Optional.ToNullable(executeActionInitiatedTime), Optional.ToNullable(revertActionInitiatedBy), Optional.ToNullable(revertActionInitiatedTime), Optional.ToNullable(score), implementationDetails.Value, errorDetails.Value, Optional.ToList(estimatedImpact), Optional.ToList(observedImpact), Optional.ToList(timeSeries), Optional.ToList(linkedObjects), Optional.ToDictionary(details))); }