1# coding: utf-8
2"""
3    Kubernetes
4
5    No description provided (generated by Swagger Codegen
6    https://github.com/swagger-api/swagger-codegen)
7
8    OpenAPI spec version: v1.14.4
9
10    Generated by: https://github.com/swagger-api/swagger-codegen.git
11"""
12
13from pprint import pformat
14from six import iteritems
15import re
16
17
18class V1Volume(object):
19  """
20    NOTE: This class is auto generated by the swagger code generator program.
21    Do not edit the class manually.
22    """
23  """
24    Attributes:
25      swagger_types (dict): The key is attribute name and the value is attribute
26        type.
27      attribute_map (dict): The key is attribute name and the value is json key
28        in definition.
29  """
30  swagger_types = {
31      'aws_elastic_block_store': 'V1AWSElasticBlockStoreVolumeSource',
32      'azure_disk': 'V1AzureDiskVolumeSource',
33      'azure_file': 'V1AzureFileVolumeSource',
34      'cephfs': 'V1CephFSVolumeSource',
35      'cinder': 'V1CinderVolumeSource',
36      'config_map': 'V1ConfigMapVolumeSource',
37      'csi': 'V1CSIVolumeSource',
38      'downward_api': 'V1DownwardAPIVolumeSource',
39      'empty_dir': 'V1EmptyDirVolumeSource',
40      'fc': 'V1FCVolumeSource',
41      'flex_volume': 'V1FlexVolumeSource',
42      'flocker': 'V1FlockerVolumeSource',
43      'gce_persistent_disk': 'V1GCEPersistentDiskVolumeSource',
44      'git_repo': 'V1GitRepoVolumeSource',
45      'glusterfs': 'V1GlusterfsVolumeSource',
46      'host_path': 'V1HostPathVolumeSource',
47      'iscsi': 'V1ISCSIVolumeSource',
48      'name': 'str',
49      'nfs': 'V1NFSVolumeSource',
50      'persistent_volume_claim': 'V1PersistentVolumeClaimVolumeSource',
51      'photon_persistent_disk': 'V1PhotonPersistentDiskVolumeSource',
52      'portworx_volume': 'V1PortworxVolumeSource',
53      'projected': 'V1ProjectedVolumeSource',
54      'quobyte': 'V1QuobyteVolumeSource',
55      'rbd': 'V1RBDVolumeSource',
56      'scale_io': 'V1ScaleIOVolumeSource',
57      'secret': 'V1SecretVolumeSource',
58      'storageos': 'V1StorageOSVolumeSource',
59      'vsphere_volume': 'V1VsphereVirtualDiskVolumeSource'
60  }
61
62  attribute_map = {
63      'aws_elastic_block_store': 'awsElasticBlockStore',
64      'azure_disk': 'azureDisk',
65      'azure_file': 'azureFile',
66      'cephfs': 'cephfs',
67      'cinder': 'cinder',
68      'config_map': 'configMap',
69      'csi': 'csi',
70      'downward_api': 'downwardAPI',
71      'empty_dir': 'emptyDir',
72      'fc': 'fc',
73      'flex_volume': 'flexVolume',
74      'flocker': 'flocker',
75      'gce_persistent_disk': 'gcePersistentDisk',
76      'git_repo': 'gitRepo',
77      'glusterfs': 'glusterfs',
78      'host_path': 'hostPath',
79      'iscsi': 'iscsi',
80      'name': 'name',
81      'nfs': 'nfs',
82      'persistent_volume_claim': 'persistentVolumeClaim',
83      'photon_persistent_disk': 'photonPersistentDisk',
84      'portworx_volume': 'portworxVolume',
85      'projected': 'projected',
86      'quobyte': 'quobyte',
87      'rbd': 'rbd',
88      'scale_io': 'scaleIO',
89      'secret': 'secret',
90      'storageos': 'storageos',
91      'vsphere_volume': 'vsphereVolume'
92  }
93
94  def __init__(self,
95               aws_elastic_block_store=None,
96               azure_disk=None,
97               azure_file=None,
98               cephfs=None,
99               cinder=None,
100               config_map=None,
101               csi=None,
102               downward_api=None,
103               empty_dir=None,
104               fc=None,
105               flex_volume=None,
106               flocker=None,
107               gce_persistent_disk=None,
108               git_repo=None,
109               glusterfs=None,
110               host_path=None,
111               iscsi=None,
112               name=None,
113               nfs=None,
114               persistent_volume_claim=None,
115               photon_persistent_disk=None,
116               portworx_volume=None,
117               projected=None,
118               quobyte=None,
119               rbd=None,
120               scale_io=None,
121               secret=None,
122               storageos=None,
123               vsphere_volume=None):
124    """
125        V1Volume - a model defined in Swagger
126        """
127
128    self._aws_elastic_block_store = None
129    self._azure_disk = None
130    self._azure_file = None
131    self._cephfs = None
132    self._cinder = None
133    self._config_map = None
134    self._csi = None
135    self._downward_api = None
136    self._empty_dir = None
137    self._fc = None
138    self._flex_volume = None
139    self._flocker = None
140    self._gce_persistent_disk = None
141    self._git_repo = None
142    self._glusterfs = None
143    self._host_path = None
144    self._iscsi = None
145    self._name = None
146    self._nfs = None
147    self._persistent_volume_claim = None
148    self._photon_persistent_disk = None
149    self._portworx_volume = None
150    self._projected = None
151    self._quobyte = None
152    self._rbd = None
153    self._scale_io = None
154    self._secret = None
155    self._storageos = None
156    self._vsphere_volume = None
157    self.discriminator = None
158
159    if aws_elastic_block_store is not None:
160      self.aws_elastic_block_store = aws_elastic_block_store
161    if azure_disk is not None:
162      self.azure_disk = azure_disk
163    if azure_file is not None:
164      self.azure_file = azure_file
165    if cephfs is not None:
166      self.cephfs = cephfs
167    if cinder is not None:
168      self.cinder = cinder
169    if config_map is not None:
170      self.config_map = config_map
171    if csi is not None:
172      self.csi = csi
173    if downward_api is not None:
174      self.downward_api = downward_api
175    if empty_dir is not None:
176      self.empty_dir = empty_dir
177    if fc is not None:
178      self.fc = fc
179    if flex_volume is not None:
180      self.flex_volume = flex_volume
181    if flocker is not None:
182      self.flocker = flocker
183    if gce_persistent_disk is not None:
184      self.gce_persistent_disk = gce_persistent_disk
185    if git_repo is not None:
186      self.git_repo = git_repo
187    if glusterfs is not None:
188      self.glusterfs = glusterfs
189    if host_path is not None:
190      self.host_path = host_path
191    if iscsi is not None:
192      self.iscsi = iscsi
193    self.name = name
194    if nfs is not None:
195      self.nfs = nfs
196    if persistent_volume_claim is not None:
197      self.persistent_volume_claim = persistent_volume_claim
198    if photon_persistent_disk is not None:
199      self.photon_persistent_disk = photon_persistent_disk
200    if portworx_volume is not None:
201      self.portworx_volume = portworx_volume
202    if projected is not None:
203      self.projected = projected
204    if quobyte is not None:
205      self.quobyte = quobyte
206    if rbd is not None:
207      self.rbd = rbd
208    if scale_io is not None:
209      self.scale_io = scale_io
210    if secret is not None:
211      self.secret = secret
212    if storageos is not None:
213      self.storageos = storageos
214    if vsphere_volume is not None:
215      self.vsphere_volume = vsphere_volume
216
217  @property
218  def aws_elastic_block_store(self):
219    """
220        Gets the aws_elastic_block_store of this V1Volume.
221        AWSElasticBlockStore represents an AWS Disk resource that is attached to
222        a kubelet's host machine and then exposed to the pod. More info:
223        https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
224
225        :return: The aws_elastic_block_store of this V1Volume.
226        :rtype: V1AWSElasticBlockStoreVolumeSource
227        """
228    return self._aws_elastic_block_store
229
230  @aws_elastic_block_store.setter
231  def aws_elastic_block_store(self, aws_elastic_block_store):
232    """
233        Sets the aws_elastic_block_store of this V1Volume.
234        AWSElasticBlockStore represents an AWS Disk resource that is attached to
235        a kubelet's host machine and then exposed to the pod. More info:
236        https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
237
238        :param aws_elastic_block_store: The aws_elastic_block_store of this
239        V1Volume.
240        :type: V1AWSElasticBlockStoreVolumeSource
241        """
242
243    self._aws_elastic_block_store = aws_elastic_block_store
244
245  @property
246  def azure_disk(self):
247    """
248        Gets the azure_disk of this V1Volume.
249        AzureDisk represents an Azure Data Disk mount on the host and bind mount
250        to the pod.
251
252        :return: The azure_disk of this V1Volume.
253        :rtype: V1AzureDiskVolumeSource
254        """
255    return self._azure_disk
256
257  @azure_disk.setter
258  def azure_disk(self, azure_disk):
259    """
260        Sets the azure_disk of this V1Volume.
261        AzureDisk represents an Azure Data Disk mount on the host and bind mount
262        to the pod.
263
264        :param azure_disk: The azure_disk of this V1Volume.
265        :type: V1AzureDiskVolumeSource
266        """
267
268    self._azure_disk = azure_disk
269
270  @property
271  def azure_file(self):
272    """
273        Gets the azure_file of this V1Volume.
274        AzureFile represents an Azure File Service mount on the host and bind
275        mount to the pod.
276
277        :return: The azure_file of this V1Volume.
278        :rtype: V1AzureFileVolumeSource
279        """
280    return self._azure_file
281
282  @azure_file.setter
283  def azure_file(self, azure_file):
284    """
285        Sets the azure_file of this V1Volume.
286        AzureFile represents an Azure File Service mount on the host and bind
287        mount to the pod.
288
289        :param azure_file: The azure_file of this V1Volume.
290        :type: V1AzureFileVolumeSource
291        """
292
293    self._azure_file = azure_file
294
295  @property
296  def cephfs(self):
297    """
298        Gets the cephfs of this V1Volume.
299        CephFS represents a Ceph FS mount on the host that shares a pod's
300        lifetime
301
302        :return: The cephfs of this V1Volume.
303        :rtype: V1CephFSVolumeSource
304        """
305    return self._cephfs
306
307  @cephfs.setter
308  def cephfs(self, cephfs):
309    """
310        Sets the cephfs of this V1Volume.
311        CephFS represents a Ceph FS mount on the host that shares a pod's
312        lifetime
313
314        :param cephfs: The cephfs of this V1Volume.
315        :type: V1CephFSVolumeSource
316        """
317
318    self._cephfs = cephfs
319
320  @property
321  def cinder(self):
322    """
323        Gets the cinder of this V1Volume.
324        Cinder represents a cinder volume attached and mounted on kubelets host
325        machine More info:
326        https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
327
328        :return: The cinder of this V1Volume.
329        :rtype: V1CinderVolumeSource
330        """
331    return self._cinder
332
333  @cinder.setter
334  def cinder(self, cinder):
335    """
336        Sets the cinder of this V1Volume.
337        Cinder represents a cinder volume attached and mounted on kubelets host
338        machine More info:
339        https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
340
341        :param cinder: The cinder of this V1Volume.
342        :type: V1CinderVolumeSource
343        """
344
345    self._cinder = cinder
346
347  @property
348  def config_map(self):
349    """
350        Gets the config_map of this V1Volume.
351        ConfigMap represents a configMap that should populate this volume
352
353        :return: The config_map of this V1Volume.
354        :rtype: V1ConfigMapVolumeSource
355        """
356    return self._config_map
357
358  @config_map.setter
359  def config_map(self, config_map):
360    """
361        Sets the config_map of this V1Volume.
362        ConfigMap represents a configMap that should populate this volume
363
364        :param config_map: The config_map of this V1Volume.
365        :type: V1ConfigMapVolumeSource
366        """
367
368    self._config_map = config_map
369
370  @property
371  def csi(self):
372    """
373        Gets the csi of this V1Volume.
374        CSI (Container Storage Interface) represents storage that is handled by
375        an external CSI driver (Alpha feature).
376
377        :return: The csi of this V1Volume.
378        :rtype: V1CSIVolumeSource
379        """
380    return self._csi
381
382  @csi.setter
383  def csi(self, csi):
384    """
385        Sets the csi of this V1Volume.
386        CSI (Container Storage Interface) represents storage that is handled by
387        an external CSI driver (Alpha feature).
388
389        :param csi: The csi of this V1Volume.
390        :type: V1CSIVolumeSource
391        """
392
393    self._csi = csi
394
395  @property
396  def downward_api(self):
397    """
398        Gets the downward_api of this V1Volume.
399        DownwardAPI represents downward API about the pod that should populate
400        this volume
401
402        :return: The downward_api of this V1Volume.
403        :rtype: V1DownwardAPIVolumeSource
404        """
405    return self._downward_api
406
407  @downward_api.setter
408  def downward_api(self, downward_api):
409    """
410        Sets the downward_api of this V1Volume.
411        DownwardAPI represents downward API about the pod that should populate
412        this volume
413
414        :param downward_api: The downward_api of this V1Volume.
415        :type: V1DownwardAPIVolumeSource
416        """
417
418    self._downward_api = downward_api
419
420  @property
421  def empty_dir(self):
422    """
423        Gets the empty_dir of this V1Volume.
424        EmptyDir represents a temporary directory that shares a pod's lifetime.
425        More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
426
427        :return: The empty_dir of this V1Volume.
428        :rtype: V1EmptyDirVolumeSource
429        """
430    return self._empty_dir
431
432  @empty_dir.setter
433  def empty_dir(self, empty_dir):
434    """
435        Sets the empty_dir of this V1Volume.
436        EmptyDir represents a temporary directory that shares a pod's lifetime.
437        More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
438
439        :param empty_dir: The empty_dir of this V1Volume.
440        :type: V1EmptyDirVolumeSource
441        """
442
443    self._empty_dir = empty_dir
444
445  @property
446  def fc(self):
447    """
448        Gets the fc of this V1Volume.
449        FC represents a Fibre Channel resource that is attached to a kubelet's
450        host machine and then exposed to the pod.
451
452        :return: The fc of this V1Volume.
453        :rtype: V1FCVolumeSource
454        """
455    return self._fc
456
457  @fc.setter
458  def fc(self, fc):
459    """
460        Sets the fc of this V1Volume.
461        FC represents a Fibre Channel resource that is attached to a kubelet's
462        host machine and then exposed to the pod.
463
464        :param fc: The fc of this V1Volume.
465        :type: V1FCVolumeSource
466        """
467
468    self._fc = fc
469
470  @property
471  def flex_volume(self):
472    """
473        Gets the flex_volume of this V1Volume.
474        FlexVolume represents a generic volume resource that is
475        provisioned/attached using an exec based plugin.
476
477        :return: The flex_volume of this V1Volume.
478        :rtype: V1FlexVolumeSource
479        """
480    return self._flex_volume
481
482  @flex_volume.setter
483  def flex_volume(self, flex_volume):
484    """
485        Sets the flex_volume of this V1Volume.
486        FlexVolume represents a generic volume resource that is
487        provisioned/attached using an exec based plugin.
488
489        :param flex_volume: The flex_volume of this V1Volume.
490        :type: V1FlexVolumeSource
491        """
492
493    self._flex_volume = flex_volume
494
495  @property
496  def flocker(self):
497    """
498        Gets the flocker of this V1Volume.
499        Flocker represents a Flocker volume attached to a kubelet's host
500        machine. This depends on the Flocker control service being running
501
502        :return: The flocker of this V1Volume.
503        :rtype: V1FlockerVolumeSource
504        """
505    return self._flocker
506
507  @flocker.setter
508  def flocker(self, flocker):
509    """
510        Sets the flocker of this V1Volume.
511        Flocker represents a Flocker volume attached to a kubelet's host
512        machine. This depends on the Flocker control service being running
513
514        :param flocker: The flocker of this V1Volume.
515        :type: V1FlockerVolumeSource
516        """
517
518    self._flocker = flocker
519
520  @property
521  def gce_persistent_disk(self):
522    """
523        Gets the gce_persistent_disk of this V1Volume.
524        GCEPersistentDisk represents a GCE Disk resource that is attached to a
525        kubelet's host machine and then exposed to the pod. More info:
526        https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
527
528        :return: The gce_persistent_disk of this V1Volume.
529        :rtype: V1GCEPersistentDiskVolumeSource
530        """
531    return self._gce_persistent_disk
532
533  @gce_persistent_disk.setter
534  def gce_persistent_disk(self, gce_persistent_disk):
535    """
536        Sets the gce_persistent_disk of this V1Volume.
537        GCEPersistentDisk represents a GCE Disk resource that is attached to a
538        kubelet's host machine and then exposed to the pod. More info:
539        https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
540
541        :param gce_persistent_disk: The gce_persistent_disk of this V1Volume.
542        :type: V1GCEPersistentDiskVolumeSource
543        """
544
545    self._gce_persistent_disk = gce_persistent_disk
546
547  @property
548  def git_repo(self):
549    """
550        Gets the git_repo of this V1Volume.
551        GitRepo represents a git repository at a particular revision.
552        DEPRECATED: GitRepo is deprecated. To provision a container with a git
553        repo, mount an EmptyDir into an InitContainer that clones the repo using
554        git, then mount the EmptyDir into the Pod's container.
555
556        :return: The git_repo of this V1Volume.
557        :rtype: V1GitRepoVolumeSource
558        """
559    return self._git_repo
560
561  @git_repo.setter
562  def git_repo(self, git_repo):
563    """
564        Sets the git_repo of this V1Volume.
565        GitRepo represents a git repository at a particular revision.
566        DEPRECATED: GitRepo is deprecated. To provision a container with a git
567        repo, mount an EmptyDir into an InitContainer that clones the repo using
568        git, then mount the EmptyDir into the Pod's container.
569
570        :param git_repo: The git_repo of this V1Volume.
571        :type: V1GitRepoVolumeSource
572        """
573
574    self._git_repo = git_repo
575
576  @property
577  def glusterfs(self):
578    """
579        Gets the glusterfs of this V1Volume.
580        Glusterfs represents a Glusterfs mount on the host that shares a pod's
581        lifetime. More info:
582        https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
583
584        :return: The glusterfs of this V1Volume.
585        :rtype: V1GlusterfsVolumeSource
586        """
587    return self._glusterfs
588
589  @glusterfs.setter
590  def glusterfs(self, glusterfs):
591    """
592        Sets the glusterfs of this V1Volume.
593        Glusterfs represents a Glusterfs mount on the host that shares a pod's
594        lifetime. More info:
595        https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
596
597        :param glusterfs: The glusterfs of this V1Volume.
598        :type: V1GlusterfsVolumeSource
599        """
600
601    self._glusterfs = glusterfs
602
603  @property
604  def host_path(self):
605    """
606        Gets the host_path of this V1Volume.
607        HostPath represents a pre-existing file or directory on the host machine
608        that is directly exposed to the container. This is generally used for
609        system agents or other privileged things that are allowed to see the
610        host machine. Most containers will NOT need this. More info:
611        https://kubernetes.io/docs/concepts/storage/volumes#hostpath
612
613        :return: The host_path of this V1Volume.
614        :rtype: V1HostPathVolumeSource
615        """
616    return self._host_path
617
618  @host_path.setter
619  def host_path(self, host_path):
620    """
621        Sets the host_path of this V1Volume.
622        HostPath represents a pre-existing file or directory on the host machine
623        that is directly exposed to the container. This is generally used for
624        system agents or other privileged things that are allowed to see the
625        host machine. Most containers will NOT need this. More info:
626        https://kubernetes.io/docs/concepts/storage/volumes#hostpath
627
628        :param host_path: The host_path of this V1Volume.
629        :type: V1HostPathVolumeSource
630        """
631
632    self._host_path = host_path
633
634  @property
635  def iscsi(self):
636    """
637        Gets the iscsi of this V1Volume.
638        ISCSI represents an ISCSI Disk resource that is attached to a kubelet's
639        host machine and then exposed to the pod. More info:
640        https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md
641
642        :return: The iscsi of this V1Volume.
643        :rtype: V1ISCSIVolumeSource
644        """
645    return self._iscsi
646
647  @iscsi.setter
648  def iscsi(self, iscsi):
649    """
650        Sets the iscsi of this V1Volume.
651        ISCSI represents an ISCSI Disk resource that is attached to a kubelet's
652        host machine and then exposed to the pod. More info:
653        https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md
654
655        :param iscsi: The iscsi of this V1Volume.
656        :type: V1ISCSIVolumeSource
657        """
658
659    self._iscsi = iscsi
660
661  @property
662  def name(self):
663    """
664        Gets the name of this V1Volume.
665        Volume's name. Must be a DNS_LABEL and unique within the pod. More info:
666        https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
667
668        :return: The name of this V1Volume.
669        :rtype: str
670        """
671    return self._name
672
673  @name.setter
674  def name(self, name):
675    """
676        Sets the name of this V1Volume.
677        Volume's name. Must be a DNS_LABEL and unique within the pod. More info:
678        https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
679
680        :param name: The name of this V1Volume.
681        :type: str
682        """
683    if name is None:
684      raise ValueError('Invalid value for `name`, must not be `None`')
685
686    self._name = name
687
688  @property
689  def nfs(self):
690    """
691        Gets the nfs of this V1Volume.
692        NFS represents an NFS mount on the host that shares a pod's lifetime
693        More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
694
695        :return: The nfs of this V1Volume.
696        :rtype: V1NFSVolumeSource
697        """
698    return self._nfs
699
700  @nfs.setter
701  def nfs(self, nfs):
702    """
703        Sets the nfs of this V1Volume.
704        NFS represents an NFS mount on the host that shares a pod's lifetime
705        More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
706
707        :param nfs: The nfs of this V1Volume.
708        :type: V1NFSVolumeSource
709        """
710
711    self._nfs = nfs
712
713  @property
714  def persistent_volume_claim(self):
715    """
716        Gets the persistent_volume_claim of this V1Volume.
717        PersistentVolumeClaimVolumeSource represents a reference to a
718        PersistentVolumeClaim in the same namespace. More info:
719        https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
720
721        :return: The persistent_volume_claim of this V1Volume.
722        :rtype: V1PersistentVolumeClaimVolumeSource
723        """
724    return self._persistent_volume_claim
725
726  @persistent_volume_claim.setter
727  def persistent_volume_claim(self, persistent_volume_claim):
728    """
729        Sets the persistent_volume_claim of this V1Volume.
730        PersistentVolumeClaimVolumeSource represents a reference to a
731        PersistentVolumeClaim in the same namespace. More info:
732        https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
733
734        :param persistent_volume_claim: The persistent_volume_claim of this
735        V1Volume.
736        :type: V1PersistentVolumeClaimVolumeSource
737        """
738
739    self._persistent_volume_claim = persistent_volume_claim
740
741  @property
742  def photon_persistent_disk(self):
743    """
744        Gets the photon_persistent_disk of this V1Volume.
745        PhotonPersistentDisk represents a PhotonController persistent disk
746        attached and mounted on kubelets host machine
747
748        :return: The photon_persistent_disk of this V1Volume.
749        :rtype: V1PhotonPersistentDiskVolumeSource
750        """
751    return self._photon_persistent_disk
752
753  @photon_persistent_disk.setter
754  def photon_persistent_disk(self, photon_persistent_disk):
755    """
756        Sets the photon_persistent_disk of this V1Volume.
757        PhotonPersistentDisk represents a PhotonController persistent disk
758        attached and mounted on kubelets host machine
759
760        :param photon_persistent_disk: The photon_persistent_disk of this
761        V1Volume.
762        :type: V1PhotonPersistentDiskVolumeSource
763        """
764
765    self._photon_persistent_disk = photon_persistent_disk
766
767  @property
768  def portworx_volume(self):
769    """
770        Gets the portworx_volume of this V1Volume.
771        PortworxVolume represents a portworx volume attached and mounted on
772        kubelets host machine
773
774        :return: The portworx_volume of this V1Volume.
775        :rtype: V1PortworxVolumeSource
776        """
777    return self._portworx_volume
778
779  @portworx_volume.setter
780  def portworx_volume(self, portworx_volume):
781    """
782        Sets the portworx_volume of this V1Volume.
783        PortworxVolume represents a portworx volume attached and mounted on
784        kubelets host machine
785
786        :param portworx_volume: The portworx_volume of this V1Volume.
787        :type: V1PortworxVolumeSource
788        """
789
790    self._portworx_volume = portworx_volume
791
792  @property
793  def projected(self):
794    """
795        Gets the projected of this V1Volume.
796        Items for all in one resources secrets, configmaps, and downward API
797
798        :return: The projected of this V1Volume.
799        :rtype: V1ProjectedVolumeSource
800        """
801    return self._projected
802
803  @projected.setter
804  def projected(self, projected):
805    """
806        Sets the projected of this V1Volume.
807        Items for all in one resources secrets, configmaps, and downward API
808
809        :param projected: The projected of this V1Volume.
810        :type: V1ProjectedVolumeSource
811        """
812
813    self._projected = projected
814
815  @property
816  def quobyte(self):
817    """
818        Gets the quobyte of this V1Volume.
819        Quobyte represents a Quobyte mount on the host that shares a pod's
820        lifetime
821
822        :return: The quobyte of this V1Volume.
823        :rtype: V1QuobyteVolumeSource
824        """
825    return self._quobyte
826
827  @quobyte.setter
828  def quobyte(self, quobyte):
829    """
830        Sets the quobyte of this V1Volume.
831        Quobyte represents a Quobyte mount on the host that shares a pod's
832        lifetime
833
834        :param quobyte: The quobyte of this V1Volume.
835        :type: V1QuobyteVolumeSource
836        """
837
838    self._quobyte = quobyte
839
840  @property
841  def rbd(self):
842    """
843        Gets the rbd of this V1Volume.
844        RBD represents a Rados Block Device mount on the host that shares a
845        pod's lifetime. More info:
846        https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
847
848        :return: The rbd of this V1Volume.
849        :rtype: V1RBDVolumeSource
850        """
851    return self._rbd
852
853  @rbd.setter
854  def rbd(self, rbd):
855    """
856        Sets the rbd of this V1Volume.
857        RBD represents a Rados Block Device mount on the host that shares a
858        pod's lifetime. More info:
859        https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
860
861        :param rbd: The rbd of this V1Volume.
862        :type: V1RBDVolumeSource
863        """
864
865    self._rbd = rbd
866
867  @property
868  def scale_io(self):
869    """
870        Gets the scale_io of this V1Volume.
871        ScaleIO represents a ScaleIO persistent volume attached and mounted on
872        Kubernetes nodes.
873
874        :return: The scale_io of this V1Volume.
875        :rtype: V1ScaleIOVolumeSource
876        """
877    return self._scale_io
878
879  @scale_io.setter
880  def scale_io(self, scale_io):
881    """
882        Sets the scale_io of this V1Volume.
883        ScaleIO represents a ScaleIO persistent volume attached and mounted on
884        Kubernetes nodes.
885
886        :param scale_io: The scale_io of this V1Volume.
887        :type: V1ScaleIOVolumeSource
888        """
889
890    self._scale_io = scale_io
891
892  @property
893  def secret(self):
894    """
895        Gets the secret of this V1Volume.
896        Secret represents a secret that should populate this volume. More info:
897        https://kubernetes.io/docs/concepts/storage/volumes#secret
898
899        :return: The secret of this V1Volume.
900        :rtype: V1SecretVolumeSource
901        """
902    return self._secret
903
904  @secret.setter
905  def secret(self, secret):
906    """
907        Sets the secret of this V1Volume.
908        Secret represents a secret that should populate this volume. More info:
909        https://kubernetes.io/docs/concepts/storage/volumes#secret
910
911        :param secret: The secret of this V1Volume.
912        :type: V1SecretVolumeSource
913        """
914
915    self._secret = secret
916
917  @property
918  def storageos(self):
919    """
920        Gets the storageos of this V1Volume.
921        StorageOS represents a StorageOS volume attached and mounted on
922        Kubernetes nodes.
923
924        :return: The storageos of this V1Volume.
925        :rtype: V1StorageOSVolumeSource
926        """
927    return self._storageos
928
929  @storageos.setter
930  def storageos(self, storageos):
931    """
932        Sets the storageos of this V1Volume.
933        StorageOS represents a StorageOS volume attached and mounted on
934        Kubernetes nodes.
935
936        :param storageos: The storageos of this V1Volume.
937        :type: V1StorageOSVolumeSource
938        """
939
940    self._storageos = storageos
941
942  @property
943  def vsphere_volume(self):
944    """
945        Gets the vsphere_volume of this V1Volume.
946        VsphereVolume represents a vSphere volume attached and mounted on
947        kubelets host machine
948
949        :return: The vsphere_volume of this V1Volume.
950        :rtype: V1VsphereVirtualDiskVolumeSource
951        """
952    return self._vsphere_volume
953
954  @vsphere_volume.setter
955  def vsphere_volume(self, vsphere_volume):
956    """
957        Sets the vsphere_volume of this V1Volume.
958        VsphereVolume represents a vSphere volume attached and mounted on
959        kubelets host machine
960
961        :param vsphere_volume: The vsphere_volume of this V1Volume.
962        :type: V1VsphereVirtualDiskVolumeSource
963        """
964
965    self._vsphere_volume = vsphere_volume
966
967  def to_dict(self):
968    """
969        Returns the model properties as a dict
970        """
971    result = {}
972
973    for attr, _ in iteritems(self.swagger_types):
974      value = getattr(self, attr)
975      if isinstance(value, list):
976        result[attr] = list(
977            map(lambda x: x.to_dict() if hasattr(x, 'to_dict') else x, value))
978      elif hasattr(value, 'to_dict'):
979        result[attr] = value.to_dict()
980      elif isinstance(value, dict):
981        result[attr] = dict(
982            map(
983                lambda item: (item[0], item[1].to_dict())
984                if hasattr(item[1], 'to_dict') else item, value.items()))
985      else:
986        result[attr] = value
987
988    return result
989
990  def to_str(self):
991    """
992        Returns the string representation of the model
993        """
994    return pformat(self.to_dict())
995
996  def __repr__(self):
997    """
998        For `print` and `pprint`
999        """
1000    return self.to_str()
1001
1002  def __eq__(self, other):
1003    """
1004        Returns true if both objects are equal
1005        """
1006    if not isinstance(other, V1Volume):
1007      return False
1008
1009    return self.__dict__ == other.__dict__
1010
1011  def __ne__(self, other):
1012    """
1013        Returns true if both objects are not equal
1014        """
1015    return not self == other
1016