From 0ee6af5256ad35da659c80e879adc755911ca1ef Mon Sep 17 00:00:00 2001
From: Ingenico ePayments <jenkins@isaac.nl>
Date: Thu, 9 Mar 2017 10:28:09 +0100
Subject: [PATCH] Release 2.3.0.

---
 conf.py                                       |  6 ++--
 index.rst                                     |  2 +-
 .../domain/errors/definitions/api_error.py    | 30 +++++++++++++++++++
 ...card_payment_method_specific_input_base.py | 15 ++++++++++
 ...ect_debit_payment_method_specific_input.py | 15 ++++++++++
 ...ect_debit_payment_method_specific_input.py | 15 ++++++++++
 ingenico/connect/sdk/meta_data_provider.py    |  2 +-
 ingenico/connect/sdk/session.py               |  3 +-
 setup.py                                      |  2 +-
 9 files changed, 82 insertions(+), 8 deletions(-)

diff --git a/conf.py b/conf.py
index 0d2a5097a..62218a4db 100644
--- a/conf.py
+++ b/conf.py
@@ -62,9 +62,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = u'2.2.0'
+version = u'2.3.0'
 # The full version, including alpha/beta/rc tags.
-release = u'2.2.0'
+release = u'2.3.0'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
@@ -138,7 +138,7 @@
 # The name for this set of Sphinx documents.
 # "<project> v<release> documentation" by default.
 #
-# html_title = u'Python SDK v2.2.0'
+# html_title = u'Python SDK v2.3.0'
 
 # A shorter title for the navigation bar.  Default is the same as html_title.
 #
diff --git a/index.rst b/index.rst
index f64763bee..b3b90b90c 100644
--- a/index.rst
+++ b/index.rst
@@ -4,7 +4,7 @@
 .. toctree::
    :maxdepth: 10
 
-.. include:: readme.rst
+.. include:: README.rst
 
 API Reference
 =============
diff --git a/ingenico/connect/sdk/domain/errors/definitions/api_error.py b/ingenico/connect/sdk/domain/errors/definitions/api_error.py
index 07103604c..f30ec209a 100644
--- a/ingenico/connect/sdk/domain/errors/definitions/api_error.py
+++ b/ingenico/connect/sdk/domain/errors/definitions/api_error.py
@@ -12,12 +12,25 @@ class APIError(DataObject):
     See also https://developer.globalcollect.com/documentation/api/server/#schema_APIError
     """
 
+    __category = None
     __code = None
     __http_status_code = None
+    __id = None
     __message = None
     __property_name = None
     __request_id = None
 
+    @property
+    def category(self):
+        """
+        str
+        """
+        return self.__category
+
+    @category.setter
+    def category(self, value):
+        self.__category = value
+
     @property
     def code(self):
         """
@@ -40,6 +53,17 @@ def http_status_code(self):
     def http_status_code(self, value):
         self.__http_status_code = value
 
