// <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.Management.RecoveryServices.Models
{
    using Newtonsoft.Json;
    using System.Linq;

    /// <summary>
    /// Certificate details representing the Vault credentials.
    /// </summary>
    public partial class ResourceCertificateDetails
    {
        /// <summary>
        /// Initializes a new instance of the ResourceCertificateDetails class.
        /// </summary>
        public ResourceCertificateDetails()
        {
            CustomInit();
        }

        /// <summary>
        /// Initializes a new instance of the ResourceCertificateDetails class.
        /// </summary>
        /// <param name="certificate">The base64 encoded certificate raw data
        /// string.</param>
        /// <param name="friendlyName">Certificate friendly name.</param>
        /// <param name="issuer">Certificate issuer.</param>
        /// <param name="resourceId">Resource ID of the vault.</param>
        /// <param name="subject">Certificate Subject Name.</param>
        /// <param name="thumbprint">Certificate thumbprint.</param>
        /// <param name="validFrom">Certificate Validity start Date
        /// time.</param>
        /// <param name="validTo">Certificate Validity End Date time.</param>
        public ResourceCertificateDetails(byte[] certificate = default(byte[]), string friendlyName = default(string), string issuer = default(string), long? resourceId = default(long?), string subject = default(string), string thumbprint = default(string), System.DateTime? validFrom = default(System.DateTime?), System.DateTime? validTo = default(System.DateTime?))
        {
            Certificate = certificate;
            FriendlyName = friendlyName;
            Issuer = issuer;
            ResourceId = resourceId;
            Subject = subject;
            Thumbprint = thumbprint;
            ValidFrom = validFrom;
            ValidTo = validTo;
            CustomInit();
        }

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

        /// <summary>
        /// Gets or sets the base64 encoded certificate raw data string.
        /// </summary>
        [JsonProperty(PropertyName = "certificate")]
        public byte[] Certificate { get; set; }

        /// <summary>
        /// Gets or sets certificate friendly name.
        /// </summary>
        [JsonProperty(PropertyName = "friendlyName")]
        public string FriendlyName { get; set; }

        /// <summary>
        /// Gets or sets certificate issuer.
        /// </summary>
        [JsonProperty(PropertyName = "issuer")]
        public string Issuer { get; set; }

        /// <summary>
        /// Gets or sets resource ID of the vault.
        /// </summary>
        [JsonProperty(PropertyName = "resourceId")]
        public long? ResourceId { get; set; }

        /// <summary>
        /// Gets or sets certificate Subject Name.
        /// </summary>
        [JsonProperty(PropertyName = "subject")]
        public string Subject { get; set; }

        /// <summary>
        /// Gets or sets certificate thumbprint.
        /// </summary>
        [JsonProperty(PropertyName = "thumbprint")]
        public string Thumbprint { get; set; }

        /// <summary>
        /// Gets or sets certificate Validity start Date time.
        /// </summary>
        [JsonProperty(PropertyName = "validFrom")]
        public System.DateTime? ValidFrom { get; set; }

        /// <summary>
        /// Gets or sets certificate Validity End Date time.
        /// </summary>
        [JsonProperty(PropertyName = "validTo")]
        public System.DateTime? ValidTo { get; set; }

    }
}
