# coding: utf-8

"""

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

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


from pprint import pformat
from six import iteritems
import re


class Iptc4xmpExt(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 = {
        'location_shown': 'str',
        'world_region': 'str',
        'country_code': 'str',
        'country_name': 'str',
        'province_state': 'str',
        'city': 'str',
        'sublocation': 'str'
    }

    attribute_map = {
        'location_shown': 'locationShown',
        'world_region': 'worldRegion',
        'country_code': 'countryCode',
        'country_name': 'countryName',
        'province_state': 'provinceState',
        'city': 'city',
        'sublocation': 'sublocation'
    }

    def __init__(self, location_shown=None, world_region=None, country_code=None, country_name=None, province_state=None, city=None, sublocation=None):
        """
        Iptc4xmpExt - a model defined in Swagger
        """

        self._location_shown = None
        self._world_region = None
        self._country_code = None
        self._country_name = None
        self._province_state = None
        self._city = None
        self._sublocation = None
        self.discriminator = None

        if location_shown is not None:
          self.location_shown = location_shown
        if world_region is not None:
          self.world_region = world_region
        if country_code is not None:
          self.country_code = country_code
        if country_name is not None:
          self.country_name = country_name
        if province_state is not None:
          self.province_state = province_state
        if city is not None:
          self.city = city
        if sublocation is not None:
          self.sublocation = sublocation

    @property
    def location_shown(self):
        """
        Gets the location_shown of this Iptc4xmpExt.

        :return: The location_shown of this Iptc4xmpExt.
        :rtype: str
        """
        return self._location_shown

    @location_shown.setter
    def location_shown(self, location_shown):
        """
        Sets the location_shown of this Iptc4xmpExt.

        :param location_shown: The location_shown of this Iptc4xmpExt.
        :type: str
        """

        self._location_shown = location_shown

    @property
    def world_region(self):
        """
        Gets the world_region of this Iptc4xmpExt.

        :return: The world_region of this Iptc4xmpExt.
        :rtype: str
        """
        return self._world_region

    @world_region.setter
    def world_region(self, world_region):
        """
        Sets the world_region of this Iptc4xmpExt.

        :param world_region: The world_region of this Iptc4xmpExt.
        :type: str
        """

        self._world_region = world_region

    @property
    def country_code(self):
        """
        Gets the country_code of this Iptc4xmpExt.

        :return: The country_code of this Iptc4xmpExt.
        :rtype: str
        """
        return self._country_code

    @country_code.setter
    def country_code(self, country_code):
        """
        Sets the country_code of this Iptc4xmpExt.

        :param country_code: The country_code of this Iptc4xmpExt.
        :type: str
        """

        self._country_code = country_code

    @property
    def country_name(self):
        """
        Gets the country_name of this Iptc4xmpExt.

        :return: The country_name of this Iptc4xmpExt.
        :rtype: str
        """
        return self._country_name

    @country_name.setter
    def country_name(self, country_name):
        """
        Sets the country_name of this Iptc4xmpExt.

        :param country_name: The country_name of this Iptc4xmpExt.
        :type: str
        """

        self._country_name = country_name

    @property
    def province_state(self):
        """
        Gets the province_state of this Iptc4xmpExt.

        :return: The province_state of this Iptc4xmpExt.
        :rtype: str
        """
        return self._province_state

    @province_state.setter
    def province_state(self, province_state):
        """
        Sets the province_state of this Iptc4xmpExt.

        :param province_state: The province_state of this Iptc4xmpExt.
        :type: str
        """

        self._province_state = province_state

    @property
    def city(self):
        """
        Gets the city of this Iptc4xmpExt.

        :return: The city of this Iptc4xmpExt.
        :rtype: str
        """
        return self._city

    @city.setter
    def city(self, city):
        """
        Sets the city of this Iptc4xmpExt.

        :param city: The city of this Iptc4xmpExt.
        :type: str
        """

        self._city = city

    @property
    def sublocation(self):
        """
        Gets the sublocation of this Iptc4xmpExt.

        :return: The sublocation of this Iptc4xmpExt.
        :rtype: str
        """
        return self._sublocation

    @sublocation.setter
    def sublocation(self, sublocation):
        """
        Sets the sublocation of this Iptc4xmpExt.

        :param sublocation: The sublocation of this Iptc4xmpExt.
        :type: str
        """

        self._sublocation = sublocation

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

        for attr, _ in 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 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, Iptc4xmpExt):
            return False

        return self.__dict__ == other.__dict__

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