// <auto-generated>
// 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 k8s.Models
{
    using Newtonsoft.Json;
    using System.Linq;

    /// <summary>
    /// WindowsSecurityContextOptions contain Windows-specific options and
    /// credentials.
    /// </summary>
    public partial class V1WindowsSecurityContextOptions
    {
        /// <summary>
        /// Initializes a new instance of the V1WindowsSecurityContextOptions
        /// class.
        /// </summary>
        public V1WindowsSecurityContextOptions()
        {
            CustomInit();
        }

        /// <summary>
        /// Initializes a new instance of the V1WindowsSecurityContextOptions
        /// class.
        /// </summary>
        /// <param name="gmsaCredentialSpec">GMSACredentialSpec is where the
        /// GMSA admission webhook
        /// (https://github.com/kubernetes-sigs/windows-gmsa) inlines the
        /// contents of the GMSA credential spec named by the
        /// GMSACredentialSpecName field.</param>
        /// <param name="gmsaCredentialSpecName">GMSACredentialSpecName is the
        /// name of the GMSA credential spec to use.</param>
        /// <param name="runAsUserName">The UserName in Windows to run the
        /// entrypoint of the container process. Defaults to the user specified
        /// in image metadata if unspecified. May also be set in
        /// PodSecurityContext. If set in both SecurityContext and
        /// PodSecurityContext, the value specified in SecurityContext takes
        /// precedence.</param>
        public V1WindowsSecurityContextOptions(string gmsaCredentialSpec = default(string), string gmsaCredentialSpecName = default(string), string runAsUserName = default(string))
        {
            GmsaCredentialSpec = gmsaCredentialSpec;
            GmsaCredentialSpecName = gmsaCredentialSpecName;
            RunAsUserName = runAsUserName;
            CustomInit();
        }

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

        /// <summary>
        /// Gets or sets gMSACredentialSpec is where the GMSA admission webhook
        /// (https://github.com/kubernetes-sigs/windows-gmsa) inlines the
        /// contents of the GMSA credential spec named by the
        /// GMSACredentialSpecName field.
        /// </summary>
        [JsonProperty(PropertyName = "gmsaCredentialSpec")]
        public string GmsaCredentialSpec { get; set; }

        /// <summary>
        /// Gets or sets gMSACredentialSpecName is the name of the GMSA
        /// credential spec to use.
        /// </summary>
        [JsonProperty(PropertyName = "gmsaCredentialSpecName")]
        public string GmsaCredentialSpecName { get; set; }

        /// <summary>
        /// Gets or sets the UserName in Windows to run the entrypoint of the
        /// container process. Defaults to the user specified in image metadata
        /// if unspecified. May also be set in PodSecurityContext. If set in
        /// both SecurityContext and PodSecurityContext, the value specified in
        /// SecurityContext takes precedence.
        /// </summary>
        [JsonProperty(PropertyName = "runAsUserName")]
        public string RunAsUserName { get; set; }

    }
}
