# coding: utf-8

"""
    AssistedInstall

    Assisted installation  # noqa: E501

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


import pprint
import re  # noqa: F401

import six


class VspherePlatform(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 = {
        'username': 'str',
        'password': 'str',
        'datacenter': 'str',
        'v_center': 'str',
        'cluster': 'str',
        'default_datastore': 'str',
        'network': 'str',
        'folder': 'str'
    }

    attribute_map = {
        'username': 'username',
        'password': 'password',
        'datacenter': 'datacenter',
        'v_center': 'vCenter',
        'cluster': 'cluster',
        'default_datastore': 'defaultDatastore',
        'network': 'network',
        'folder': 'folder'
    }

    def __init__(self, username=None, password=None, datacenter=None, v_center=None, cluster=None, default_datastore=None, network=None, folder=None):  # noqa: E501
        """VspherePlatform - a model defined in Swagger"""  # noqa: E501

        self._username = None
        self._password = None
        self._datacenter = None
        self._v_center = None
        self._cluster = None
        self._default_datastore = None
        self._network = None
        self._folder = None
        self.discriminator = None

        if username is not None:
            self.username = username
        if password is not None:
            self.password = password
        if datacenter is not None:
            self.datacenter = datacenter
        if v_center is not None:
            self.v_center = v_center
        if cluster is not None:
            self.cluster = cluster
        if default_datastore is not None:
            self.default_datastore = default_datastore
        if network is not None:
            self.network = network
        if folder is not None:
            self.folder = folder

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

        The user name to use to connect to the vCenter instance with. This user must have at least the roles and privileges that are required for static or dynamic persistent volume provisioning in vSphere.  # noqa: E501

        :return: The username of this VspherePlatform.  # noqa: E501
        :rtype: str
        """
        return self._username

    @username.setter
    def username(self, username):
        """Sets the username of this VspherePlatform.

        The user name to use to connect to the vCenter instance with. This user must have at least the roles and privileges that are required for static or dynamic persistent volume provisioning in vSphere.  # noqa: E501

        :param username: The username of this VspherePlatform.  # noqa: E501
        :type: str
        """

        self._username = username

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

        The password for the vCenter user name.  # noqa: E501

        :return: The password of this VspherePlatform.  # noqa: E501
        :rtype: str
        """
        return self._password

    @password.setter
    def password(self, password):
        """Sets the password of this VspherePlatform.

        The password for the vCenter user name.  # noqa: E501

        :param password: The password of this VspherePlatform.  # noqa: E501
        :type: str
        """

        self._password = password

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

        The name of the datacenter to use in the vCenter instance.  # noqa: E501

        :return: The datacenter of this VspherePlatform.  # noqa: E501
        :rtype: str
        """
        return self._datacenter

    @datacenter.setter
    def datacenter(self, datacenter):
        """Sets the datacenter of this VspherePlatform.

        The name of the datacenter to use in the vCenter instance.  # noqa: E501

        :param datacenter: The datacenter of this VspherePlatform.  # noqa: E501
        :type: str
        """

        self._datacenter = datacenter

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

        The fully-qualified hostname or IP address of the vCenter server.  # noqa: E501

        :return: The v_center of this VspherePlatform.  # noqa: E501
        :rtype: str
        """
        return self._v_center

    @v_center.setter
    def v_center(self, v_center):
        """Sets the v_center of this VspherePlatform.

        The fully-qualified hostname or IP address of the vCenter server.  # noqa: E501

        :param v_center: The v_center of this VspherePlatform.  # noqa: E501
        :type: str
        """

        self._v_center = v_center

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

        The vCenter cluster to install the OpenShift Container Platform cluster in.  # noqa: E501

        :return: The cluster of this VspherePlatform.  # noqa: E501
        :rtype: str
        """
        return self._cluster

    @cluster.setter
    def cluster(self, cluster):
        """Sets the cluster of this VspherePlatform.

        The vCenter cluster to install the OpenShift Container Platform cluster in.  # noqa: E501

        :param cluster: The cluster of this VspherePlatform.  # noqa: E501
        :type: str
        """

        self._cluster = cluster

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

        The name of the default datastore to use for provisioning volumes.  # noqa: E501

        :return: The default_datastore of this VspherePlatform.  # noqa: E501
        :rtype: str
        """
        return self._default_datastore

    @default_datastore.setter
    def default_datastore(self, default_datastore):
        """Sets the default_datastore of this VspherePlatform.

        The name of the default datastore to use for provisioning volumes.  # noqa: E501

        :param default_datastore: The default_datastore of this VspherePlatform.  # noqa: E501
        :type: str
        """

        self._default_datastore = default_datastore

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

        The network in the vCenter instance that contains the virtual IP addresses and DNS records that you configured.  # noqa: E501

        :return: The network of this VspherePlatform.  # noqa: E501
        :rtype: str
        """
        return self._network

    @network.setter
    def network(self, network):
        """Sets the network of this VspherePlatform.

        The network in the vCenter instance that contains the virtual IP addresses and DNS records that you configured.  # noqa: E501

        :param network: The network of this VspherePlatform.  # noqa: E501
        :type: str
        """

        self._network = network

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

        Optional. The absolute path of an existing folder where the installation program creates the virtual machines. If you do not provide this value, the installation program creates a folder that is named with the infrastructure ID in the datacenter virtual machine folder.  # noqa: E501

        :return: The folder of this VspherePlatform.  # noqa: E501
        :rtype: str
        """
        return self._folder

    @folder.setter
    def folder(self, folder):
        """Sets the folder of this VspherePlatform.

        Optional. The absolute path of an existing folder where the installation program creates the virtual machines. If you do not provide this value, the installation program creates a folder that is named with the infrastructure ID in the datacenter virtual machine folder.  # noqa: E501

        :param folder: The folder of this VspherePlatform.  # noqa: E501
        :type: str
        """

        self._folder = folder

    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(VspherePlatform, 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, VspherePlatform):
            return False

        return self.__dict__ == other.__dict__

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