2017-10-19 19:53:02 +00:00
|
|
|
// <auto-generated>
|
|
|
|
|
// Code generated by Microsoft (R) AutoRest Code Generator.
|
2017-06-06 23:02:14 -07:00
|
|
|
// Changes may cause incorrect behavior and will be lost if the code is
|
|
|
|
|
// regenerated.
|
2017-10-19 19:53:02 +00:00
|
|
|
// </auto-generated>
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
namespace k8s.Models
|
|
|
|
|
{
|
|
|
|
|
using Microsoft.Rest;
|
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Volume represents a named volume in a pod that may be accessed by any
|
|
|
|
|
/// container in the pod.
|
|
|
|
|
/// </summary>
|
2017-11-24 12:10:51 +08:00
|
|
|
public partial class V1Volume
|
2017-06-06 23:02:14 -07:00
|
|
|
{
|
|
|
|
|
/// <summary>
|
2017-11-24 12:10:51 +08:00
|
|
|
/// Initializes a new instance of the V1Volume class.
|
2017-06-06 23:02:14 -07:00
|
|
|
/// </summary>
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1Volume()
|
2017-06-06 23:02:14 -07:00
|
|
|
{
|
2017-10-19 19:53:02 +00:00
|
|
|
CustomInit();
|
2017-06-06 23:02:14 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2017-11-24 12:10:51 +08:00
|
|
|
/// Initializes a new instance of the V1Volume class.
|
2017-06-06 23:02:14 -07:00
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="name">Volume's name. Must be a DNS_LABEL and unique
|
|
|
|
|
/// within the pod. More info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names</param>
|
2017-06-06 23:02:14 -07:00
|
|
|
/// <param name="awsElasticBlockStore">AWSElasticBlockStore represents
|
|
|
|
|
/// an AWS Disk resource that is attached to a kubelet's host machine
|
|
|
|
|
/// and then exposed to the pod. More info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore</param>
|
2017-06-06 23:02:14 -07:00
|
|
|
/// <param name="azureDisk">AzureDisk represents an Azure Data Disk
|
|
|
|
|
/// mount on the host and bind mount to the pod.</param>
|
|
|
|
|
/// <param name="azureFile">AzureFile represents an Azure File Service
|
|
|
|
|
/// mount on the host and bind mount to the pod.</param>
|
|
|
|
|
/// <param name="cephfs">CephFS represents a Ceph FS mount on the host
|
|
|
|
|
/// that shares a pod's lifetime</param>
|
|
|
|
|
/// <param name="cinder">Cinder represents a cinder volume attached and
|
|
|
|
|
/// mounted on kubelets host machine More info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md</param>
|
2017-06-06 23:02:14 -07:00
|
|
|
/// <param name="configMap">ConfigMap represents a configMap that
|
|
|
|
|
/// should populate this volume</param>
|
|
|
|
|
/// <param name="downwardAPI">DownwardAPI represents downward API about
|
|
|
|
|
/// the pod that should populate this volume</param>
|
|
|
|
|
/// <param name="emptyDir">EmptyDir represents a temporary directory
|
|
|
|
|
/// that shares a pod's lifetime. More info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://kubernetes.io/docs/concepts/storage/volumes#emptydir</param>
|
2017-06-06 23:02:14 -07:00
|
|
|
/// <param name="fc">FC represents a Fibre Channel resource that is
|
|
|
|
|
/// attached to a kubelet's host machine and then exposed to the
|
|
|
|
|
/// pod.</param>
|
|
|
|
|
/// <param name="flexVolume">FlexVolume represents a generic volume
|
|
|
|
|
/// resource that is provisioned/attached using an exec based plugin.
|
|
|
|
|
/// This is an alpha feature and may change in future.</param>
|
|
|
|
|
/// <param name="flocker">Flocker represents a Flocker volume attached
|
|
|
|
|
/// to a kubelet's host machine. This depends on the Flocker control
|
|
|
|
|
/// service being running</param>
|
|
|
|
|
/// <param name="gcePersistentDisk">GCEPersistentDisk represents a GCE
|
|
|
|
|
/// Disk resource that is attached to a kubelet's host machine and then
|
|
|
|
|
/// exposed to the pod. More info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk</param>
|
2017-06-06 23:02:14 -07:00
|
|
|
/// <param name="gitRepo">GitRepo represents a git repository at a
|
|
|
|
|
/// particular revision.</param>
|
|
|
|
|
/// <param name="glusterfs">Glusterfs represents a Glusterfs mount on
|
|
|
|
|
/// the host that shares a pod's lifetime. More info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md</param>
|
2017-06-06 23:02:14 -07:00
|
|
|
/// <param name="hostPath">HostPath represents a pre-existing file or
|
|
|
|
|
/// directory on the host machine that is directly exposed to the
|
|
|
|
|
/// container. This is generally used for system agents or other
|
|
|
|
|
/// privileged things that are allowed to see the host machine. Most
|
|
|
|
|
/// containers will NOT need this. More info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://kubernetes.io/docs/concepts/storage/volumes#hostpath</param>
|
2017-06-06 23:02:14 -07:00
|
|
|
/// <param name="iscsi">ISCSI represents an ISCSI Disk resource that is
|
|
|
|
|
/// attached to a kubelet's host machine and then exposed to the pod.
|
|
|
|
|
/// More info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md</param>
|
2017-06-06 23:02:14 -07:00
|
|
|
/// <param name="nfs">NFS represents an NFS mount on the host that
|
|
|
|
|
/// shares a pod's lifetime More info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://kubernetes.io/docs/concepts/storage/volumes#nfs</param>
|
2017-06-06 23:02:14 -07:00
|
|
|
/// <param
|
|
|
|
|
/// name="persistentVolumeClaim">PersistentVolumeClaimVolumeSource
|
|
|
|
|
/// represents a reference to a PersistentVolumeClaim in the same
|
|
|
|
|
/// namespace. More info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims</param>
|
2017-06-06 23:02:14 -07:00
|
|
|
/// <param name="photonPersistentDisk">PhotonPersistentDisk represents
|
|
|
|
|
/// a PhotonController persistent disk attached and mounted on kubelets
|
|
|
|
|
/// host machine</param>
|
|
|
|
|
/// <param name="portworxVolume">PortworxVolume represents a portworx
|
|
|
|
|
/// volume attached and mounted on kubelets host machine</param>
|
|
|
|
|
/// <param name="projected">Items for all in one resources secrets,
|
|
|
|
|
/// configmaps, and downward API</param>
|
|
|
|
|
/// <param name="quobyte">Quobyte represents a Quobyte mount on the
|
|
|
|
|
/// host that shares a pod's lifetime</param>
|
|
|
|
|
/// <param name="rbd">RBD represents a Rados Block Device mount on the
|
|
|
|
|
/// host that shares a pod's lifetime. More info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md</param>
|
2017-06-06 23:02:14 -07:00
|
|
|
/// <param name="scaleIO">ScaleIO represents a ScaleIO persistent
|
|
|
|
|
/// volume attached and mounted on Kubernetes nodes.</param>
|
|
|
|
|
/// <param name="secret">Secret represents a secret that should
|
|
|
|
|
/// populate this volume. More info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://kubernetes.io/docs/concepts/storage/volumes#secret</param>
|
|
|
|
|
/// <param name="storageos">StorageOS represents a StorageOS volume
|
|
|
|
|
/// attached and mounted on Kubernetes nodes.</param>
|
2017-06-06 23:02:14 -07:00
|
|
|
/// <param name="vsphereVolume">VsphereVolume represents a vSphere
|
|
|
|
|
/// volume attached and mounted on kubelets host machine</param>
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1Volume(string name, V1AWSElasticBlockStoreVolumeSource awsElasticBlockStore = default(V1AWSElasticBlockStoreVolumeSource), V1AzureDiskVolumeSource azureDisk = default(V1AzureDiskVolumeSource), V1AzureFileVolumeSource azureFile = default(V1AzureFileVolumeSource), V1CephFSVolumeSource cephfs = default(V1CephFSVolumeSource), V1CinderVolumeSource cinder = default(V1CinderVolumeSource), V1ConfigMapVolumeSource configMap = default(V1ConfigMapVolumeSource), V1DownwardAPIVolumeSource downwardAPI = default(V1DownwardAPIVolumeSource), V1EmptyDirVolumeSource emptyDir = default(V1EmptyDirVolumeSource), V1FCVolumeSource fc = default(V1FCVolumeSource), V1FlexVolumeSource flexVolume = default(V1FlexVolumeSource), V1FlockerVolumeSource flocker = default(V1FlockerVolumeSource), V1GCEPersistentDiskVolumeSource gcePersistentDisk = default(V1GCEPersistentDiskVolumeSource), V1GitRepoVolumeSource gitRepo = default(V1GitRepoVolumeSource), V1GlusterfsVolumeSource glusterfs = default(V1GlusterfsVolumeSource), V1HostPathVolumeSource hostPath = default(V1HostPathVolumeSource), V1ISCSIVolumeSource iscsi = default(V1ISCSIVolumeSource), V1NFSVolumeSource nfs = default(V1NFSVolumeSource), V1PersistentVolumeClaimVolumeSource persistentVolumeClaim = default(V1PersistentVolumeClaimVolumeSource), V1PhotonPersistentDiskVolumeSource photonPersistentDisk = default(V1PhotonPersistentDiskVolumeSource), V1PortworxVolumeSource portworxVolume = default(V1PortworxVolumeSource), V1ProjectedVolumeSource projected = default(V1ProjectedVolumeSource), V1QuobyteVolumeSource quobyte = default(V1QuobyteVolumeSource), V1RBDVolumeSource rbd = default(V1RBDVolumeSource), V1ScaleIOVolumeSource scaleIO = default(V1ScaleIOVolumeSource), V1SecretVolumeSource secret = default(V1SecretVolumeSource), V1StorageOSVolumeSource storageos = default(V1StorageOSVolumeSource), V1VsphereVirtualDiskVolumeSource vsphereVolume = default(V1VsphereVirtualDiskVolumeSource))
|
2017-06-06 23:02:14 -07:00
|
|
|
{
|
|
|
|
|
AwsElasticBlockStore = awsElasticBlockStore;
|
|
|
|
|
AzureDisk = azureDisk;
|
|
|
|
|
AzureFile = azureFile;
|
|
|
|
|
Cephfs = cephfs;
|
|
|
|
|
Cinder = cinder;
|
|
|
|
|
ConfigMap = configMap;
|
|
|
|
|
DownwardAPI = downwardAPI;
|
|
|
|
|
EmptyDir = emptyDir;
|
|
|
|
|
Fc = fc;
|
|
|
|
|
FlexVolume = flexVolume;
|
|
|
|
|
Flocker = flocker;
|
|
|
|
|
GcePersistentDisk = gcePersistentDisk;
|
|
|
|
|
GitRepo = gitRepo;
|
|
|
|
|
Glusterfs = glusterfs;
|
|
|
|
|
HostPath = hostPath;
|
|
|
|
|
Iscsi = iscsi;
|
|
|
|
|
Name = name;
|
|
|
|
|
Nfs = nfs;
|
|
|
|
|
PersistentVolumeClaim = persistentVolumeClaim;
|
|
|
|
|
PhotonPersistentDisk = photonPersistentDisk;
|
|
|
|
|
PortworxVolume = portworxVolume;
|
|
|
|
|
Projected = projected;
|
|
|
|
|
Quobyte = quobyte;
|
|
|
|
|
Rbd = rbd;
|
|
|
|
|
ScaleIO = scaleIO;
|
|
|
|
|
Secret = secret;
|
2017-10-19 19:53:02 +00:00
|
|
|
Storageos = storageos;
|
2017-06-06 23:02:14 -07:00
|
|
|
VsphereVolume = vsphereVolume;
|
|
|
|
|
CustomInit();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// An initialization method that performs custom operations like setting defaults
|
|
|
|
|
/// </summary>
|
|
|
|
|
partial void CustomInit();
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets aWSElasticBlockStore represents an AWS Disk resource
|
|
|
|
|
/// that is attached to a kubelet's host machine and then exposed to
|
|
|
|
|
/// the pod. More info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
|
2017-06-06 23:02:14 -07:00
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "awsElasticBlockStore")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1AWSElasticBlockStoreVolumeSource AwsElasticBlockStore { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets azureDisk represents an Azure Data Disk mount on the
|
|
|
|
|
/// host and bind mount to the pod.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "azureDisk")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1AzureDiskVolumeSource AzureDisk { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets azureFile represents an Azure File Service mount on
|
|
|
|
|
/// the host and bind mount to the pod.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "azureFile")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1AzureFileVolumeSource AzureFile { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets cephFS represents a Ceph FS mount on the host that
|
|
|
|
|
/// shares a pod's lifetime
|
|
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "cephfs")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1CephFSVolumeSource Cephfs { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets cinder represents a cinder volume attached and mounted
|
|
|
|
|
/// on kubelets host machine More info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
|
2017-06-06 23:02:14 -07:00
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "cinder")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1CinderVolumeSource Cinder { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets configMap represents a configMap that should populate
|
|
|
|
|
/// this volume
|
|
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "configMap")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1ConfigMapVolumeSource ConfigMap { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets downwardAPI represents downward API about the pod that
|
|
|
|
|
/// should populate this volume
|
|
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "downwardAPI")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1DownwardAPIVolumeSource DownwardAPI { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets emptyDir represents a temporary directory that shares
|
|
|
|
|
/// a pod's lifetime. More info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://kubernetes.io/docs/concepts/storage/volumes#emptydir
|
2017-06-06 23:02:14 -07:00
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "emptyDir")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1EmptyDirVolumeSource EmptyDir { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets FC represents a Fibre Channel resource that is
|
|
|
|
|
/// attached to a kubelet's host machine and then exposed to the pod.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "fc")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1FCVolumeSource Fc { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets flexVolume represents a generic volume resource that
|
|
|
|
|
/// is provisioned/attached using an exec based plugin. This is an
|
|
|
|
|
/// alpha feature and may change in future.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "flexVolume")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1FlexVolumeSource FlexVolume { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets flocker represents a Flocker volume attached to a
|
|
|
|
|
/// kubelet's host machine. This depends on the Flocker control service
|
|
|
|
|
/// being running
|
|
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "flocker")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1FlockerVolumeSource Flocker { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets gCEPersistentDisk represents a GCE Disk resource that
|
|
|
|
|
/// is attached to a kubelet's host machine and then exposed to the
|
|
|
|
|
/// pod. More info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
|
2017-06-06 23:02:14 -07:00
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "gcePersistentDisk")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1GCEPersistentDiskVolumeSource GcePersistentDisk { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets gitRepo represents a git repository at a particular
|
|
|
|
|
/// revision.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "gitRepo")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1GitRepoVolumeSource GitRepo { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets glusterfs represents a Glusterfs mount on the host
|
|
|
|
|
/// that shares a pod's lifetime. More info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
|
2017-06-06 23:02:14 -07:00
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "glusterfs")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1GlusterfsVolumeSource Glusterfs { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets hostPath represents a pre-existing file or directory
|
|
|
|
|
/// on the host machine that is directly exposed to the container. This
|
|
|
|
|
/// is generally used for system agents or other privileged things that
|
|
|
|
|
/// are allowed to see the host machine. Most containers will NOT need
|
|
|
|
|
/// this. More info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://kubernetes.io/docs/concepts/storage/volumes#hostpath
|
2017-06-06 23:02:14 -07:00
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "hostPath")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1HostPathVolumeSource HostPath { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets ISCSI represents an ISCSI Disk resource that is
|
|
|
|
|
/// attached to a kubelet's host machine and then exposed to the pod.
|
|
|
|
|
/// More info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md
|
2017-06-06 23:02:14 -07:00
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "iscsi")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1ISCSIVolumeSource Iscsi { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets volume's name. Must be a DNS_LABEL and unique within
|
|
|
|
|
/// the pod. More info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
2017-06-06 23:02:14 -07:00
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "name")]
|
|
|
|
|
public string Name { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets NFS represents an NFS mount on the host that shares a
|
|
|
|
|
/// pod's lifetime More info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://kubernetes.io/docs/concepts/storage/volumes#nfs
|
2017-06-06 23:02:14 -07:00
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "nfs")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1NFSVolumeSource Nfs { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets persistentVolumeClaimVolumeSource represents a
|
|
|
|
|
/// reference to a PersistentVolumeClaim in the same namespace. More
|
|
|
|
|
/// info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
|
2017-06-06 23:02:14 -07:00
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "persistentVolumeClaim")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1PersistentVolumeClaimVolumeSource PersistentVolumeClaim { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets photonPersistentDisk represents a PhotonController
|
|
|
|
|
/// persistent disk attached and mounted on kubelets host machine
|
|
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "photonPersistentDisk")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1PhotonPersistentDiskVolumeSource PhotonPersistentDisk { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets portworxVolume represents a portworx volume attached
|
|
|
|
|
/// and mounted on kubelets host machine
|
|
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "portworxVolume")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1PortworxVolumeSource PortworxVolume { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets items for all in one resources secrets, configmaps,
|
|
|
|
|
/// and downward API
|
|
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "projected")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1ProjectedVolumeSource Projected { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets quobyte represents a Quobyte mount on the host that
|
|
|
|
|
/// shares a pod's lifetime
|
|
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "quobyte")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1QuobyteVolumeSource Quobyte { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets RBD represents a Rados Block Device mount on the host
|
|
|
|
|
/// that shares a pod's lifetime. More info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
|
2017-06-06 23:02:14 -07:00
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "rbd")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1RBDVolumeSource Rbd { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets scaleIO represents a ScaleIO persistent volume
|
|
|
|
|
/// attached and mounted on Kubernetes nodes.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "scaleIO")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1ScaleIOVolumeSource ScaleIO { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets secret represents a secret that should populate this
|
|
|
|
|
/// volume. More info:
|
2017-10-19 19:53:02 +00:00
|
|
|
/// https://kubernetes.io/docs/concepts/storage/volumes#secret
|
2017-06-06 23:02:14 -07:00
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "secret")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1SecretVolumeSource Secret { get; set; }
|
2017-10-19 19:53:02 +00:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets storageOS represents a StorageOS volume attached and
|
|
|
|
|
/// mounted on Kubernetes nodes.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "storageos")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1StorageOSVolumeSource Storageos { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets vsphereVolume represents a vSphere volume attached and
|
|
|
|
|
/// mounted on kubelets host machine
|
|
|
|
|
/// </summary>
|
|
|
|
|
[JsonProperty(PropertyName = "vsphereVolume")]
|
2017-11-24 12:10:51 +08:00
|
|
|
public V1VsphereVirtualDiskVolumeSource VsphereVolume { get; set; }
|
2017-06-06 23:02:14 -07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Validate the object.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <exception cref="ValidationException">
|
|
|
|
|
/// Thrown if validation fails
|
|
|
|
|
/// </exception>
|
|
|
|
|
public virtual void Validate()
|
|
|
|
|
{
|
|
|
|
|
if (Name == null)
|
|
|
|
|
{
|
|
|
|
|
throw new ValidationException(ValidationRules.CannotBeNull, "Name");
|
|
|
|
|
}
|
|
|
|
|
if (AwsElasticBlockStore != null)
|
|
|
|
|
{
|
|
|
|
|
AwsElasticBlockStore.Validate();
|
|
|
|
|
}
|
|
|
|
|
if (AzureDisk != null)
|
|
|
|
|
{
|
|
|
|
|
AzureDisk.Validate();
|
|
|
|
|
}
|
|
|
|
|
if (AzureFile != null)
|
|
|
|
|
{
|
|
|
|
|
AzureFile.Validate();
|
|
|
|
|
}
|
|
|
|
|
if (Cephfs != null)
|
|
|
|
|
{
|
|
|
|
|
Cephfs.Validate();
|
|
|
|
|
}
|
|
|
|
|
if (Cinder != null)
|
|
|
|
|
{
|
|
|
|
|
Cinder.Validate();
|
|
|
|
|
}
|
|
|
|
|
if (FlexVolume != null)
|
|
|
|
|
{
|
|
|
|
|
FlexVolume.Validate();
|
|
|
|
|
}
|
|
|
|
|
if (GcePersistentDisk != null)
|
|
|
|
|
{
|
|
|
|
|
GcePersistentDisk.Validate();
|
|
|
|
|
}
|
|
|
|
|
if (GitRepo != null)
|
|
|
|
|
{
|
|
|
|
|
GitRepo.Validate();
|
|
|
|
|
}
|
|
|
|
|
if (Glusterfs != null)
|
|
|
|
|
{
|
|
|
|
|
Glusterfs.Validate();
|
|
|
|
|
}
|
|
|
|
|
if (HostPath != null)
|
|
|
|
|
{
|
|
|
|
|
HostPath.Validate();
|
|
|
|
|
}
|
|
|
|
|
if (Iscsi != null)
|
|
|
|
|
{
|
|
|
|
|
Iscsi.Validate();
|
|
|
|
|
}
|
|
|
|
|
if (Nfs != null)
|
|
|
|
|
{
|
|
|
|
|
Nfs.Validate();
|
|
|
|
|
}
|
|
|
|
|
if (PersistentVolumeClaim != null)
|
|
|
|
|
{
|
|
|
|
|
PersistentVolumeClaim.Validate();
|
|
|
|
|
}
|
|
|
|
|
if (PhotonPersistentDisk != null)
|
|
|
|
|
{
|
|
|
|
|
PhotonPersistentDisk.Validate();
|
|
|
|
|
}
|
|
|
|
|
if (PortworxVolume != null)
|
|
|
|
|
{
|
|
|
|
|
PortworxVolume.Validate();
|
|
|
|
|
}
|
|
|
|
|
if (Projected != null)
|
|
|
|
|
{
|
|
|
|
|
Projected.Validate();
|
|
|
|
|
}
|
|
|
|
|
if (Quobyte != null)
|
|
|
|
|
{
|
|
|
|
|
Quobyte.Validate();
|
|
|
|
|
}
|
|
|
|
|
if (Rbd != null)
|
|
|
|
|
{
|
|
|
|
|
Rbd.Validate();
|
|
|
|
|
}
|
|
|
|
|
if (ScaleIO != null)
|
|
|
|
|
{
|
|
|
|
|
ScaleIO.Validate();
|
|
|
|
|
}
|
|
|
|
|
if (VsphereVolume != null)
|
|
|
|
|
{
|
|
|
|
|
VsphereVolume.Validate();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|