# coding: utf-8

"""
    CartoVista REST API

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

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

import pprint
import re  # noqa: F401

import six

class SlideCreateUpdate(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 = {
        'name': 'str',
        'theme_set': 'str',
        'thematic_schemes': 'str',
        'is_default_slide': 'bool',
        'vector_layers': 'list[VectorLayer]',
        'displayed_data_columns_by_layer': 'dict(str, SlideColumns)',
        'layout': 'OneOfSlideCreateUpdateLayout',
        'story': 'str',
        'position': 'int',
        'parent_folder_id': 'str',
        'composite_variable_analysis_id': 'str',
        'camera': 'MapCamera',
        'is_map_libre': 'bool',
        'thumbnail': 'str',
        'analyses': 'list[SlideAnalysisCreateUpdate]'
    }

    attribute_map = {
        'name': 'name',
        'theme_set': 'themeSet',
        'thematic_schemes': 'thematicSchemes',
        'is_default_slide': 'isDefaultSlide',
        'vector_layers': 'vectorLayers',
        'displayed_data_columns_by_layer': 'displayedDataColumnsByLayer',
        'layout': 'layout',
        'story': 'story',
        'position': 'position',
        'parent_folder_id': 'parentFolderId',
        'composite_variable_analysis_id': 'compositeVariableAnalysisId',
        'camera': 'camera',
        'is_map_libre': 'isMapLibre',
        'thumbnail': 'thumbnail',
        'analyses': 'analyses'
    }

    def __init__(self, name=None, theme_set=None, thematic_schemes=None, is_default_slide=None, vector_layers=None, displayed_data_columns_by_layer=None, layout=None, story=None, position=None, parent_folder_id=None, composite_variable_analysis_id=None, camera=None, is_map_libre=None, thumbnail=None, analyses=None):  # noqa: E501
        """SlideCreateUpdate - a model defined in Swagger"""  # noqa: E501
        self._name = None
        self._theme_set = None
        self._thematic_schemes = None
        self._is_default_slide = None
        self._vector_layers = None
        self._displayed_data_columns_by_layer = None
        self._layout = None
        self._story = None
        self._position = None
        self._parent_folder_id = None
        self._composite_variable_analysis_id = None
        self._camera = None
        self._is_map_libre = None
        self._thumbnail = None
        self._analyses = None
        self.discriminator = None
        if name is not None:
            self.name = name
        if theme_set is not None:
            self.theme_set = theme_set
        if thematic_schemes is not None:
            self.thematic_schemes = thematic_schemes
        if is_default_slide is not None:
            self.is_default_slide = is_default_slide
        if vector_layers is not None:
            self.vector_layers = vector_layers
        if displayed_data_columns_by_layer is not None:
            self.displayed_data_columns_by_layer = displayed_data_columns_by_layer
        if layout is not None:
            self.layout = layout
        if story is not None:
            self.story = story
        if position is not None:
            self.position = position
        if parent_folder_id is not None:
            self.parent_folder_id = parent_folder_id
        if composite_variable_analysis_id is not None:
            self.composite_variable_analysis_id = composite_variable_analysis_id
        if camera is not None:
            self.camera = camera
        if is_map_libre is not None:
            self.is_map_libre = is_map_libre
        if thumbnail is not None:
            self.thumbnail = thumbnail
        if analyses is not None:
            self.analyses = analyses

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


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

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


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

        self._name = name

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


        :return: The theme_set of this SlideCreateUpdate.  # noqa: E501
        :rtype: str
        """
        return self._theme_set

    @theme_set.setter
    def theme_set(self, theme_set):
        """Sets the theme_set of this SlideCreateUpdate.


        :param theme_set: The theme_set of this SlideCreateUpdate.  # noqa: E501
        :type: str
        """

        self._theme_set = theme_set

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


        :return: The thematic_schemes of this SlideCreateUpdate.  # noqa: E501
        :rtype: str
        """
        return self._thematic_schemes

    @thematic_schemes.setter
    def thematic_schemes(self, thematic_schemes):
        """Sets the thematic_schemes of this SlideCreateUpdate.


        :param thematic_schemes: The thematic_schemes of this SlideCreateUpdate.  # noqa: E501
        :type: str
        """

        self._thematic_schemes = thematic_schemes

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


        :return: The is_default_slide of this SlideCreateUpdate.  # noqa: E501
        :rtype: bool
        """
        return self._is_default_slide

    @is_default_slide.setter
    def is_default_slide(self, is_default_slide):
        """Sets the is_default_slide of this SlideCreateUpdate.


        :param is_default_slide: The is_default_slide of this SlideCreateUpdate.  # noqa: E501
        :type: bool
        """

        self._is_default_slide = is_default_slide

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


        :return: The vector_layers of this SlideCreateUpdate.  # noqa: E501
        :rtype: list[VectorLayer]
        """
        return self._vector_layers

    @vector_layers.setter
    def vector_layers(self, vector_layers):
        """Sets the vector_layers of this SlideCreateUpdate.


        :param vector_layers: The vector_layers of this SlideCreateUpdate.  # noqa: E501
        :type: list[VectorLayer]
        """

        self._vector_layers = vector_layers

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


        :return: The displayed_data_columns_by_layer of this SlideCreateUpdate.  # noqa: E501
        :rtype: dict(str, SlideColumns)
        """
        return self._displayed_data_columns_by_layer

    @displayed_data_columns_by_layer.setter
    def displayed_data_columns_by_layer(self, displayed_data_columns_by_layer):
        """Sets the displayed_data_columns_by_layer of this SlideCreateUpdate.


        :param displayed_data_columns_by_layer: The displayed_data_columns_by_layer of this SlideCreateUpdate.  # noqa: E501
        :type: dict(str, SlideColumns)
        """

        self._displayed_data_columns_by_layer = displayed_data_columns_by_layer

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


        :return: The layout of this SlideCreateUpdate.  # noqa: E501
        :rtype: OneOfSlideCreateUpdateLayout
        """
        return self._layout

    @layout.setter
    def layout(self, layout):
        """Sets the layout of this SlideCreateUpdate.


        :param layout: The layout of this SlideCreateUpdate.  # noqa: E501
        :type: OneOfSlideCreateUpdateLayout
        """

        self._layout = layout

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


        :return: The story of this SlideCreateUpdate.  # noqa: E501
        :rtype: str
        """
        return self._story

    @story.setter
    def story(self, story):
        """Sets the story of this SlideCreateUpdate.


        :param story: The story of this SlideCreateUpdate.  # noqa: E501
        :type: str
        """

        self._story = story

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


        :return: The position of this SlideCreateUpdate.  # noqa: E501
        :rtype: int
        """
        return self._position

    @position.setter
    def position(self, position):
        """Sets the position of this SlideCreateUpdate.


        :param position: The position of this SlideCreateUpdate.  # noqa: E501
        :type: int
        """

        self._position = position

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


        :return: The parent_folder_id of this SlideCreateUpdate.  # noqa: E501
        :rtype: str
        """
        return self._parent_folder_id

    @parent_folder_id.setter
    def parent_folder_id(self, parent_folder_id):
        """Sets the parent_folder_id of this SlideCreateUpdate.


        :param parent_folder_id: The parent_folder_id of this SlideCreateUpdate.  # noqa: E501
        :type: str
        """

        self._parent_folder_id = parent_folder_id

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


        :return: The composite_variable_analysis_id of this SlideCreateUpdate.  # noqa: E501
        :rtype: str
        """
        return self._composite_variable_analysis_id

    @composite_variable_analysis_id.setter
    def composite_variable_analysis_id(self, composite_variable_analysis_id):
        """Sets the composite_variable_analysis_id of this SlideCreateUpdate.


        :param composite_variable_analysis_id: The composite_variable_analysis_id of this SlideCreateUpdate.  # noqa: E501
        :type: str
        """

        self._composite_variable_analysis_id = composite_variable_analysis_id

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


        :return: The camera of this SlideCreateUpdate.  # noqa: E501
        :rtype: MapCamera
        """
        return self._camera

    @camera.setter
    def camera(self, camera):
        """Sets the camera of this SlideCreateUpdate.


        :param camera: The camera of this SlideCreateUpdate.  # noqa: E501
        :type: MapCamera
        """

        self._camera = camera

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


        :return: The is_map_libre of this SlideCreateUpdate.  # noqa: E501
        :rtype: bool
        """
        return self._is_map_libre

    @is_map_libre.setter
    def is_map_libre(self, is_map_libre):
        """Sets the is_map_libre of this SlideCreateUpdate.


        :param is_map_libre: The is_map_libre of this SlideCreateUpdate.  # noqa: E501
        :type: bool
        """

        self._is_map_libre = is_map_libre

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


        :return: The thumbnail of this SlideCreateUpdate.  # noqa: E501
        :rtype: str
        """
        return self._thumbnail

    @thumbnail.setter
    def thumbnail(self, thumbnail):
        """Sets the thumbnail of this SlideCreateUpdate.


        :param thumbnail: The thumbnail of this SlideCreateUpdate.  # noqa: E501
        :type: str
        """

        self._thumbnail = thumbnail

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


        :return: The analyses of this SlideCreateUpdate.  # noqa: E501
        :rtype: list[SlideAnalysisCreateUpdate]
        """
        return self._analyses

    @analyses.setter
    def analyses(self, analyses):
        """Sets the analyses of this SlideCreateUpdate.


        :param analyses: The analyses of this SlideCreateUpdate.  # noqa: E501
        :type: list[SlideAnalysisCreateUpdate]
        """

        self._analyses = analyses

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

        return self.__dict__ == other.__dict__

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