# coding: utf-8

"""
    vei_api

    No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)  # noqa: E501

    OpenAPI spec version: common-version
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


import pprint
import re  # noqa: F401

import six

from volcenginesdkcore.configuration import Configuration


class VolumeForUpdateDeploymentInput(object):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """

    """
    Attributes:
      swagger_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    swagger_types = {
        'configmap': 'ConfigmapForUpdateDeploymentInput',
        'empty_dir': 'EmptyDirForUpdateDeploymentInput',
        'host_path': 'HostPathForUpdateDeploymentInput',
        'name': 'str',
        'pvc': 'PvcForUpdateDeploymentInput',
        'secret': 'SecretForUpdateDeploymentInput',
        'source_type': 'int'
    }

    attribute_map = {
        'configmap': 'configmap',
        'empty_dir': 'empty_dir',
        'host_path': 'host_path',
        'name': 'name',
        'pvc': 'pvc',
        'secret': 'secret',
        'source_type': 'source_type'
    }

    def __init__(self, configmap=None, empty_dir=None, host_path=None, name=None, pvc=None, secret=None, source_type=None, _configuration=None):  # noqa: E501
        """VolumeForUpdateDeploymentInput - a model defined in Swagger"""  # noqa: E501
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._configmap = None
        self._empty_dir = None
        self._host_path = None
        self._name = None
        self._pvc = None
        self._secret = None
        self._source_type = None
        self.discriminator = None

        if configmap is not None:
            self.configmap = configmap
        if empty_dir is not None:
            self.empty_dir = empty_dir
        if host_path is not None:
            self.host_path = host_path
        if name is not None:
            self.name = name
        if pvc is not None:
            self.pvc = pvc
        if secret is not None:
            self.secret = secret
        if source_type is not None:
            self.source_type = source_type

    @property
    def configmap(self):
        """Gets the configmap of this VolumeForUpdateDeploymentInput.  # noqa: E501


        :return: The configmap of this VolumeForUpdateDeploymentInput.  # noqa: E501
        :rtype: ConfigmapForUpdateDeploymentInput
        """
        return self._configmap

    @configmap.setter
    def configmap(self, configmap):
        """Sets the configmap of this VolumeForUpdateDeploymentInput.


        :param configmap: The configmap of this VolumeForUpdateDeploymentInput.  # noqa: E501
        :type: ConfigmapForUpdateDeploymentInput
        """

        self._configmap = configmap

    @property
    def empty_dir(self):
        """Gets the empty_dir of this VolumeForUpdateDeploymentInput.  # noqa: E501


        :return: The empty_dir of this VolumeForUpdateDeploymentInput.  # noqa: E501
        :rtype: EmptyDirForUpdateDeploymentInput
        """
        return self._empty_dir

    @empty_dir.setter
    def empty_dir(self, empty_dir):
        """Sets the empty_dir of this VolumeForUpdateDeploymentInput.


        :param empty_dir: The empty_dir of this VolumeForUpdateDeploymentInput.  # noqa: E501
        :type: EmptyDirForUpdateDeploymentInput
        """

        self._empty_dir = empty_dir

    @property
    def host_path(self):
        """Gets the host_path of this VolumeForUpdateDeploymentInput.  # noqa: E501


        :return: The host_path of this VolumeForUpdateDeploymentInput.  # noqa: E501
        :rtype: HostPathForUpdateDeploymentInput
        """
        return self._host_path

    @host_path.setter
    def host_path(self, host_path):
        """Sets the host_path of this VolumeForUpdateDeploymentInput.


        :param host_path: The host_path of this VolumeForUpdateDeploymentInput.  # noqa: E501
        :type: HostPathForUpdateDeploymentInput
        """

        self._host_path = host_path

    @property
    def name(self):
        """Gets the name of this VolumeForUpdateDeploymentInput.  # noqa: E501


        :return: The name of this VolumeForUpdateDeploymentInput.  # noqa: E501
        :rtype: str
        """
        return self._name

    @name.setter
    def name(self, name):
        """Sets the name of this VolumeForUpdateDeploymentInput.


        :param name: The name of this VolumeForUpdateDeploymentInput.  # noqa: E501
        :type: str
        """

        self._name = name

    @property
    def pvc(self):
        """Gets the pvc of this VolumeForUpdateDeploymentInput.  # noqa: E501


        :return: The pvc of this VolumeForUpdateDeploymentInput.  # noqa: E501
        :rtype: PvcForUpdateDeploymentInput
        """
        return self._pvc

    @pvc.setter
    def pvc(self, pvc):
        """Sets the pvc of this VolumeForUpdateDeploymentInput.


        :param pvc: The pvc of this VolumeForUpdateDeploymentInput.  # noqa: E501
        :type: PvcForUpdateDeploymentInput
        """

        self._pvc = pvc

    @property
    def secret(self):
        """Gets the secret of this VolumeForUpdateDeploymentInput.  # noqa: E501


        :return: The secret of this VolumeForUpdateDeploymentInput.  # noqa: E501
        :rtype: SecretForUpdateDeploymentInput
        """
        return self._secret

    @secret.setter
    def secret(self, secret):
        """Sets the secret of this VolumeForUpdateDeploymentInput.


        :param secret: The secret of this VolumeForUpdateDeploymentInput.  # noqa: E501
        :type: SecretForUpdateDeploymentInput
        """

        self._secret = secret

    @property
    def source_type(self):
        """Gets the source_type of this VolumeForUpdateDeploymentInput.  # noqa: E501


        :return: The source_type of this VolumeForUpdateDeploymentInput.  # noqa: E501
        :rtype: int
        """
        return self._source_type

    @source_type.setter
    def source_type(self, source_type):
        """Sets the source_type of this VolumeForUpdateDeploymentInput.


        :param source_type: The source_type of this VolumeForUpdateDeploymentInput.  # noqa: E501
        :type: int
        """

        self._source_type = source_type

    def to_dict(self):
        """Returns the model properties as a dict"""
        result = {}

        for attr, _ in six.iteritems(self.swagger_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value
        if issubclass(VolumeForUpdateDeploymentInput, dict):
            for key, value in self.items():
                result[key] = value

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, VolumeForUpdateDeploymentInput):
            return False

        return self.to_dict() == other.to_dict()

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        if not isinstance(other, VolumeForUpdateDeploymentInput):
            return True

        return self.to_dict() != other.to_dict()
