# coding: utf-8

"""
    App Center Client

    Microsoft Visual Studio App Center API  # noqa: E501

    OpenAPI spec version: preview
    Contact: <EMAIL>
    Project Repository: https://github.com/b3nab/appcenter-sdks
"""

import pprint
import re  # noqa: F401

import six


class XamarinBranchConfigurationProperties(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 = {
        'sln_path': 'string',
        'is_sim_build': 'string',
        'args': 'string',
        'configuration': 'string',
        'p12_file': 'string',
        'p12_pwd': 'string',
        'prov_profile': 'string',
        'mono_version': 'string',
        'sdk_bundle': 'string',
        'symlink': 'string'
    }

    attribute_map = {
        'sln_path': 'sln_path',
        'is_sim_build': 'is_sim_build',
        'args': 'args',
        'configuration': 'configuration',
        'p12_file': 'p12_file',
        'p12_pwd': '<PASSWORD>',
        'prov_profile': 'prov_profile',
        'mono_version': 'mono_version',
        'sdk_bundle': 'sdk_bundle',
        'symlink': 'symlink'
    }

    def __init__(self, sln_path=None, is_sim_build=None, args=None, configuration=None, p12_file=None, p12_pwd=None, prov_profile=None, mono_version=None, sdk_bundle=None, symlink=None):  # noqa: E501
        """XamarinBranchConfigurationProperties - a model defined in Swagger"""  # noqa: E501
        self._sln_path = None
        self._is_sim_build = None
        self._args = None
        self._configuration = None
        self._p12_file = None
        self._p12_pwd = None
        self._prov_profile = None
        self._mono_version = None
        self._sdk_bundle = None
        self._symlink = None
        self.discriminator = None
        if sln_path is not None:
            self.sln_path = sln_path
        if is_sim_build is not None:
            self.is_sim_build = is_sim_build
        self.args = args
        self.configuration = configuration
        if p12_file is not None:
            self.p12_file = p12_file
        if p12_pwd is not None:
            self.p12_pwd = p12_pwd
        if prov_profile is not None:
            self.prov_profile = prov_profile
        if mono_version is not None:
            self.mono_version = mono_version
        if sdk_bundle is not None:
            self.sdk_bundle = sdk_bundle
        if symlink is not None:
            self.symlink = symlink

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


        :return: The sln_path of this XamarinBranchConfigurationProperties.  # noqa: E501
        :rtype: string
        """
        return self._sln_path

    @sln_path.setter
    def sln_path(self, sln_path):
        """Sets the sln_path of this XamarinBranchConfigurationProperties.


        :param sln_path: The sln_path of this XamarinBranchConfigurationProperties.  # noqa: E501
        :type: string
        """

        self._sln_path = sln_path

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


        :return: The is_sim_build of this XamarinBranchConfigurationProperties.  # noqa: E501
        :rtype: string
        """
        return self._is_sim_build

    @is_sim_build.setter
    def is_sim_build(self, is_sim_build):
        """Sets the is_sim_build of this XamarinBranchConfigurationProperties.


        :param is_sim_build: The is_sim_build of this XamarinBranchConfigurationProperties.  # noqa: E501
        :type: string
        """

        self._is_sim_build = is_sim_build

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


        :return: The args of this XamarinBranchConfigurationProperties.  # noqa: E501
        :rtype: string
        """
        return self._args

    @args.setter
    def args(self, args):
        """Sets the args of this XamarinBranchConfigurationProperties.


        :param args: The args of this XamarinBranchConfigurationProperties.  # noqa: E501
        :type: string
        """
        if args is None:
            raise ValueError("Invalid value for `args`, must not be `None`")  # noqa: E501

        self._args = args

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


        :return: The configuration of this XamarinBranchConfigurationProperties.  # noqa: E501
        :rtype: string
        """
        return self._configuration

    @configuration.setter
    def configuration(self, configuration):
        """Sets the configuration of this XamarinBranchConfigurationProperties.


        :param configuration: The configuration of this XamarinBranchConfigurationProperties.  # noqa: E501
        :type: string
        """
        if configuration is None:
            raise ValueError("Invalid value for `configuration`, must not be `None`")  # noqa: E501

        self._configuration = configuration

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


        :return: The p12_file of this XamarinBranchConfigurationProperties.  # noqa: E501
        :rtype: string
        """
        return self._p12_file

    @p12_file.setter
    def p12_file(self, p12_file):
        """Sets the p12_file of this XamarinBranchConfigurationProperties.


        :param p12_file: The p12_file of this XamarinBranchConfigurationProperties.  # noqa: E501
        :type: string
        """

        self._p12_file = p12_file

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


        :return: The p12_pwd of this XamarinBranchConfigurationProperties.  # noqa: E501
        :rtype: string
        """
        return self._p12_pwd

    @p12_pwd.setter
    def p12_pwd(self, p12_pwd):
        """Sets the p12_pwd of this XamarinBranchConfigurationProperties.


        :param p12_pwd: The p12_pwd of this XamarinBranchConfigurationProperties.  # noqa: E501
        :type: string
        """

        self._p12_pwd = <PASSWORD>

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


        :return: The prov_profile of this XamarinBranchConfigurationProperties.  # noqa: E501
        :rtype: string
        """
        return self._prov_profile

    @prov_profile.setter
    def prov_profile(self, prov_profile):
        """Sets the prov_profile of this XamarinBranchConfigurationProperties.


        :param prov_profile: The prov_profile of this XamarinBranchConfigurationProperties.  # noqa: E501
        :type: string
        """

        self._prov_profile = prov_profile

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


        :return: The mono_version of this XamarinBranchConfigurationProperties.  # noqa: E501
        :rtype: string
        """
        return self._mono_version

    @mono_version.setter
    def mono_version(self, mono_version):
        """Sets the mono_version of this XamarinBranchConfigurationProperties.


        :param mono_version: The mono_version of this XamarinBranchConfigurationProperties.  # noqa: E501
        :type: string
        """

        self._mono_version = mono_version

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


        :return: The sdk_bundle of this XamarinBranchConfigurationProperties.  # noqa: E501
        :rtype: string
        """
        return self._sdk_bundle

    @sdk_bundle.setter
    def sdk_bundle(self, sdk_bundle):
        """Sets the sdk_bundle of this XamarinBranchConfigurationProperties.


        :param sdk_bundle: The sdk_bundle of this XamarinBranchConfigurationProperties.  # noqa: E501
        :type: string
        """

        self._sdk_bundle = sdk_bundle

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

        Symlink of the SDK Bundle and Mono installation.
The build will use the associated Mono bundled with related Xamarin SDK. If both symlink and monoVersion or sdkBundle are passed, the symlink is taking precedence. If non-existing symlink is passed, the current stable Mono version will be configured for building.
  # noqa: E501

        :return: The symlink of this XamarinBranchConfigurationProperties.  # noqa: E501
        :rtype: string
        """
        return self._symlink

    @symlink.setter
    def symlink(self, symlink):
        """Sets the symlink of this XamarinBranchConfigurationProperties.

        Symlink of the SDK Bundle and Mono installation.
The build will use the associated Mono bundled with related Xamarin SDK. If both symlink and monoVersion or sdkBundle are passed, the symlink is taking precedence. If non-existing symlink is passed, the current stable Mono version will be configured for building.
  # noqa: E501

        :param symlink: The symlink of this XamarinBranchConfigurationProperties.  # noqa: E501
        :type: string
        """

        self._symlink = symlink

    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

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

        return self.__dict__ == other.__dict__

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