internal static ArtifactManifestReference DeserializeArtifactManifestReference(JsonElement element) { string digest = default; ArtifactArchitecture architecture = default; ArtifactOperatingSystem os = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("digest")) { digest = property.Value.GetString(); continue; } if (property.NameEquals("architecture")) { architecture = new ArtifactArchitecture(property.Value.GetString()); continue; } if (property.NameEquals("os")) { os = new ArtifactOperatingSystem(property.Value.GetString()); continue; } } return(new ArtifactManifestReference(digest, architecture, os)); }
internal ArtifactManifestReference(string digest, ArtifactArchitecture architecture, ArtifactOperatingSystem operatingSystem) { if (digest == null) { throw new ArgumentNullException(nameof(digest)); } Digest = digest; Architecture = architecture; OperatingSystem = operatingSystem; }
internal static ArtifactManifestPlatform DeserializeArtifactManifestPlatform(JsonElement element) { string digest = default; Optional <ArtifactArchitecture> architecture = default; Optional <ArtifactOperatingSystem> os = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("digest")) { digest = property.Value.GetString(); continue; } if (property.NameEquals("architecture")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } architecture = new ArtifactArchitecture(property.Value.GetString()); continue; } if (property.NameEquals("os")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } os = new ArtifactOperatingSystem(property.Value.GetString()); continue; } } return(new ArtifactManifestPlatform(digest, Optional.ToNullable(architecture), Optional.ToNullable(os))); }
internal static ArtifactManifestProperties DeserializeArtifactManifestProperties(JsonElement element) { Optional <string> registry = default; Optional <string> imageName = default; string digest = default; Optional <long> imageSize = default; DateTimeOffset createdTime = default; DateTimeOffset lastUpdateTime = default; Optional <ArtifactArchitecture?> architecture = default; Optional <ArtifactOperatingSystem?> os = default; Optional <IReadOnlyList <ArtifactManifestPlatform> > references = default; Optional <IReadOnlyList <string> > tags = default; Optional <bool> deleteEnabled = default; Optional <bool> writeEnabled = default; Optional <bool> listEnabled = default; Optional <bool> readEnabled = default; Optional <string> quarantineState = default; Optional <string> quarantineDetails = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("registry")) { registry = property.Value.GetString(); continue; } if (property.NameEquals("imageName")) { imageName = property.Value.GetString(); continue; } if (property.NameEquals("manifest")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } foreach (var property0 in property.Value.EnumerateObject()) { if (property0.NameEquals("digest")) { digest = property0.Value.GetString(); continue; } if (property0.NameEquals("imageSize")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } imageSize = property0.Value.GetInt64(); continue; } if (property0.NameEquals("createdTime")) { createdTime = property0.Value.GetDateTimeOffset("O"); continue; } if (property0.NameEquals("lastUpdateTime")) { lastUpdateTime = property0.Value.GetDateTimeOffset("O"); continue; } if (property0.NameEquals("architecture")) { if (property0.Value.ValueKind == JsonValueKind.Null) { architecture = null; continue; } architecture = new ArtifactArchitecture(property0.Value.GetString()); continue; } if (property0.NameEquals("os")) { if (property0.Value.ValueKind == JsonValueKind.Null) { os = null; continue; } os = new ArtifactOperatingSystem(property0.Value.GetString()); continue; } if (property0.NameEquals("references")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <ArtifactManifestPlatform> array = new List <ArtifactManifestPlatform>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(ArtifactManifestPlatform.DeserializeArtifactManifestPlatform(item)); } references = array; continue; } if (property0.NameEquals("tags")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <string> array = new List <string>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(item.GetString()); } tags = array; continue; } if (property0.NameEquals("changeableAttributes")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } foreach (var property1 in property0.Value.EnumerateObject()) { if (property1.NameEquals("deleteEnabled")) { if (property1.Value.ValueKind == JsonValueKind.Null) { property1.ThrowNonNullablePropertyIsNull(); continue; } deleteEnabled = property1.Value.GetBoolean(); continue; } if (property1.NameEquals("writeEnabled")) { if (property1.Value.ValueKind == JsonValueKind.Null) { property1.ThrowNonNullablePropertyIsNull(); continue; } writeEnabled = property1.Value.GetBoolean(); continue; } if (property1.NameEquals("listEnabled")) { if (property1.Value.ValueKind == JsonValueKind.Null) { property1.ThrowNonNullablePropertyIsNull(); continue; } listEnabled = property1.Value.GetBoolean(); continue; } if (property1.NameEquals("readEnabled")) { if (property1.Value.ValueKind == JsonValueKind.Null) { property1.ThrowNonNullablePropertyIsNull(); continue; } readEnabled = property1.Value.GetBoolean(); continue; } if (property1.NameEquals("quarantineState")) { quarantineState = property1.Value.GetString(); continue; } if (property1.NameEquals("quarantineDetails")) { quarantineDetails = property1.Value.GetString(); continue; } } continue; } } continue; } } return(new ArtifactManifestProperties(registry.Value, imageName.Value, digest, Optional.ToNullable(imageSize), createdTime, lastUpdateTime, Optional.ToNullable(architecture), Optional.ToNullable(os), Optional.ToList(references), Optional.ToList(tags), Optional.ToNullable(deleteEnabled), Optional.ToNullable(writeEnabled), Optional.ToNullable(listEnabled), Optional.ToNullable(readEnabled), quarantineState.Value, quarantineDetails.Value)); }
internal static ManifestAttributesBase DeserializeManifestAttributesBase(JsonElement element) { string digest = default; Optional <long> imageSize = default; Optional <DateTimeOffset> createdTime = default; Optional <DateTimeOffset> lastUpdateTime = default; Optional <ArtifactArchitecture?> architecture = default; Optional <ArtifactOperatingSystem?> os = default; Optional <IReadOnlyList <ArtifactManifestReference> > references = default; Optional <IReadOnlyList <string> > tags = default; Optional <ManifestWriteableProperties> changeableAttributes = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("digest")) { digest = property.Value.GetString(); continue; } if (property.NameEquals("imageSize")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } imageSize = property.Value.GetInt64(); continue; } if (property.NameEquals("createdTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } createdTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("lastUpdateTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } lastUpdateTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("architecture")) { if (property.Value.ValueKind == JsonValueKind.Null) { architecture = null; continue; } architecture = new ArtifactArchitecture(property.Value.GetString()); continue; } if (property.NameEquals("os")) { if (property.Value.ValueKind == JsonValueKind.Null) { os = null; continue; } os = new ArtifactOperatingSystem(property.Value.GetString()); continue; } if (property.NameEquals("references")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <ArtifactManifestReference> array = new List <ArtifactManifestReference>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(ArtifactManifestReference.DeserializeArtifactManifestReference(item)); } references = array; continue; } if (property.NameEquals("tags")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <string> array = new List <string>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(item.GetString()); } tags = array; continue; } if (property.NameEquals("changeableAttributes")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } changeableAttributes = ManifestWriteableProperties.DeserializeManifestWriteableProperties(property.Value); continue; } } return(new ManifestAttributesBase(digest, Optional.ToNullable(imageSize), Optional.ToNullable(createdTime), Optional.ToNullable(lastUpdateTime), Optional.ToNullable(architecture), Optional.ToNullable(os), Optional.ToList(references), Optional.ToList(tags), changeableAttributes.Value)); }
internal ArtifactManifestProperties(string digest, ArtifactArchitecture architecture, ArtifactOperatingSystem operatingSystem) { this.Digest = digest; this.Architecture = architecture; this.OperatingSystem = operatingSystem; }