internal static GalleryImage DeserializeGalleryImage(JsonElement element) { Optional <string> id = default; Optional <string> name = default; Optional <string> type = default; string location = default; Optional <IDictionary <string, string> > tags = default; Optional <string> description = default; Optional <string> eula = default; Optional <string> privacyStatementUri = default; Optional <string> releaseNoteUri = default; Optional <OperatingSystemTypes> osType = default; Optional <OperatingSystemStateTypes> osState = default; Optional <HyperVGeneration> hyperVGeneration = default; Optional <DateTimeOffset> endOfLifeDate = default; Optional <GalleryImageIdentifier> identifier = default; Optional <RecommendedMachineConfiguration> recommended = default; Optional <Disallowed> disallowed = default; Optional <ImagePurchasePlan> purchasePlan = default; Optional <GalleryImagePropertiesProvisioningState> provisioningState = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("id")) { id = property.Value.GetString(); continue; } if (property.NameEquals("name")) { name = property.Value.GetString(); continue; } if (property.NameEquals("type")) { type = property.Value.GetString(); continue; } if (property.NameEquals("location")) { location = property.Value.GetString(); continue; } if (property.NameEquals("tags")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } Dictionary <string, string> dictionary = new Dictionary <string, string>(); foreach (var property0 in property.Value.EnumerateObject()) { dictionary.Add(property0.Name, property0.Value.GetString()); } tags = dictionary; continue; } if (property.NameEquals("properties")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } foreach (var property0 in property.Value.EnumerateObject()) { if (property0.NameEquals("description")) { description = property0.Value.GetString(); continue; } if (property0.NameEquals("eula")) { eula = property0.Value.GetString(); continue; } if (property0.NameEquals("privacyStatementUri")) { privacyStatementUri = property0.Value.GetString(); continue; } if (property0.NameEquals("releaseNoteUri")) { releaseNoteUri = property0.Value.GetString(); continue; } if (property0.NameEquals("osType")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } osType = property0.Value.GetString().ToOperatingSystemTypes(); continue; } if (property0.NameEquals("osState")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } osState = property0.Value.GetString().ToOperatingSystemStateTypes(); continue; } if (property0.NameEquals("hyperVGeneration")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } hyperVGeneration = new HyperVGeneration(property0.Value.GetString()); continue; } if (property0.NameEquals("endOfLifeDate")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } endOfLifeDate = property0.Value.GetDateTimeOffset("O"); continue; } if (property0.NameEquals("identifier")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } identifier = GalleryImageIdentifier.DeserializeGalleryImageIdentifier(property0.Value); continue; } if (property0.NameEquals("recommended")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } recommended = RecommendedMachineConfiguration.DeserializeRecommendedMachineConfiguration(property0.Value); continue; } if (property0.NameEquals("disallowed")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } disallowed = Disallowed.DeserializeDisallowed(property0.Value); continue; } if (property0.NameEquals("purchasePlan")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } purchasePlan = ImagePurchasePlan.DeserializeImagePurchasePlan(property0.Value); continue; } if (property0.NameEquals("provisioningState")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } provisioningState = new GalleryImagePropertiesProvisioningState(property0.Value.GetString()); continue; } } continue; } } return(new GalleryImage(id.Value, name.Value, type.Value, location, Optional.ToDictionary(tags), description.Value, eula.Value, privacyStatementUri.Value, releaseNoteUri.Value, Optional.ToNullable(osType), Optional.ToNullable(osState), Optional.ToNullable(hyperVGeneration), Optional.ToNullable(endOfLifeDate), identifier.Value, recommended.Value, disallowed.Value, purchasePlan.Value, Optional.ToNullable(provisioningState))); }