// <auto-generated>
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for
// license information.
//
// Code generated by Microsoft (R) AutoRest Code Generator.
// Changes may cause incorrect behavior and will be lost if the code is
// regenerated.
// </auto-generated>

namespace Microsoft.Azure.ContainerRegistry.Models
{
    using Newtonsoft.Json;
    using System.Linq;

    public partial class ManifestListAttributes
    {
        /// <summary>
        /// Initializes a new instance of the ManifestListAttributes class.
        /// </summary>
        public ManifestListAttributes()
        {
            CustomInit();
        }

        /// <summary>
        /// Initializes a new instance of the ManifestListAttributes class.
        /// </summary>
        /// <param name="mediaType">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</param>
        /// <param name="size">The size in bytes of the object</param>
        /// <param name="digest">The digest of the content, as defined by the
        /// Registry V2 HTTP API Specification</param>
        public ManifestListAttributes(string mediaType = default(string), long? size = default(long?), string digest = default(string), Platform platform = default(Platform))
        {
            MediaType = mediaType;
            Size = size;
            Digest = digest;
            Platform = platform;
            CustomInit();
        }

        /// <summary>
        /// An initialization method that performs custom operations like setting defaults
        /// </summary>
        partial void CustomInit();

        /// <summary>
        /// Gets or sets 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
        /// </summary>
        [JsonProperty(PropertyName = "mediaType")]
        public string MediaType { get; set; }

        /// <summary>
        /// Gets or sets the size in bytes of the object
        /// </summary>
        [JsonProperty(PropertyName = "size")]
        public long? Size { get; set; }

        /// <summary>
        /// Gets or sets the digest of the content, as defined by the Registry
        /// V2 HTTP API Specification
        /// </summary>
        [JsonProperty(PropertyName = "digest")]
        public string Digest { get; set; }

        /// <summary>
        /// </summary>
        [JsonProperty(PropertyName = "platform")]
        public Platform Platform { get; set; }

    }
}
