Source code for worldline.acquiring.sdk.v1.domain.api_payment_resource
# -*- coding: utf-8 -*-
#
# This file was automatically generated.
#
from datetime import datetime
from typing import List, Optional
from .amount_data import AmountData
from .api_references_for_responses import ApiReferencesForResponses
from .card_payment_data_for_resource import CardPaymentDataForResource
from .sub_operation import SubOperation
from worldline.acquiring.sdk.domain.data_object import DataObject
[docs]
class ApiPaymentResource(DataObject):
__card_payment_data: Optional[CardPaymentDataForResource] = None
__initial_authorization_code: Optional[str] = None
__operations: Optional[List[SubOperation]] = None
__payment_id: Optional[str] = None
__references: Optional[ApiReferencesForResponses] = None
__retry_after: Optional[str] = None
__status: Optional[str] = None
__status_timestamp: Optional[datetime] = None
__total_authorized_amount: Optional[AmountData] = None
@property
def card_payment_data(self) -> Optional[CardPaymentDataForResource]:
"""
Type: :class:`worldline.acquiring.sdk.v1.domain.card_payment_data_for_resource.CardPaymentDataForResource`
"""
return self.__card_payment_data
@card_payment_data.setter
def card_payment_data(self, value: Optional[CardPaymentDataForResource]) -> None:
self.__card_payment_data = value
@property
def initial_authorization_code(self) -> Optional[str]:
"""
| Authorization approval code
Type: str
"""
return self.__initial_authorization_code
@initial_authorization_code.setter
def initial_authorization_code(self, value: Optional[str]) -> None:
self.__initial_authorization_code = value
@property
def operations(self) -> Optional[List[SubOperation]]:
"""
Type: list[:class:`worldline.acquiring.sdk.v1.domain.sub_operation.SubOperation`]
"""
return self.__operations
@operations.setter
def operations(self, value: Optional[List[SubOperation]]) -> None:
self.__operations = value
@property
def payment_id(self) -> Optional[str]:
"""
| the ID of the payment
Type: str
"""
return self.__payment_id
@payment_id.setter
def payment_id(self, value: Optional[str]) -> None:
self.__payment_id = value
@property
def references(self) -> Optional[ApiReferencesForResponses]:
"""
| A set of references returned in responses
Type: :class:`worldline.acquiring.sdk.v1.domain.api_references_for_responses.ApiReferencesForResponses`
"""
return self.__references
@references.setter
def references(self, value: Optional[ApiReferencesForResponses]) -> None:
self.__references = value
@property
def retry_after(self) -> Optional[str]:
"""
| The duration to wait after the initial submission before retrying the payment.
| Expressed using ISO 8601 duration format, ex: PT2H for 2 hours.
| This field is only present when the payment can be retried later.
| PT0 means that the payment can be retried immediately.
Type: str
"""
return self.__retry_after
@retry_after.setter
def retry_after(self, value: Optional[str]) -> None:
self.__retry_after = value
@property
def status(self) -> Optional[str]:
"""
| The status of the payment, refund or credit transfer
Type: str
"""
return self.__status
@status.setter
def status(self, value: Optional[str]) -> None:
self.__status = value
@property
def status_timestamp(self) -> Optional[datetime]:
"""
| Timestamp of the status in format yyyy-MM-ddTHH:mm:ssZ
Type: datetime
"""
return self.__status_timestamp
@status_timestamp.setter
def status_timestamp(self, value: Optional[datetime]) -> None:
self.__status_timestamp = value
@property
def total_authorized_amount(self) -> Optional[AmountData]:
"""
| Amount for the operation.
Type: :class:`worldline.acquiring.sdk.v1.domain.amount_data.AmountData`
"""
return self.__total_authorized_amount
@total_authorized_amount.setter
def total_authorized_amount(self, value: Optional[AmountData]) -> None:
self.__total_authorized_amount = value
[docs]
def to_dictionary(self) -> dict:
dictionary = super(ApiPaymentResource, self).to_dictionary()
if self.card_payment_data is not None:
dictionary['cardPaymentData'] = self.card_payment_data.to_dictionary()
if self.initial_authorization_code is not None:
dictionary['initialAuthorizationCode'] = self.initial_authorization_code
if self.operations is not None:
dictionary['operations'] = []
for element in self.operations:
if element is not None:
dictionary['operations'].append(element.to_dictionary())
if self.payment_id is not None:
dictionary['paymentId'] = self.payment_id
if self.references is not None:
dictionary['references'] = self.references.to_dictionary()
if self.retry_after is not None:
dictionary['retryAfter'] = self.retry_after
if self.status is not None:
dictionary['status'] = self.status
if self.status_timestamp is not None:
dictionary['statusTimestamp'] = DataObject.format_datetime(self.status_timestamp)
if self.total_authorized_amount is not None:
dictionary['totalAuthorizedAmount'] = self.total_authorized_amount.to_dictionary()
return dictionary
[docs]
def from_dictionary(self, dictionary: dict) -> 'ApiPaymentResource':
super(ApiPaymentResource, self).from_dictionary(dictionary)
if 'cardPaymentData' in dictionary:
if not isinstance(dictionary['cardPaymentData'], dict):
raise TypeError('value \'{}\' is not a dictionary'.format(dictionary['cardPaymentData']))
value = CardPaymentDataForResource()
self.card_payment_data = value.from_dictionary(dictionary['cardPaymentData'])
if 'initialAuthorizationCode' in dictionary:
self.initial_authorization_code = dictionary['initialAuthorizationCode']
if 'operations' in dictionary:
if not isinstance(dictionary['operations'], list):
raise TypeError('value \'{}\' is not a list'.format(dictionary['operations']))
self.operations = []
for element in dictionary['operations']:
value = SubOperation()
self.operations.append(value.from_dictionary(element))
if 'paymentId' in dictionary:
self.payment_id = dictionary['paymentId']
if 'references' in dictionary:
if not isinstance(dictionary['references'], dict):
raise TypeError('value \'{}\' is not a dictionary'.format(dictionary['references']))
value = ApiReferencesForResponses()
self.references = value.from_dictionary(dictionary['references'])
if 'retryAfter' in dictionary:
self.retry_after = dictionary['retryAfter']
if 'status' in dictionary:
self.status = dictionary['status']
if 'statusTimestamp' in dictionary:
self.status_timestamp = DataObject.parse_datetime(dictionary['statusTimestamp'])
if 'totalAuthorizedAmount' in dictionary:
if not isinstance(dictionary['totalAuthorizedAmount'], dict):
raise TypeError('value \'{}\' is not a dictionary'.format(dictionary['totalAuthorizedAmount']))
value = AmountData()
self.total_authorized_amount = value.from_dictionary(dictionary['totalAuthorizedAmount'])
return self