private static GenericResourceData GetGenericResource( Dictionary <string, string> tags, ResourcesSku sku, ArmPlan plan, string kind, string managedBy, string location) { ResourceIdentifier id = new ResourceIdentifier($"/subscriptions/{Guid.NewGuid()}/resourceGroups/myResourceGroup/providers/Microsoft.Widgets/widgets/myWidget"); return(new GenericResourceData(id, id.Name, id.ResourceType, null, tags, location, null, plan, null, kind, managedBy, sku, null, null, null, null)); }
public void SerializationTestType1() { string expected = File.ReadAllText(Path.Combine(TestContext.CurrentContext.TestDirectory, "Unit", "TestAssets", "GenericResourceData", "SerializationTestType1.json")); ResourceIdentifier id = new ResourceIdentifier(Id); ArmPlan plan = new ArmPlan("NameForPlan", "PublisherForPlan", "ProductForPlan", "PromotionCodeForPlan", "VersionForPlan"); ResourcesSku sku = new ResourcesSku("NameForSku", ArmSkuTier.Basic.ToString(), "SizeForSku", "FamilyForSku", "ModelForSku", 15464547); GenericResourceData data = new GenericResourceData(id, id.Name, id.ResourceType, null, new Dictionary <string, string>(), AzureLocation.EastUS, null, plan, null, "KindForResource", "ManagedByForResource", sku, null, null, null, null); var json = JsonHelper.SerializePropertiesToString(data, indented: true) + Environment.NewLine; Assert.AreEqual(expected, json); }
internal GenericResourceData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, IDictionary <string, string> tags, AzureLocation location, ExtendedLocation extendedLocation, ArmPlan plan, BinaryData properties, string kind, string managedBy, ResourcesSku sku, ManagedServiceIdentity identity, DateTimeOffset?createdOn, DateTimeOffset?changedOn, string provisioningState) : base(id, name, resourceType, systemData, tags, location, extendedLocation) { Plan = plan; Properties = properties; Kind = kind; ManagedBy = managedBy; Sku = sku; Identity = identity; CreatedOn = createdOn; ChangedOn = changedOn; ProvisioningState = provisioningState; }
internal static GenericResourceData DeserializeGenericResourceData(JsonElement element) { Optional <ArmPlan> plan = default; Optional <object> properties = default; Optional <string> kind = default; Optional <string> managedBy = default; Optional <ResourcesSku> sku = default; Optional <ManagedServiceIdentity> identity = default; Optional <DateTimeOffset> createdTime = default; Optional <DateTimeOffset> changedTime = default; Optional <string> provisioningState = default; Optional <ExtendedLocation> extendedLocation = default; IDictionary <string, string> tags = default; AzureLocation location = default; ResourceIdentifier id = default; string name = default; ResourceType type = default; SystemData systemData = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("plan")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } plan = JsonSerializer.Deserialize <ArmPlan>(property.Value.ToString()); continue; } if (property.NameEquals("properties")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } properties = property.Value.GetObject(); continue; } if (property.NameEquals("kind")) { kind = property.Value.GetString(); continue; } if (property.NameEquals("managedBy")) { managedBy = property.Value.GetString(); continue; } if (property.NameEquals("sku")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } sku = ResourcesSku.DeserializeResourcesSku(property.Value); continue; } if (property.NameEquals("identity")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } identity = JsonSerializer.Deserialize <ManagedServiceIdentity>(property.Value.ToString()); continue; } if (property.NameEquals("createdTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } createdTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("changedTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } changedTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("provisioningState")) { provisioningState = property.Value.GetString(); continue; } if (property.NameEquals("extendedLocation")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } extendedLocation = ExtendedLocation.DeserializeExtendedLocation(property.Value); continue; } if (property.NameEquals("tags")) { 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("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 = property.Value.GetString(); continue; } if (property.NameEquals("systemData")) { systemData = JsonSerializer.Deserialize <SystemData>(property.Value.ToString()); continue; } } return(new GenericResourceData(id, name, type, systemData, tags, location, extendedLocation.Value, plan, properties.Value, kind.Value, managedBy.Value, sku.Value, identity, Optional.ToNullable(createdTime), Optional.ToNullable(changedTime), provisioningState.Value)); }