internal ReservationCatalog(ResourceType?resourceType, string skuName, IReadOnlyDictionary <string, IList <ReservationBillingPlan> > billingPlans, IReadOnlyList <ReservationTerm> terms, IReadOnlyList <AzureLocation> locations, IReadOnlyList <SkuProperty> skuProperties, CatalogMsrp msrp, IReadOnlyList <SkuRestriction> restrictions, string tier, string size, IReadOnlyList <SkuCapability> capabilities) { ResourceType = resourceType; SkuName = skuName; BillingPlans = billingPlans; Terms = terms; Locations = locations; SkuProperties = skuProperties; Msrp = msrp; Restrictions = restrictions; Tier = tier; Size = size; Capabilities = capabilities; }
internal static ReservationCatalog DeserializeReservationCatalog(JsonElement element) { Optional <string> resourceType = default; Optional <string> name = default; Optional <IReadOnlyDictionary <string, IList <ReservationBillingPlan> > > billingPlans = default; Optional <IReadOnlyList <ReservationTerm> > terms = default; Optional <IReadOnlyList <AzureLocation> > locations = default; Optional <IReadOnlyList <SkuProperty> > skuProperties = default; Optional <CatalogMsrp> msrp = default; Optional <IReadOnlyList <SkuRestriction> > restrictions = default; Optional <string> tier = default; Optional <string> size = default; Optional <IReadOnlyList <SkuCapability> > capabilities = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("resourceType")) { resourceType = property.Value.GetString(); continue; } if (property.NameEquals("name")) { name = property.Value.GetString(); continue; } if (property.NameEquals("billingPlans")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } Dictionary <string, IList <ReservationBillingPlan> > dictionary = new Dictionary <string, IList <ReservationBillingPlan> >(); foreach (var property0 in property.Value.EnumerateObject()) { List <ReservationBillingPlan> array = new List <ReservationBillingPlan>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(new ReservationBillingPlan(item.GetString())); } dictionary.Add(property0.Name, array); } billingPlans = dictionary; continue; } if (property.NameEquals("terms")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <ReservationTerm> array = new List <ReservationTerm>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(new ReservationTerm(item.GetString())); } terms = array; continue; } if (property.NameEquals("locations")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <AzureLocation> array = new List <AzureLocation>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(new AzureLocation(item.GetString())); } locations = array; continue; } if (property.NameEquals("skuProperties")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <SkuProperty> array = new List <SkuProperty>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(SkuProperty.DeserializeSkuProperty(item)); } skuProperties = array; continue; } if (property.NameEquals("msrp")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } msrp = CatalogMsrp.DeserializeCatalogMsrp(property.Value); continue; } if (property.NameEquals("restrictions")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <SkuRestriction> array = new List <SkuRestriction>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(SkuRestriction.DeserializeSkuRestriction(item)); } restrictions = array; continue; } if (property.NameEquals("tier")) { tier = property.Value.GetString(); continue; } if (property.NameEquals("size")) { size = property.Value.GetString(); continue; } if (property.NameEquals("capabilities")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <SkuCapability> array = new List <SkuCapability>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(SkuCapability.DeserializeSkuCapability(item)); } capabilities = array; continue; } } return(new ReservationCatalog(resourceType.Value, name.Value, Optional.ToDictionary(billingPlans), Optional.ToList(terms), Optional.ToList(locations), Optional.ToList(skuProperties), msrp.Value, Optional.ToList(restrictions), tier.Value, size.Value, Optional.ToList(capabilities))); }