# coding: utf-8

from __future__ import absolute_import
from datetime import date, datetime  # noqa: F401

from typing import List, Dict  # noqa: F401

from swagger_server.models.base_model_ import Model
from swagger_server import util


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

    Do not edit the class manually.
    """

    def __init__(self, checkout: str=None, confirmation: str=None, push: str=None):  # noqa: E501
        """MerchantUrls - a model defined in Swagger

        :param checkout: The checkout of this MerchantUrls.  # noqa: E501
        :type checkout: str
        :param confirmation: The confirmation of this MerchantUrls.  # noqa: E501
        :type confirmation: str
        :param push: The push of this MerchantUrls.  # noqa: E501
        :type push: str
        """
        self.swagger_types = {
            'checkout': str,
            'confirmation': str,
            'push': str
        }

        self.attribute_map = {
            'checkout': 'checkout',
            'confirmation': 'confirmation',
            'push': 'push'
        }

        self._checkout = checkout
        self._confirmation = confirmation
        self._push = push

    @classmethod
    def from_dict(cls, dikt) -> 'MerchantUrls':
        """Returns the dict as a model

        :param dikt: A dict.
        :type: dict
        :return: The Merchant_urls of this MerchantUrls.  # noqa: E501
        :rtype: MerchantUrls
        """
        return util.deserialize_model(dikt, cls)

    @property
    def checkout(self) -> str:
        """Gets the checkout of this MerchantUrls.

        URL to your checkout page  # noqa: E501

        :return: The checkout of this MerchantUrls.
        :rtype: str
        """
        return self._checkout

    @checkout.setter
    def checkout(self, checkout: str):
        """Sets the checkout of this MerchantUrls.

        URL to your checkout page  # noqa: E501

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

        self._checkout = checkout

    @property
    def confirmation(self) -> str:
        """Gets the confirmation of this MerchantUrls.

        URL to your confirmation page. This is where customers will be redirected after completing their purchase.  # noqa: E501

        :return: The confirmation of this MerchantUrls.
        :rtype: str
        """
        return self._confirmation

    @confirmation.setter
    def confirmation(self, confirmation: str):
        """Sets the confirmation of this MerchantUrls.

        URL to your confirmation page. This is where customers will be redirected after completing their purchase.  # noqa: E501

        :param confirmation: The confirmation of this MerchantUrls.
        :type confirmation: str
        """

        self._confirmation = confirmation

    @property
    def push(self) -> str:
        """Gets the push of this MerchantUrls.

        URL that will be requested when an order is completed. Should be different than checkout and confirmation  # noqa: E501

        :return: The push of this MerchantUrls.
        :rtype: str
        """
        return self._push

    @push.setter
    def push(self, push: str):
        """Sets the push of this MerchantUrls.

        URL that will be requested when an order is completed. Should be different than checkout and confirmation  # noqa: E501

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

        self._push = push
