//
// Code generated by Microsoft (R) AutoRest Code Generator.
// Changes may cause incorrect behavior and will be lost if the code is
// regenerated.
//
namespace k8s.Models
{
using Newtonsoft.Json;
using System.Linq;
///
/// CSIDriverSpec is the specification of a CSIDriver.
///
public partial class V1beta1CSIDriverSpec
{
///
/// Initializes a new instance of the V1beta1CSIDriverSpec class.
///
public V1beta1CSIDriverSpec()
{
CustomInit();
}
///
/// Initializes a new instance of the V1beta1CSIDriverSpec class.
///
/// attachRequired indicates this CSI
/// volume driver requires an attach operation (because it implements
/// the CSI ControllerPublishVolume() method), and that the Kubernetes
/// attach detach controller should call the attach volume interface
/// which checks the volumeattachment status and waits until the volume
/// is attached before proceeding to mounting. The CSI
/// external-attacher coordinates with CSI volume driver and updates
/// the volumeattachment status when the attach operation is complete.
/// If the CSIDriverRegistry feature gate is enabled and the value is
/// specified to false, the attach operation will be skipped. Otherwise
/// the attach operation will be called.
/// If set to true, podInfoOnMount
/// indicates this CSI volume driver requires additional pod
/// information (like podName, podUID, etc.) during mount operations.
/// If set to false, pod information will not be passed on mount.
/// Default is false. The CSI driver specifies podInfoOnMount as part
/// of driver deployment. If true, Kubelet will pass pod information as
/// VolumeContext in the CSI NodePublishVolume() calls. The CSI driver
/// is responsible for parsing and validating the information passed in
/// as VolumeContext. The following VolumeConext will be passed if
/// podInfoOnMount is set to true. This list might grow, but the prefix
/// will be used. "csi.storage.k8s.io/pod.name": pod.Name
/// "csi.storage.k8s.io/pod.namespace": pod.Namespace
/// "csi.storage.k8s.io/pod.uid": string(pod.UID)
public V1beta1CSIDriverSpec(bool? attachRequired = default(bool?), bool? podInfoOnMount = default(bool?))
{
AttachRequired = attachRequired;
PodInfoOnMount = podInfoOnMount;
CustomInit();
}
///
/// An initialization method that performs custom operations like setting defaults
///
partial void CustomInit();
///
/// Gets or sets attachRequired indicates this CSI volume driver
/// requires an attach operation (because it implements the CSI
/// ControllerPublishVolume() method), and that the Kubernetes attach
/// detach controller should call the attach volume interface which
/// checks the volumeattachment status and waits until the volume is
/// attached before proceeding to mounting. The CSI external-attacher
/// coordinates with CSI volume driver and updates the volumeattachment
/// status when the attach operation is complete. If the
/// CSIDriverRegistry feature gate is enabled and the value is
/// specified to false, the attach operation will be skipped. Otherwise
/// the attach operation will be called.
///
[JsonProperty(PropertyName = "attachRequired")]
public bool? AttachRequired { get; set; }
///
/// Gets or sets if set to true, podInfoOnMount indicates this CSI
/// volume driver requires additional pod information (like podName,
/// podUID, etc.) during mount operations. If set to false, pod
/// information will not be passed on mount. Default is false. The CSI
/// driver specifies podInfoOnMount as part of driver deployment. If
/// true, Kubelet will pass pod information as VolumeContext in the CSI
/// NodePublishVolume() calls. The CSI driver is responsible for
/// parsing and validating the information passed in as VolumeContext.
/// The following VolumeConext will be passed if podInfoOnMount is set
/// to true. This list might grow, but the prefix will be used.
/// "csi.storage.k8s.io/pod.name": pod.Name
/// "csi.storage.k8s.io/pod.namespace": pod.Namespace
/// "csi.storage.k8s.io/pod.uid": string(pod.UID)
///
[JsonProperty(PropertyName = "podInfoOnMount")]
public bool? PodInfoOnMount { get; set; }
}
}