+    @property
+    def id(self):
+        """
+        str
+        """
+        return self.__id
+
+    @id.setter
+    def id(self, value):
+        self.__id = value
+
     @property
     def message(self):
         """
@@ -75,8 +99,10 @@ def request_id(self, value):
 
     def to_dictionary(self):
         dictionary = super(APIError, self).to_dictionary()
+        self._add_to_dictionary(dictionary, 'category', self.category)
         self._add_to_dictionary(dictionary, 'code', self.code)
         self._add_to_dictionary(dictionary, 'httpStatusCode', self.http_status_code)
+        self._add_to_dictionary(dictionary, 'id', self.id)
         self._add_to_dictionary(dictionary, 'message', self.message)
         self._add_to_dictionary(dictionary, 'propertyName', self.property_name)
         self._add_to_dictionary(dictionary, 'requestId', self.request_id)
@@ -84,10 +110,14 @@ def to_dictionary(self):
 
     def from_dictionary(self, dictionary):
         super(APIError, self).from_dictionary(dictionary)
+        if 'category' in dictionary:
+            self.category = dictionary['category']
         if 'code' in dictionary:
             self.code = dictionary['code']
         if 'httpStatusCode' in dictionary:
             self.http_status_code = dictionary['httpStatusCode']
+        if 'id' in dictionary:
+            self.id = dictionary['id']
         if 'message' in dictionary:
             self.message = dictionary['message']
         if 'propertyName' in dictionary:
diff --git a/ingenico/connect/sdk/domain/payment/definitions/card_payment_method_specific_input_base.py b/ingenico/connect/sdk/domain/payment/definitions/card_payment_method_specific_input_base.py
index 00e87bff8..c2ecd19a4 100644
--- a/ingenico/connect/sdk/domain/payment/definitions/card_payment_method_specific_input_base.py
+++ b/ingenico/connect/sdk/domain/payment/definitions/card_payment_method_specific_input_base.py
@@ -19,6 +19,7 @@ class CardPaymentMethodSpecificInputBase(AbstractPaymentMethodSpecificInput):
     __skip_authentication = None
     __skip_fraud_service = None
     __token = None
+    __tokenize = None
 
     @property
     def authorization_mode(self):
@@ -97,6 +98,17 @@ def token(self):
     def token(self, value):
         self.__token = value
 
+    @property
+    def tokenize(self):
+        """
+        bool
+        """
+        return self.__tokenize
+
+    @tokenize.setter
+    def tokenize(self, value):
+        self.__tokenize = value
+
     def to_dictionary(self):
         dictionary = super(CardPaymentMethodSpecificInputBase, self).to_dictionary()
         self._add_to_dictionary(dictionary, 'authorizationMode', self.authorization_mode)
@@ -106,6 +118,7 @@ def to_dictionary(self):
         self._add_to_dictionary(dictionary, 'skipAuthentication', self.skip_authentication)
         self._add_to_dictionary(dictionary, 'skipFraudService', self.skip_fraud_service)
         self._add_to_dictionary(dictionary, 'token', self.token)
+        self._add_to_dictionary(dictionary, 'tokenize', self.tokenize)
         return dictionary
 
     def from_dictionary(self, dictionary):
@@ -124,4 +137,6 @@ def from_dictionary(self, dictionary):
             self.skip_fraud_service = dictionary['skipFraudService']
         if 'token' in dictionary:
             self.token = dictionary['token']
+        if 'tokenize' in dictionary:
+            self.tokenize = dictionary['tokenize']
         return self
diff --git a/ingenico/connect/sdk/domain/payment/definitions/non_sepa_direct_debit_payment_method_specific_input.py b/ingenico/connect/sdk/domain/payment/definitions/non_sepa_direct_debit_payment_method_specific_input.py
index c364b4484..141beef4f 100644
--- a/ingenico/connect/sdk/domain/payment/definitions/non_sepa_direct_debit_payment_method_specific_input.py
+++ b/ingenico/connect/sdk/domain/payment/definitions/non_sepa_direct_debit_payment_method_specific_input.py
@@ -19,6 +19,7 @@ class NonSepaDirectDebitPaymentMethodSpecificInput(AbstractPaymentMethodSpecific
     __payment_product705_specific_input = None
     __recurring_payment_sequence_indicator = None
     __token = None
+    __tokenize = None
 
     @property
     def date_collect(self):
@@ -86,6 +87,17 @@ def token(self):
     def token(self, value):
         self.__token = value
 
+    @property
+    def tokenize(self):
+        """
+        bool
+        """
+        return self.__tokenize
+
+    @tokenize.setter
+    def tokenize(self, value):
+        self.__tokenize = value
+
     def to_dictionary(self):
         dictionary = super(NonSepaDirectDebitPaymentMethodSpecificInput, self).to_dictionary()
         self._add_to_dictionary(dictionary, 'dateCollect', self.date_collect)
@@ -94,6 +106,7 @@ def to_dictionary(self):
         self._add_to_dictionary(dictionary, 'paymentProduct705SpecificInput', self.payment_product705_specific_input)
         self._add_to_dictionary(dictionary, 'recurringPaymentSequenceIndicator', self.recurring_payment_sequence_indicator)
         self._add_to_dictionary(dictionary, 'token', self.token)
+        self._add_to_dictionary(dictionary, 'tokenize', self.tokenize)
         return dictionary
 
     def from_dictionary(self, dictionary):
@@ -113,4 +126,6 @@ def from_dictionary(self, dictionary):
             self.recurring_payment_sequence_indicator = dictionary['recurringPaymentSequenceIndicator']
         if 'token' in dictionary:
             self.token = dictionary['token']
+        if 'tokenize' in dictionary:
+            self.tokenize = dictionary['tokenize']
         return self
diff --git a/ingenico/connect/sdk/domain/payment/definitions/sepa_direct_debit_payment_method_specific_input.py b/ingenico/connect/sdk/domain/payment/definitions/sepa_direct_debit_payment_method_specific_input.py
index f11985b29..427a66a87 100644
--- a/ingenico/connect/sdk/domain/payment/definitions/sepa_direct_debit_payment_method_specific_input.py
+++ b/ingenico/connect/sdk/domain/payment/definitions/sepa_direct_debit_payment_method_specific_input.py
@@ -17,6 +17,7 @@ class SepaDirectDebitPaymentMethodSpecificInput(AbstractPaymentMethodSpecificInp
     __is_recurring = None
     __recurring_payment_sequence_indicator = None
     __token = None
+    __tokenize = None
 
     @property
     def date_collect(self):
@@ -73,6 +74,17 @@ def token(self):
     def token(self, value):
         self.__token = value
 
+    @property
+    def tokenize(self):
+        """
+        bool
+        """
+        return self.__tokenize
+
+    @tokenize.setter
+    def tokenize(self, value):
+        self.__tokenize = value
+
     def to_dictionary(self):
         dictionary = super(SepaDirectDebitPaymentMethodSpecificInput, self).to_dictionary()
         self._add_to_dictionary(dictionary, 'dateCollect', self.date_collect)
@@ -80,6 +92,7 @@ def to_dictionary(self):
         self._add_to_dictionary(dictionary, 'isRecurring', self.is_recurring)
         self._add_to_dictionary(dictionary, 'recurringPaymentSequenceIndicator', self.recurring_payment_sequence_indicator)
         self._add_to_dictionary(dictionary, 'token', self.token)
+        self._add_to_dictionary(dictionary, 'tokenize', self.tokenize)
         return dictionary
 
     def from_dictionary(self, dictionary):
@@ -94,4 +107,6 @@ def from_dictionary(self, dictionary):
             self.recurring_payment_sequence_indicator = dictionary['recurringPaymentSequenceIndicator']
         if 'token' in dictionary:
             self.token = dictionary['token']
+        if 'tokenize' in dictionary:
+            self.tokenize = dictionary['tokenize']
         return self
diff --git a/ingenico/connect/sdk/meta_data_provider.py b/ingenico/connect/sdk/meta_data_provider.py
index 2e195d88d..0fa972df0 100644
--- a/ingenico/connect/sdk/meta_data_provider.py
+++ b/ingenico/connect/sdk/meta_data_provider.py
@@ -21,7 +21,7 @@ class MetaDataProvider:
     """
     Provides meta info about the server.
     """
-    __SDK_VERSION = "2.2.0"
+    __SDK_VERSION = "2.3.0"
     __SERVER_META_INFO_HEADER = "X-GCS-ServerMetaInfo"
     __prohibited_headers = [__SERVER_META_INFO_HEADER, "X-GCS-Idempotence-Key",
                             "Date", "Content-Type", "Authorization"]
diff --git a/ingenico/connect/sdk/session.py b/ingenico/connect/sdk/session.py
index 70f7db8dd..b21e15409 100644
--- a/ingenico/connect/sdk/session.py
+++ b/ingenico/connect/sdk/session.py
@@ -54,7 +54,6 @@ def authenticator(self):
     @property
     def meta_data_provider(self):
         """
-        :return: The MetaDataProvider object associated with this session. Never
-        None.
+        :return: The MetaDataProvider object associated with this session. Never None.
         """
         return self.__meta_data_provider
diff --git a/setup.py b/setup.py
index c8a43c90c..f65a5b980 100644
--- a/setup.py
+++ b/setup.py
@@ -21,7 +21,7 @@ def test_collector():
 
 setup(
     name="connect-sdk-python2",
-    version="2.2.0",
+    version="2.3.0",
     author="Ingenico ePayments",
     author_email="github@epay.ingenico.com",
     description="SDK to communicate with the GlobalCollect platform using the Ingenico Connect Server API",