// <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>
    /// PodDNSConfig defines the DNS parameters of a pod in addition to those
    /// generated from DNSPolicy.
    /// </summary>
    public partial class V1PodDNSConfig
    {
        /// <summary>
        /// Initializes a new instance of the V1PodDNSConfig class.
        /// </summary>
        public V1PodDNSConfig()
        {
            CustomInit();
        }

        /// <summary>
        /// Initializes a new instance of the V1PodDNSConfig class.
        /// </summary>
        /// <param name="nameservers">A list of DNS name server IP addresses.
        /// This will be appended to the base nameservers generated from
        /// DNSPolicy. Duplicated nameservers will be removed.</param>
        /// <param name="options">A list of DNS resolver options. This will be
        /// merged with the base options generated from DNSPolicy. Duplicated
        /// entries will be removed. Resolution options given in Options will
        /// override those that appear in the base DNSPolicy.</param>
        /// <param name="searches">A list of DNS search domains for host-name
        /// lookup. This will be appended to the base search paths generated
        /// from DNSPolicy. Duplicated search paths will be removed.</param>
        public V1PodDNSConfig(IList<string> nameservers = default(IList<string>), IList<V1PodDNSConfigOption> options = default(IList<V1PodDNSConfigOption>), IList<string> searches = default(IList<string>))
        {
            Nameservers = nameservers;
            Options = options;
            Searches = searches;
            CustomInit();
        }

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

        /// <summary>
        /// Gets or sets a list of DNS name server IP addresses. This will be
        /// appended to the base nameservers generated from DNSPolicy.
        /// Duplicated nameservers will be removed.
        /// </summary>
        [JsonProperty(PropertyName = "nameservers")]
        public IList<string> Nameservers { get; set; }

        /// <summary>
        /// Gets or sets a list of DNS resolver options. This will be merged
        /// with the base options generated from DNSPolicy. Duplicated entries
        /// will be removed. Resolution options given in Options will override
        /// those that appear in the base DNSPolicy.
        /// </summary>
        [JsonProperty(PropertyName = "options")]
        public IList<V1PodDNSConfigOption> Options { get; set; }

        /// <summary>
        /// Gets or sets a list of DNS search domains for host-name lookup.
        /// This will be appended to the base search paths generated from
        /// DNSPolicy. Duplicated search paths will be removed.
        /// </summary>
        [JsonProperty(PropertyName = "searches")]
        public IList<string> Searches { get; set; }

    }
}
