in sdk/chaos/Azure.ResourceManager.Chaos/src/Customization/ChaosCapabilityTypeData.Serialization.cs [118:285]
internal static ChaosCapabilityTypeData DeserializeChaosCapabilityTypeData(JsonElement element, ModelReaderWriterOptions options = null)
{
options ??= ModelSerializationExtensions.WireOptions;
if (element.ValueKind == JsonValueKind.Null)
{
return null;
}
AzureLocation? location = default;
ResourceIdentifier id = default;
string name = default;
ResourceType type = default;
ResourceManager.Models.SystemData systemData = default;
string publisher = default;
string targetType = default;
string displayName = default;
string description = default;
string parametersSchema = default;
string urn = default;
string kind = default;
IList<string> azureRbacActions = default;
IList<string> azureRbacDataActions = default;
ChaosCapabilityTypeRuntimeProperties runtimeProperties = default;
IDictionary<string, BinaryData> serializedAdditionalRawData = default;
Dictionary<string, BinaryData> rawDataDictionary = new Dictionary<string, BinaryData>();
foreach (var property in element.EnumerateObject())
{
if (property.NameEquals("location"u8))
{
if (property.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
location = new AzureLocation(property.Value.GetString());
continue;
}
if (property.NameEquals("id"u8))
{
id = new ResourceIdentifier(property.Value.GetString());
continue;
}
if (property.NameEquals("name"u8))
{
name = property.Value.GetString();
continue;
}
if (property.NameEquals("type"u8))
{
type = new ResourceType(property.Value.GetString());
continue;
}
if (property.NameEquals("systemData"u8))
{
if (property.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
systemData = JsonSerializer.Deserialize<ResourceManager.Models.SystemData>(property.Value.GetRawText());
continue;
}
if (property.NameEquals("properties"u8))
{
if (property.Value.ValueKind == JsonValueKind.Null)
{
property.ThrowNonNullablePropertyIsNull();
continue;
}
foreach (var property0 in property.Value.EnumerateObject())
{
if (property0.NameEquals("publisher"u8))
{
publisher = property0.Value.GetString();
continue;
}
if (property0.NameEquals("targetType"u8))
{
targetType = property0.Value.GetString();
continue;
}
if (property0.NameEquals("displayName"u8))
{
displayName = property0.Value.GetString();
continue;
}
if (property0.NameEquals("description"u8))
{
description = property0.Value.GetString();
continue;
}
if (property0.NameEquals("parametersSchema"u8))
{
parametersSchema = property0.Value.GetString();
continue;
}
if (property0.NameEquals("urn"u8))
{
urn = property0.Value.GetString();
continue;
}
if (property0.NameEquals("kind"u8))
{
kind = property0.Value.GetString();
continue;
}
if (property0.NameEquals("azureRbacActions"u8))
{
if (property0.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
List<string> array = new List<string>();
foreach (var item in property0.Value.EnumerateArray())
{
array.Add(item.GetString());
}
azureRbacActions = array;
continue;
}
if (property0.NameEquals("azureRbacDataActions"u8))
{
if (property0.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
List<string> array = new List<string>();
foreach (var item in property0.Value.EnumerateArray())
{
array.Add(item.GetString());
}
azureRbacDataActions = array;
continue;
}
if (property0.NameEquals("runtimeProperties"u8))
{
if (property0.Value.ValueKind == JsonValueKind.Null)
{
continue;
}
runtimeProperties = ChaosCapabilityTypeRuntimeProperties.DeserializeChaosCapabilityTypeRuntimeProperties(property0.Value, options);
continue;
}
}
continue;
}
if (options.Format != "W")
{
rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText()));
}
}
serializedAdditionalRawData = rawDataDictionary;
return new ChaosCapabilityTypeData(
id,
name,
type,
systemData,
location,
publisher,
targetType,
displayName,
description,
parametersSchema,
urn,
kind,
azureRbacActions ?? new ChangeTrackingList<string>(),
azureRbacDataActions ?? new ChangeTrackingList<string>(),
runtimeProperties,
serializedAdditionalRawData);
}