// <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>
    /// ResourceRequirements describes the compute resource requirements.
    /// </summary>
    public partial class V1ResourceRequirements
    {
        /// <summary>
        /// Initializes a new instance of the V1ResourceRequirements class.
        /// </summary>
        public V1ResourceRequirements()
        {
            CustomInit();
        }

        /// <summary>
        /// Initializes a new instance of the V1ResourceRequirements class.
        /// </summary>
        /// <param name="limits">Limits describes the maximum amount of compute
        /// resources allowed. More info:
        /// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/</param>
        /// <param name="requests">Requests describes the minimum amount of
        /// compute resources required. If Requests is omitted for a container,
        /// it defaults to Limits if that is explicitly specified, otherwise to
        /// an implementation-defined value. More info:
        /// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/</param>
        public V1ResourceRequirements(IDictionary<string, ResourceQuantity> limits = default(IDictionary<string, ResourceQuantity>), IDictionary<string, ResourceQuantity> requests = default(IDictionary<string, ResourceQuantity>))
        {
            Limits = limits;
            Requests = requests;
            CustomInit();
        }

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

        /// <summary>
        /// Gets or sets limits describes the maximum amount of compute
        /// resources allowed. More info:
        /// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
        /// </summary>
        [JsonProperty(PropertyName = "limits")]
        public IDictionary<string, ResourceQuantity> Limits { get; set; }

        /// <summary>
        /// Gets or sets requests describes the minimum amount of compute
        /// resources required. If Requests is omitted for a container, it
        /// defaults to Limits if that is explicitly specified, otherwise to an
        /// implementation-defined value. More info:
        /// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
        /// </summary>
        [JsonProperty(PropertyName = "requests")]
        public IDictionary<string, ResourceQuantity> Requests { get; set; }

    }
}
