#![allow(non_camel_case_types)]
#![allow(unused_imports)]
use serde::de::{value, Deserializer, IntoDeserializer};
use serde::{Deserialize, Serialize, Serializer};
use std::str::FromStr;
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct AccessToken {
#[doc = "The access token for performing authenticated requests"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub access_token: Option<String>,
}
impl AccessToken {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Error information"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct AcrErrorInfo {
#[doc = "Error code"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub code: Option<String>,
#[doc = "Error message"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[doc = "Error details"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub detail: Option<serde_json::Value>,
}
impl AcrErrorInfo {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Acr error response describing why the operation failed"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct AcrErrors {
#[doc = "Array of detailed error"]
#[serde(
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub errors: Vec<AcrErrorInfo>,
}
impl AcrErrors {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Manifest attributes"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct AcrManifests {
#[doc = "Registry name"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub registry: Option<String>,
#[doc = "Image name"]
#[serde(rename = "imageName", default, skip_serializing_if = "Option::is_none")]
pub image_name: Option<String>,
#[doc = "List of manifests"]
#[serde(
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub manifests: Vec<ManifestAttributesBase>,
}
impl AcrManifests {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Additional information provided through arbitrary metadata."]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct Annotations {
#[doc = "Date and time on which the image was built (string, date-time as defined by https://tools.ietf.org/html/rfc3339#section-5.6)"]
#[serde(rename = "org.opencontainers.image.created", default, with = "azure_core::date::rfc3339::option")]
pub org_opencontainers_image_created: Option<time::OffsetDateTime>,
#[doc = "Contact details of the people or organization responsible for the image."]
#[serde(rename = "org.opencontainers.image.authors", default, skip_serializing_if = "Option::is_none")]
pub org_opencontainers_image_authors: Option<String>,
#[doc = "URL to find more information on the image."]
#[serde(rename = "org.opencontainers.image.url", default, skip_serializing_if = "Option::is_none")]
pub org_opencontainers_image_url: Option<String>,
#[doc = "URL to get documentation on the image."]
#[serde(
rename = "org.opencontainers.image.documentation",
default,
skip_serializing_if = "Option::is_none"
)]
pub org_opencontainers_image_documentation: Option<String>,
#[doc = "URL to get source code for building the image."]
#[serde(rename = "org.opencontainers.image.source", default, skip_serializing_if = "Option::is_none")]
pub org_opencontainers_image_source: Option<String>,
#[doc = "Version of the packaged software. The version MAY match a label or tag in the source code repository, may also be Semantic versioning-compatible"]
#[serde(rename = "org.opencontainers.image.version", default, skip_serializing_if = "Option::is_none")]
pub org_opencontainers_image_version: Option<String>,
#[doc = "Source control revision identifier for the packaged software."]
#[serde(rename = "org.opencontainers.image.revision", default, skip_serializing_if = "Option::is_none")]
pub org_opencontainers_image_revision: Option<String>,
#[doc = "Name of the distributing entity, organization or individual."]
#[serde(rename = "org.opencontainers.image.vendor", default, skip_serializing_if = "Option::is_none")]
pub org_opencontainers_image_vendor: Option<String>,
#[doc = "License(s) under which contained software is distributed as an SPDX License Expression."]
#[serde(rename = "org.opencontainers.image.licenses", default, skip_serializing_if = "Option::is_none")]
pub org_opencontainers_image_licenses: Option<String>,
#[doc = "Name of the reference for a target."]
#[serde(rename = "org.opencontainers.image.ref.name", default, skip_serializing_if = "Option::is_none")]
pub org_opencontainers_image_ref_name: Option<String>,
#[doc = "Human-readable title of the image"]
#[serde(rename = "org.opencontainers.image.title", default, skip_serializing_if = "Option::is_none")]
pub org_opencontainers_image_title: Option<String>,
#[doc = "Human-readable description of the software packaged in the image"]
#[serde(rename = "org.opencontainers.image.description", default, skip_serializing_if = "Option::is_none")]
pub org_opencontainers_image_description: Option<String>,
}
impl Annotations {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Deleted repository"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct DeletedRepository {
#[doc = "SHA of the deleted image"]
#[serde(
rename = "manifestsDeleted",
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub manifests_deleted: Vec<String>,
#[doc = "Tag of the deleted image"]
#[serde(
rename = "tagsDeleted",
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub tags_deleted: Vec<String>,
}
impl DeletedRepository {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Docker V2 image layer descriptor including config and layers"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct Descriptor {
#[doc = "Layer media type"]
#[serde(rename = "mediaType", default, skip_serializing_if = "Option::is_none")]
pub media_type: Option<String>,
#[doc = "Layer size"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<i64>,
#[doc = "Layer digest"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub digest: Option<String>,
#[doc = "Specifies a list of URIs from which this object may be downloaded."]
#[serde(
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub urls: Vec<String>,
#[doc = "Additional information provided through arbitrary metadata."]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<Annotations>,
}
impl Descriptor {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Image layer information"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct FsLayer {
#[doc = "SHA of an image layer"]
#[serde(rename = "blobSum", default, skip_serializing_if = "Option::is_none")]
pub blob_sum: Option<String>,
}
impl FsLayer {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "A list of unstructured historical data for v1 compatibility"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct History {
#[doc = "The raw v1 compatibility information"]
#[serde(rename = "v1Compatibility", default, skip_serializing_if = "Option::is_none")]
pub v1_compatibility: Option<String>,
}
impl History {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Signature of a signed manifest"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct ImageSignature {
#[doc = "A JSON web signature"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub header: Option<Jwk>,
#[doc = "A signature for the image manifest, signed by a libtrust private key"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub signature: Option<String>,
#[doc = "The signed protected header"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub protected: Option<String>,
}
impl ImageSignature {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "A JSON web signature"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct Jwk {
#[doc = "JSON web key parameter"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub jwk: Option<JwkHeader>,
#[doc = "The algorithm used to sign or encrypt the JWT"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub alg: Option<String>,
}
impl Jwk {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "JSON web key parameter"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct JwkHeader {
#[doc = "crv value"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub crv: Option<String>,
#[doc = "kid value"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kid: Option<String>,
#[doc = "kty value"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kty: Option<String>,
#[doc = "x value"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub x: Option<String>,
#[doc = "y value"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub y: Option<String>,
}
impl JwkHeader {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Returns the requested manifest file"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct Manifest {
#[doc = "Schema version"]
#[serde(rename = "schemaVersion", default, skip_serializing_if = "Option::is_none")]
pub schema_version: Option<i64>,
}
impl Manifest {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Manifest attributes details"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct ManifestAttributes {
#[doc = "Registry name"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub registry: Option<String>,
#[doc = "Image name"]
#[serde(rename = "imageName", default, skip_serializing_if = "Option::is_none")]
pub image_name: Option<String>,
#[doc = "Manifest details"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub manifest: Option<ManifestAttributesBase>,
}
impl ManifestAttributes {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Manifest details"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct ManifestAttributesBase {
#[doc = "Manifest"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub digest: Option<String>,
#[doc = "Image size"]
#[serde(rename = "imageSize", default, skip_serializing_if = "Option::is_none")]
pub image_size: Option<i64>,
#[doc = "Created time"]
#[serde(rename = "createdTime", default, skip_serializing_if = "Option::is_none")]
pub created_time: Option<String>,
#[doc = "Last update time"]
#[serde(rename = "lastUpdateTime", default, skip_serializing_if = "Option::is_none")]
pub last_update_time: Option<String>,
#[doc = "CPU architecture"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub architecture: Option<String>,
#[doc = "Operating system"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub os: Option<String>,
#[doc = "Media type"]
#[serde(rename = "mediaType", default, skip_serializing_if = "Option::is_none")]
pub media_type: Option<String>,
#[doc = "Config blob media type"]
#[serde(rename = "configMediaType", default, skip_serializing_if = "Option::is_none")]
pub config_media_type: Option<String>,
#[doc = "List of tags"]
#[serde(
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub tags: Vec<String>,
#[doc = "Changeable attributes"]
#[serde(rename = "changeableAttributes", default, skip_serializing_if = "Option::is_none")]
pub changeable_attributes: Option<ManifestChangeableAttributes>,
}
impl ManifestAttributesBase {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "List of manifest attributes"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct ManifestAttributesManifest {
#[doc = "List of manifest attributes details"]
#[serde(
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub references: Vec<ManifestAttributesManifestReferences>,
#[doc = "Quarantine tag name"]
#[serde(rename = "quarantineTag", default, skip_serializing_if = "Option::is_none")]
pub quarantine_tag: Option<String>,
}
impl ManifestAttributesManifest {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Manifest attributes details"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct ManifestAttributesManifestReferences {
#[doc = "Manifest digest"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub digest: Option<String>,
#[doc = "CPU architecture"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub architecture: Option<String>,
#[doc = "Operating system"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub os: Option<String>,
}
impl ManifestAttributesManifestReferences {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Changeable attributes"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct ManifestChangeableAttributes {
#[doc = "Delete enabled"]
#[serde(rename = "deleteEnabled", default, skip_serializing_if = "Option::is_none")]
pub delete_enabled: Option<bool>,
#[doc = "Write enabled"]
#[serde(rename = "writeEnabled", default, skip_serializing_if = "Option::is_none")]
pub write_enabled: Option<bool>,
#[doc = "List enabled"]
#[serde(rename = "listEnabled", default, skip_serializing_if = "Option::is_none")]
pub list_enabled: Option<bool>,
#[doc = "Read enabled"]
#[serde(rename = "readEnabled", default, skip_serializing_if = "Option::is_none")]
pub read_enabled: Option<bool>,
#[doc = "Quarantine state"]
#[serde(rename = "quarantineState", default, skip_serializing_if = "Option::is_none")]
pub quarantine_state: Option<String>,
#[doc = "Quarantine details"]
#[serde(rename = "quarantineDetails", default, skip_serializing_if = "Option::is_none")]
pub quarantine_details: Option<String>,
}
impl ManifestChangeableAttributes {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Returns the requested Docker multi-arch-manifest file"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct ManifestList {
#[serde(flatten)]
pub manifest: Manifest,
#[doc = "Media type for this Manifest"]
#[serde(rename = "mediaType", default, skip_serializing_if = "Option::is_none")]
pub media_type: Option<String>,
#[doc = "List of V2 image layer information"]
#[serde(
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub manifests: Vec<ManifestListAttributes>,
}
impl ManifestList {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct ManifestListAttributes {
#[doc = "The MIME type of the referenced object. This will generally be application/vnd.docker.image.manifest.v2+json, but it could also be application/vnd.docker.image.manifest.v1+json"]
#[serde(rename = "mediaType", default, skip_serializing_if = "Option::is_none")]
pub media_type: Option<String>,
#[doc = "The size in bytes of the object"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<i64>,
#[doc = "The digest of the content, as defined by the Registry V2 HTTP API Specification"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub digest: Option<String>,
#[doc = "The platform object describes the platform which the image in the manifest runs on. A full list of valid operating system and architecture values are listed in the Go language documentation for $GOOS and $GOARCH"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub platform: Option<Platform>,
}
impl ManifestListAttributes {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Returns the requested manifest file"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct ManifestWrapper {
#[serde(flatten)]
pub manifest: Manifest,
#[doc = "Media type for this Manifest"]
#[serde(rename = "mediaType", default, skip_serializing_if = "Option::is_none")]
pub media_type: Option<String>,
#[doc = "(ManifestList, OCIIndex) List of V2 image layer information"]
#[serde(
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub manifests: Vec<ManifestListAttributes>,
#[doc = "Docker V2 image layer descriptor including config and layers"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub config: Option<Descriptor>,
#[doc = "(V2, OCI) List of V2 image layer information"]
#[serde(
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub layers: Vec<Descriptor>,
#[doc = "Additional information provided through arbitrary metadata."]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<Annotations>,
#[doc = "(V1) CPU architecture"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub architecture: Option<String>,
#[doc = "(V1) Image name"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[doc = "(V1) Image tag"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
#[doc = "(V1) List of layer information"]
#[serde(
rename = "fsLayers",
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub fs_layers: Vec<FsLayer>,
#[doc = "(V1) Image history"]
#[serde(
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub history: Vec<History>,
#[doc = "(V1) Image signature"]
#[serde(
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub signatures: Vec<ImageSignature>,
}
impl ManifestWrapper {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Returns the requested OCI index file"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct OciIndex {
#[serde(flatten)]
pub manifest: Manifest,
#[doc = "List of OCI image layer information"]
#[serde(
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub manifests: Vec<ManifestListAttributes>,
#[doc = "Additional information provided through arbitrary metadata."]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<Annotations>,
}
impl OciIndex {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Returns the requested OCI Manifest file"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct OciManifest {
#[serde(flatten)]
pub manifest: Manifest,
#[doc = "Docker V2 image layer descriptor including config and layers"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub config: Option<Descriptor>,
#[doc = "List of V2 image layer information"]
#[serde(
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub layers: Vec<Descriptor>,
#[doc = "Additional information provided through arbitrary metadata."]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<Annotations>,
}
impl OciManifest {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "The platform object describes the platform which the image in the manifest runs on. A full list of valid operating system and architecture values are listed in the Go language documentation for $GOOS and $GOARCH"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct Platform {
#[doc = "Specifies the CPU architecture, for example amd64 or ppc64le."]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub architecture: Option<String>,
#[doc = "The os field specifies the operating system, for example linux or windows."]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub os: Option<String>,
#[doc = "The optional os.version field specifies the operating system version, for example 10.0.10586."]
#[serde(rename = "os.version", default, skip_serializing_if = "Option::is_none")]
pub os_version: Option<String>,
#[doc = "The optional os.features field specifies an array of strings, each listing a required OS feature (for example on Windows win32k"]
#[serde(
rename = "os.features",
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub os_features: Vec<String>,
#[doc = "The optional variant field specifies a variant of the CPU, for example armv6l to specify a particular CPU variant of the ARM CPU."]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub variant: Option<String>,
#[doc = "The optional features field specifies an array of strings, each listing a required CPU feature (for example sse4 or aes"]
#[serde(
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub features: Vec<String>,
}
impl Platform {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct RefreshToken {
#[doc = "The refresh token to be used for generating access tokens"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub refresh_token: Option<String>,
}
impl RefreshToken {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "List of repositories"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct Repositories {
#[doc = "Repository names"]
#[serde(
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub repositories: Vec<String>,
}
impl Repositories {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Repository attributes"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct RepositoryAttributes {
#[doc = "Registry name"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub registry: Option<String>,
#[doc = "Image name"]
#[serde(rename = "imageName", default, skip_serializing_if = "Option::is_none")]
pub image_name: Option<String>,
#[doc = "Image created time"]
#[serde(rename = "createdTime", default, skip_serializing_if = "Option::is_none")]
pub created_time: Option<String>,
#[doc = "Image last update time"]
#[serde(rename = "lastUpdateTime", default, skip_serializing_if = "Option::is_none")]
pub last_update_time: Option<String>,
#[doc = "Number of the manifests"]
#[serde(rename = "manifestCount", default, skip_serializing_if = "Option::is_none")]
pub manifest_count: Option<i64>,
#[doc = "Number of the tags"]
#[serde(rename = "tagCount", default, skip_serializing_if = "Option::is_none")]
pub tag_count: Option<i64>,
#[doc = "Changeable attributes for Repository"]
#[serde(rename = "changeableAttributes", default, skip_serializing_if = "Option::is_none")]
pub changeable_attributes: Option<RepositoryChangeableAttributes>,
}
impl RepositoryAttributes {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Changeable attributes for Repository"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct RepositoryChangeableAttributes {
#[doc = "Delete enabled"]
#[serde(rename = "deleteEnabled", default, skip_serializing_if = "Option::is_none")]
pub delete_enabled: Option<bool>,
#[doc = "Write enabled"]
#[serde(rename = "writeEnabled", default, skip_serializing_if = "Option::is_none")]
pub write_enabled: Option<bool>,
#[doc = "List enabled"]
#[serde(rename = "listEnabled", default, skip_serializing_if = "Option::is_none")]
pub list_enabled: Option<bool>,
#[doc = "Read enabled"]
#[serde(rename = "readEnabled", default, skip_serializing_if = "Option::is_none")]
pub read_enabled: Option<bool>,
#[doc = "Enables Teleport functionality on new images in the repository improving Container startup performance"]
#[serde(rename = "teleportEnabled", default, skip_serializing_if = "Option::is_none")]
pub teleport_enabled: Option<bool>,
}
impl RepositoryChangeableAttributes {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Result of the request to list tags of the image"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct RepositoryTags {
#[doc = "Name of the image"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[doc = "List of tags"]
#[serde(
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub tags: Vec<String>,
}
impl RepositoryTags {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Tag attributes"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct TagAttributes {
#[doc = "Registry name"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub registry: Option<String>,
#[doc = "Image name"]
#[serde(rename = "imageName", default, skip_serializing_if = "Option::is_none")]
pub image_name: Option<String>,
#[doc = "Tag attribute details"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tag: Option<TagAttributesBase>,
}
impl TagAttributes {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Tag attribute details"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct TagAttributesBase {
#[doc = "Tag name"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[doc = "Tag digest"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub digest: Option<String>,
#[doc = "Tag created time"]
#[serde(rename = "createdTime", default, skip_serializing_if = "Option::is_none")]
pub created_time: Option<String>,
#[doc = "Tag last update time"]
#[serde(rename = "lastUpdateTime", default, skip_serializing_if = "Option::is_none")]
pub last_update_time: Option<String>,
#[doc = "Is signed"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub signed: Option<bool>,
#[serde(rename = "changeableAttributes", default, skip_serializing_if = "Option::is_none")]
pub changeable_attributes: Option<TagChangeableAttributes>,
}
impl TagAttributesBase {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Tag"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct TagAttributesTag {
#[doc = "SignatureRecord value"]
#[serde(rename = "signatureRecord", default, skip_serializing_if = "Option::is_none")]
pub signature_record: Option<String>,
}
impl TagAttributesTag {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct TagChangeableAttributes {
#[doc = "Delete enabled"]
#[serde(rename = "deleteEnabled", default, skip_serializing_if = "Option::is_none")]
pub delete_enabled: Option<bool>,
#[doc = "Write enabled"]
#[serde(rename = "writeEnabled", default, skip_serializing_if = "Option::is_none")]
pub write_enabled: Option<bool>,
#[doc = "List enabled"]
#[serde(rename = "listEnabled", default, skip_serializing_if = "Option::is_none")]
pub list_enabled: Option<bool>,
#[doc = "Read enabled"]
#[serde(rename = "readEnabled", default, skip_serializing_if = "Option::is_none")]
pub read_enabled: Option<bool>,
}
impl TagChangeableAttributes {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "List of tag details"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct TagList {
#[doc = "Registry name"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub registry: Option<String>,
#[doc = "Image name"]
#[serde(rename = "imageName", default, skip_serializing_if = "Option::is_none")]
pub image_name: Option<String>,
#[doc = "List of tag attribute details"]
#[serde(
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub tags: Vec<TagAttributesBase>,
}
impl TagList {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Returns the requested V1 manifest file"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct V1Manifest {
#[serde(flatten)]
pub manifest: Manifest,
#[doc = "CPU architecture"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub architecture: Option<String>,
#[doc = "Image name"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[doc = "Image tag"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
#[doc = "List of layer information"]
#[serde(
rename = "fsLayers",
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub fs_layers: Vec<FsLayer>,
#[doc = "Image history"]
#[serde(
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub history: Vec<History>,
#[doc = "Image signature"]
#[serde(
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub signatures: Vec<ImageSignature>,
}
impl V1Manifest {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Returns the requested Docker V2 Manifest file"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct V2Manifest {
#[serde(flatten)]
pub manifest: Manifest,
#[doc = "Media type for this Manifest"]
#[serde(rename = "mediaType", default, skip_serializing_if = "Option::is_none")]
pub media_type: Option<String>,
#[doc = "Docker V2 image layer descriptor including config and layers"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub config: Option<Descriptor>,
#[doc = "List of V2 image layer information"]
#[serde(
default,
deserialize_with = "azure_core::util::deserialize_null_as_default",
skip_serializing_if = "Vec::is_empty"
)]
pub layers: Vec<Descriptor>,
}
impl V2Manifest {
pub fn new() -> Self {
Self::default()
}
}