// <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.Collections;
    using System.Collections.Generic;
    using System.Linq;

    /// <summary>
    /// TokenReviewSpec is a description of the token authentication request.
    /// </summary>
    public partial class V1beta1TokenReviewSpec
    {
        /// <summary>
        /// Initializes a new instance of the V1beta1TokenReviewSpec class.
        /// </summary>
        public V1beta1TokenReviewSpec()
        {
            CustomInit();
        }

        /// <summary>
        /// Initializes a new instance of the V1beta1TokenReviewSpec class.
        /// </summary>
        /// <param name="audiences">Audiences is a list of the identifiers that
        /// the resource server presented with the token identifies as.
        /// Audience-aware token authenticators will verify that the token was
        /// intended for at least one of the audiences in this list. If no
        /// audiences are provided, the audience will default to the audience
        /// of the Kubernetes apiserver.</param>
        /// <param name="token">Token is the opaque bearer token.</param>
        public V1beta1TokenReviewSpec(IList<string> audiences = default(IList<string>), string token = default(string))
        {
            Audiences = audiences;
            Token = token;
            CustomInit();
        }

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

        /// <summary>
        /// Gets or sets audiences is a list of the identifiers that the
        /// resource server presented with the token identifies as.
        /// Audience-aware token authenticators will verify that the token was
        /// intended for at least one of the audiences in this list. If no
        /// audiences are provided, the audience will default to the audience
        /// of the Kubernetes apiserver.
        /// </summary>
        [JsonProperty(PropertyName = "audiences")]
        public IList<string> Audiences { get; set; }

        /// <summary>
        /// Gets or sets token is the opaque bearer token.
        /// </summary>
        [JsonProperty(PropertyName = "token")]
        public string Token { get; set; }

    }
}
