internal static EditionCapability DeserializeEditionCapability(JsonElement element)
        {
            Optional <string> name = default;
            Optional <IReadOnlyList <ServiceObjectiveCapability> > supportedServiceLevelObjectives = default;
            Optional <bool> zoneRedundant            = default;
            Optional <ReadScaleCapability> readScale = default;
            Optional <IReadOnlyList <StorageCapability> > supportedStorageCapabilities = default;
            Optional <CapabilityStatus> status = default;
            Optional <string>           reason = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("name"))
                {
                    name = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("supportedServiceLevelObjectives"))
                {
                    List <ServiceObjectiveCapability> array = new List <ServiceObjectiveCapability>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(ServiceObjectiveCapability.DeserializeServiceObjectiveCapability(item));
                    }
                    supportedServiceLevelObjectives = array;
                    continue;
                }
                if (property.NameEquals("zoneRedundant"))
                {
                    zoneRedundant = property.Value.GetBoolean();
                    continue;
                }
                if (property.NameEquals("readScale"))
                {
                    readScale = ReadScaleCapability.DeserializeReadScaleCapability(property.Value);
                    continue;
                }
                if (property.NameEquals("supportedStorageCapabilities"))
                {
                    List <StorageCapability> array = new List <StorageCapability>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(StorageCapability.DeserializeStorageCapability(item));
                    }
                    supportedStorageCapabilities = array;
                    continue;
                }
                if (property.NameEquals("status"))
                {
                    status = property.Value.GetString().ToCapabilityStatus();
                    continue;
                }
                if (property.NameEquals("reason"))
                {
                    reason = property.Value.GetString();
                    continue;
                }
            }
            return(new EditionCapability(name.Value, Optional.ToList(supportedServiceLevelObjectives), Optional.ToNullable(zoneRedundant), readScale.Value, Optional.ToList(supportedStorageCapabilities), Optional.ToNullable(status), reason.Value));
        }
Beispiel #2
0
        internal static ManagedInstanceEditionCapability DeserializeManagedInstanceEditionCapability(JsonElement element)
        {
            Optional <string> name = default;
            Optional <IReadOnlyList <ManagedInstanceFamilyCapability> > supportedFamilies = default;
            Optional <IReadOnlyList <StorageCapability> > supportedStorageCapabilities    = default;
            Optional <bool>             zoneRedundant = default;
            Optional <CapabilityStatus> status        = default;
            Optional <string>           reason        = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("name"))
                {
                    name = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("supportedFamilies"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <ManagedInstanceFamilyCapability> array = new List <ManagedInstanceFamilyCapability>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(ManagedInstanceFamilyCapability.DeserializeManagedInstanceFamilyCapability(item));
                    }
                    supportedFamilies = array;
                    continue;
                }
                if (property.NameEquals("supportedStorageCapabilities"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <StorageCapability> array = new List <StorageCapability>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(StorageCapability.DeserializeStorageCapability(item));
                    }
                    supportedStorageCapabilities = array;
                    continue;
                }
                if (property.NameEquals("zoneRedundant"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    zoneRedundant = property.Value.GetBoolean();
                    continue;
                }
                if (property.NameEquals("status"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    status = property.Value.GetString().ToCapabilityStatus();
                    continue;
                }
                if (property.NameEquals("reason"))
                {
                    reason = property.Value.GetString();
                    continue;
                }
            }
            return(new ManagedInstanceEditionCapability(name.Value, Optional.ToList(supportedFamilies), Optional.ToList(supportedStorageCapabilities), Optional.ToNullable(zoneRedundant), Optional.ToNullable(status), reason.Value));
        }