// <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>
    /// PersistentVolumeClaimStatus is the current status of a persistent
    /// volume claim.
    /// </summary>
    public partial class V1PersistentVolumeClaimStatus
    {
        /// <summary>
        /// Initializes a new instance of the V1PersistentVolumeClaimStatus
        /// class.
        /// </summary>
        public V1PersistentVolumeClaimStatus()
        {
            CustomInit();
        }

        /// <summary>
        /// Initializes a new instance of the V1PersistentVolumeClaimStatus
        /// class.
        /// </summary>
        /// <param name="accessModes">AccessModes contains the actual access
        /// modes the volume backing the PVC has. More info:
        /// https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1</param>
        /// <param name="capacity">Represents the actual resources of the
        /// underlying volume.</param>
        /// <param name="conditions">Current Condition of persistent volume
        /// claim. If underlying persistent volume is being resized then the
        /// Condition will be set to 'ResizeStarted'.</param>
        /// <param name="phase">Phase represents the current phase of
        /// PersistentVolumeClaim.</param>
        public V1PersistentVolumeClaimStatus(IList<string> accessModes = default(IList<string>), IDictionary<string, ResourceQuantity> capacity = default(IDictionary<string, ResourceQuantity>), IList<V1PersistentVolumeClaimCondition> conditions = default(IList<V1PersistentVolumeClaimCondition>), string phase = default(string))
        {
            AccessModes = accessModes;
            Capacity = capacity;
            Conditions = conditions;
            Phase = phase;
            CustomInit();
        }

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

        /// <summary>
        /// Gets or sets accessModes contains the actual access modes the
        /// volume backing the PVC has. More info:
        /// https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
        /// </summary>
        [JsonProperty(PropertyName = "accessModes")]
        public IList<string> AccessModes { get; set; }

        /// <summary>
        /// Gets or sets represents the actual resources of the underlying
        /// volume.
        /// </summary>
        [JsonProperty(PropertyName = "capacity")]
        public IDictionary<string, ResourceQuantity> Capacity { get; set; }

        /// <summary>
        /// Gets or sets current Condition of persistent volume claim. If
        /// underlying persistent volume is being resized then the Condition
        /// will be set to 'ResizeStarted'.
        /// </summary>
        [JsonProperty(PropertyName = "conditions")]
        public IList<V1PersistentVolumeClaimCondition> Conditions { get; set; }

        /// <summary>
        /// Gets or sets phase represents the current phase of
        /// PersistentVolumeClaim.
        /// </summary>
        [JsonProperty(PropertyName = "phase")]
        public string Phase { get; set; }

    }
}
