/**
  * Function should return structure definition for blobs or array variables
  * @return array
  */
 public function get_structure_definition()
 {
     $customer_obj = new S2P_SDK_Structure_Customer();
     $address_obj = new S2P_SDK_Structure_Address();
     $status_obj = new S2P_SDK_Structure_Status();
     return array(array('name' => 'id', 'external_name' => 'ID', 'display_name' => self::s2p_t('Preapproval ID'), 'type' => S2P_SDK_VTYPE_INT, 'default' => 0, 'regexp' => '^\\d{1,12}$'), array('name' => 'created', 'external_name' => 'Created', 'display_name' => self::s2p_t('Preapproval creation date and time'), 'type' => S2P_SDK_VTYPE_DATETIME, 'default' => ''), array('name' => 'methodid', 'external_name' => 'MethodID', 'display_name' => self::s2p_t('Preapproval method ID'), 'type' => S2P_SDK_VTYPE_INT, 'regexp' => '^\\d{1,12}$', 'default' => 0), array('name' => 'siteid', 'external_name' => 'SiteID', 'display_name' => self::s2p_t('Preapproval site ID'), 'type' => S2P_SDK_VTYPE_INT, 'regexp' => '^\\d{1,12}$', 'default' => 0), array('name' => 'merchantpreapprovalid', 'external_name' => 'MerchantPreapprovalID', 'display_name' => self::s2p_t('Preapproval merchant assigned ID'), 'type' => S2P_SDK_VTYPE_STRING, 'default' => ''), array('name' => 'recurringperiod', 'external_name' => 'RecurringPeriod', 'display_name' => self::s2p_t('Preapproval recurring period'), 'type' => S2P_SDK_VTYPE_INT, 'default' => 0, 'regexp' => '^\\d{1,12}$'), array('name' => 'preapprovedmaximumamount', 'external_name' => 'PreapprovedMaximumAmount', 'display_name' => self::s2p_t('Preapproval maximum amount'), 'type' => S2P_SDK_VTYPE_INT, 'default' => 0, 'regexp' => '^\\d{1,12}$'), array('name' => 'currency', 'external_name' => 'Currency', 'display_name' => self::s2p_t('Preapproval currency'), 'type' => S2P_SDK_VTYPE_STRING, 'default' => '', 'regexp' => '^[A-Z]{3}$'), array('name' => 'returnurl', 'external_name' => 'ReturnURL', 'display_name' => self::s2p_t('Preapproval return URL'), 'type' => S2P_SDK_VTYPE_STRING, 'default' => '', 'regexp' => '^(http(s)?(:\\/\\/|%3A%2F%2F).+){1,512}$'), array('name' => 'description', 'external_name' => 'Description', 'display_name' => self::s2p_t('Preapproval description'), 'type' => S2P_SDK_VTYPE_STRING, 'regexp' => '^.{1,255}$', 'default' => ''), array('name' => 'customer', 'external_name' => 'Customer', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $customer_obj->get_structure_definition()), array('name' => 'billingaddress', 'external_name' => 'BillingAddress', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $address_obj->get_structure_definition()), array('name' => 'status', 'external_name' => 'Status', 'display_name' => self::s2p_t('Preapproval ID'), 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $status_obj->get_structure_definition()), array('name' => 'redirecturl', 'external_name' => 'RedirectURL', 'display_name' => self::s2p_t('Preapproval redirect URL'), 'type' => S2P_SDK_VTYPE_STRING, 'default' => '', 'regexp' => '^(http(s)?(:\\/\\/|%3A%2F%2F).+){1,512}$'));
 }
 /**
  * Function should return structure definition for blobs or array variables
  * @return array
  */
 public function get_structure_definition()
 {
     $customer_obj = new S2P_SDK_Structure_Customer();
     $refund_details_obj = new S2P_SDK_Structure_Refund_Details();
     $address_obj = new S2P_SDK_Structure_Address();
     return array(array('name' => 'name', 'external_name' => 'Name', 'display_name' => self::s2p_t('Refund type name'), 'type' => S2P_SDK_VTYPE_STRING, 'default' => ''), array('name' => 'id', 'external_name' => 'ID', 'display_name' => self::s2p_t('Refund type ID'), 'type' => S2P_SDK_VTYPE_INT, 'default' => 0, 'regexp' => '^\\d{1,12}$'), array('name' => 'allowspartialrefund', 'external_name' => 'AllowsPartialRefund', 'display_name' => self::s2p_t('Refund allows partial refund'), 'type' => S2P_SDK_VTYPE_BOOL, 'default' => false), array('name' => 'customer', 'external_name' => 'Customer', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $customer_obj->get_structure_definition()), array('name' => 'billingaddress', 'external_name' => 'BillingAddress', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $address_obj->get_structure_definition()), array('name' => 'bankaddress', 'external_name' => 'BankAddress', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $address_obj->get_structure_definition()), array('name' => 'details', 'external_name' => 'Details', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $refund_details_obj->get_structure_definition()));
 }
 /**
  * Function should return structure definition for blobs or array variables
  * @return array
  */
 public function get_structure_definition()
 {
     $customer_obj = new S2P_SDK_Structure_Customer();
     $refund_details_obj = new S2P_SDK_Structure_Refund_Details();
     $address_obj = new S2P_SDK_Structure_Address();
     $article_obj = new S2P_SDK_Structure_Article();
     return array(array('name' => 'id', 'external_name' => 'ID', 'display_name' => self::s2p_t('Refund ID'), 'type' => S2P_SDK_VTYPE_INT, 'default' => 0, 'regexp' => '^\\d{1,12}$'), array('name' => 'merchanttransactionid', 'external_name' => 'MerchantTransactionID', 'display_name' => self::s2p_t('Refund merchant assigned transaction ID'), 'type' => S2P_SDK_VTYPE_STRING, 'default' => ''), array('name' => 'amount', 'external_name' => 'Amount', 'display_name' => self::s2p_t('Refund amount'), 'type' => S2P_SDK_VTYPE_INT, 'default' => 0, 'regexp' => '^\\d{1,12}$'), array('name' => 'description', 'external_name' => 'Description', 'display_name' => self::s2p_t('Refund description'), 'type' => S2P_SDK_VTYPE_STRING, 'regexp' => '^.{1,255}$'), array('name' => 'details', 'external_name' => 'Details', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $refund_details_obj->get_structure_definition()), array('name' => 'customer', 'external_name' => 'Customer', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $customer_obj->get_structure_definition()), array('name' => 'billingaddress', 'external_name' => 'BillingAddress', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $address_obj->get_structure_definition()), array('name' => 'bankaddress', 'external_name' => 'BankAddress', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $address_obj->get_structure_definition()), array('name' => 'articles', 'external_name' => 'Articles', 'type' => S2P_SDK_VTYPE_BLARRAY, 'default' => null, 'structure' => $article_obj->get_structure_definition()), array('name' => 'tokenlifetime', 'external_name' => 'TokenLifetime', 'display_name' => self::s2p_t('Refund token lifetime'), 'type' => S2P_SDK_VTYPE_INT, 'regexp' => '^\\d{1,12}$'));
 }
 /**
  * Function should return structure definition for blobs or array variables
  * @return array
  */
 public function get_structure_definition()
 {
     $customer_obj = new S2P_SDK_Structure_Customer();
     $address_obj = new S2P_SDK_Structure_Address();
     $article_obj = new S2P_SDK_Structure_Article();
     $payment_details_obj = new S2P_SDK_Structure_Payment_Details();
     return array(array('name' => 'skinid', 'external_name' => 'SkinID', 'display_name' => self::s2p_t('Skin ID to be used'), 'type' => S2P_SDK_VTYPE_INT, 'default' => null, 'regexp' => '^\\d{1,12}$'), array('name' => 'merchanttransactionid', 'external_name' => 'MerchantTransactionID', 'display_name' => self::s2p_t('Payment merchant assigned transaction ID'), 'type' => S2P_SDK_VTYPE_STRING, 'default' => '', 'regexp' => '^[0-9a-zA-Z_-]{1,50}$'), array('name' => 'amount', 'external_name' => 'Amount', 'display_name' => self::s2p_t('Payment amount'), 'type' => S2P_SDK_VTYPE_INT, 'default' => 0, 'regexp' => '^\\d{1,12}$'), array('name' => 'currency', 'external_name' => 'Currency', 'display_name' => self::s2p_t('Payment currency'), 'type' => S2P_SDK_VTYPE_STRING, 'default' => null, 'regexp' => '^[A-Z]{3}$', 'value_source' => S2P_SDK_Values_Source::TYPE_CURRENCY), array('name' => 'returnurl', 'external_name' => 'ReturnURL', 'display_name' => self::s2p_t('Payment return URL'), 'type' => S2P_SDK_VTYPE_STRING, 'default' => '', 'regexp' => '^(http(s)?(:\\/\\/|%3A%2F%2F).+){1,512}$', 'check_constant' => 'S2P_SDK_PAYMENT_RETURN_URL'), array('name' => 'description', 'external_name' => 'Description', 'display_name' => self::s2p_t('Payment description'), 'type' => S2P_SDK_VTYPE_STRING, 'regexp' => '^.{1,255}$'), array('name' => 'preapprovalid', 'external_name' => 'PreapprovalID', 'display_name' => self::s2p_t('Payment preapproval ID'), 'type' => S2P_SDK_VTYPE_INT, 'regexp' => '^\\d{1,12}$'), array('name' => 'methodid', 'external_name' => 'MethodID', 'display_name' => self::s2p_t('Payment method ID'), 'type' => S2P_SDK_VTYPE_INT, 'default' => null, 'regexp' => '^([0-9]{1,10})$', 'value_source' => S2P_SDK_Values_Source::TYPE_AVAILABLE_METHODS), array('name' => 'methodoptionid', 'external_name' => 'MethodOptionID', 'display_name' => self::s2p_t('Payment method option ID'), 'type' => S2P_SDK_VTYPE_INT, 'regexp' => '^([0-9]{1,10})$'), array('name' => 'guaranteed', 'external_name' => 'Guaranteed', 'type' => S2P_SDK_VTYPE_BOOL, 'display_name' => self::s2p_t('Try using guaranteed payment methods')), array('name' => 'redirectiniframe', 'external_name' => 'RedirectInIframe', 'display_name' => self::s2p_t('Payment redirect in IFrame'), 'type' => S2P_SDK_VTYPE_BOOL), array('name' => 'includemethodids', 'external_name' => 'IncludeMethodIDs', 'type' => S2P_SDK_VTYPE_ARRAY, 'array_type' => S2P_SDK_VTYPE_INT, 'default' => null), array('name' => 'excludemethodids', 'external_name' => 'ExcludeMethodIDs', 'type' => S2P_SDK_VTYPE_ARRAY, 'array_type' => S2P_SDK_VTYPE_INT, 'default' => null), array('name' => 'prioritizemethodids', 'external_name' => 'PrioritizeMethodIDs', 'type' => S2P_SDK_VTYPE_ARRAY, 'array_type' => S2P_SDK_VTYPE_INT, 'default' => null), array('name' => 'details', 'external_name' => 'Details', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $payment_details_obj->get_structure_definition()), array('name' => 'customparameters', 'external_name' => 'CustomParameters', 'type' => S2P_SDK_VTYPE_ARRAY, 'array_type' => S2P_SDK_VTYPE_STRING, 'array_numeric_keys' => false, 'default' => null), array('name' => 'customer', 'external_name' => 'Customer', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $customer_obj->get_structure_definition()), array('name' => 'billingaddress', 'external_name' => 'BillingAddress', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $address_obj->get_structure_definition()), array('name' => 'shippingaddress', 'external_name' => 'ShippingAddress', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $address_obj->get_structure_definition()), array('name' => 'articles', 'external_name' => 'Articles', 'type' => S2P_SDK_VTYPE_BLARRAY, 'default' => null, 'structure' => $article_obj->get_structure_definition()), array('name' => 'tokenlifetime', 'external_name' => 'TokenLifetime', 'display_name' => self::s2p_t('Payment token lifetime'), 'type' => S2P_SDK_VTYPE_INT, 'regexp' => '^\\d{1,12}$'));
 }
 /**
  * Function should return structure definition for blobs or array variables
  * @return array
  */
 public function get_structure_definition()
 {
     $customer_obj = new S2P_SDK_Structure_Customer();
     $refund_details_obj = new S2P_SDK_Structure_Refund_Details();
     $address_obj = new S2P_SDK_Structure_Address();
     $article_obj = new S2P_SDK_Structure_Article();
     $status_obj = new S2P_SDK_Structure_Status();
     return array(array('name' => 'id', 'external_name' => 'ID', 'display_name' => self::s2p_t('Refund ID'), 'type' => S2P_SDK_VTYPE_INT, 'default' => 0, 'regexp' => '^\\d{1,12}$'), array('name' => 'created', 'external_name' => 'Created', 'display_name' => self::s2p_t('Refund creation date and time'), 'type' => S2P_SDK_VTYPE_DATETIME, 'default' => ''), array('name' => 'merchanttransactionid', 'external_name' => 'MerchantTransactionID', 'display_name' => self::s2p_t('Refund merchant assigned transaction ID'), 'type' => S2P_SDK_VTYPE_STRING, 'default' => ''), array('name' => 'initialpaymentid', 'external_name' => 'InitialPaymentID', 'display_name' => self::s2p_t('Refund initial payment ID'), 'type' => S2P_SDK_VTYPE_INT, 'default' => 0, 'regexp' => '^\\d{1,12}$'), array('name' => 'amount', 'external_name' => 'Amount', 'display_name' => self::s2p_t('Refund amount'), 'type' => S2P_SDK_VTYPE_INT, 'default' => 0, 'regexp' => '^\\d{1,12}$'), array('name' => 'currency', 'external_name' => 'Currency', 'display_name' => self::s2p_t('Refund currency'), 'type' => S2P_SDK_VTYPE_STRING, 'default' => '', 'regexp' => '^[A-Z]{3}$', 'value_source' => S2P_SDK_Values_Source::TYPE_CURRENCY), array('name' => 'description', 'external_name' => 'Description', 'display_name' => self::s2p_t('Refund description'), 'type' => S2P_SDK_VTYPE_STRING, 'regexp' => '^.{1,255}$'), array('name' => 'typeid', 'external_name' => 'TypeID', 'display_name' => self::s2p_t('Refund type ID'), 'type' => S2P_SDK_VTYPE_INT, 'regexp' => '^\\d{1,12}$'), array('name' => 'siteid', 'external_name' => 'SiteID', 'display_name' => self::s2p_t('Refund site ID'), 'type' => S2P_SDK_VTYPE_INT, 'regexp' => '^\\d{1,12}$'), array('name' => 'details', 'external_name' => 'Details', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $refund_details_obj->get_structure_definition()), array('name' => 'customer', 'external_name' => 'Customer', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $customer_obj->get_structure_definition()), array('name' => 'billingaddress', 'external_name' => 'BillingAddress', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $address_obj->get_structure_definition()), array('name' => 'bankaddress', 'external_name' => 'BankAddress', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $address_obj->get_structure_definition()), array('name' => 'articles', 'external_name' => 'Articles', 'type' => S2P_SDK_VTYPE_BLARRAY, 'default' => null, 'structure' => $article_obj->get_structure_definition()), array('name' => 'status', 'external_name' => 'Status', 'type' => S2P_SDK_VTYPE_BLOB, 'structure' => $status_obj->get_structure_definition()));
 }
 /**
  * Function should return structure definition for blobs or array variables
  * @return array
  */
 public function get_structure_definition()
 {
     $status_obj = new S2P_SDK_Structure_Status();
     $customer_obj = new S2P_SDK_Structure_Customer();
     $address_obj = new S2P_SDK_Structure_Address();
     $article_obj = new S2P_SDK_Structure_Article();
     $payment_details_obj = new S2P_SDK_Structure_Payment_Details();
     $reference_details_obj = new S2P_SDK_Structure_Payment_Reference_Details();
     return array(array('name' => 'id', 'external_name' => 'ID', 'display_name' => self::s2p_t('Payment ID'), 'type' => S2P_SDK_VTYPE_INT, 'default' => 0, 'regexp' => '^\\d{1,12}$'), array('name' => 'skinid', 'external_name' => 'SkinID', 'display_name' => self::s2p_t('Skin ID to be used'), 'type' => S2P_SDK_VTYPE_INT, 'default' => 0, 'regexp' => '^\\d{1,12}$'), array('name' => 'created', 'external_name' => 'Created', 'display_name' => self::s2p_t('Payment creation time'), 'type' => S2P_SDK_VTYPE_DATETIME, 'default' => ''), array('name' => 'merchanttransactionid', 'external_name' => 'MerchantTransactionID', 'display_name' => self::s2p_t('Payment merchant assigned transaction ID'), 'type' => S2P_SDK_VTYPE_STRING, 'default' => '', 'regexp' => '^[0-9a-zA-Z_-]{1,50}$'), array('name' => 'amount', 'external_name' => 'Amount', 'display_name' => self::s2p_t('Payment amount'), 'type' => S2P_SDK_VTYPE_INT, 'default' => 0, 'regexp' => '^\\d{1,12}$'), array('name' => 'currency', 'external_name' => 'Currency', 'display_name' => self::s2p_t('Payment currency'), 'type' => S2P_SDK_VTYPE_STRING, 'default' => '', 'regexp' => '^[A-Z]{3}$', 'value_source' => S2P_SDK_Values_Source::TYPE_CURRENCY), array('name' => 'returnurl', 'external_name' => 'ReturnURL', 'display_name' => self::s2p_t('Payment return URL'), 'type' => S2P_SDK_VTYPE_STRING, 'default' => '', 'regexp' => '^(http(s)?(:\\/\\/|%3A%2F%2F).+){1,512}$'), array('name' => 'description', 'external_name' => 'Description', 'display_name' => self::s2p_t('Payment description'), 'type' => S2P_SDK_VTYPE_STRING, 'default' => '', 'regexp' => '^.{1,255}$'), array('name' => 'methodid', 'external_name' => 'MethodID', 'display_name' => self::s2p_t('Payment currency'), 'type' => S2P_SDK_VTYPE_INT, 'default' => 0, 'regexp' => '^([0-9]{1,10})$'), array('name' => 'methodoptionid', 'external_name' => 'MethodOptionID', 'display_name' => self::s2p_t('Payment method ID'), 'type' => S2P_SDK_VTYPE_INT, 'default' => 0, 'regexp' => '^([0-9]{1,10})$'), array('name' => 'includemethodids', 'external_name' => 'IncludeMethodIDs', 'type' => S2P_SDK_VTYPE_ARRAY, 'array_type' => S2P_SDK_VTYPE_INT, 'default' => null), array('name' => 'excludemethodids', 'external_name' => 'ExcludeMethodIDs', 'type' => S2P_SDK_VTYPE_ARRAY, 'array_type' => S2P_SDK_VTYPE_INT, 'default' => null), array('name' => 'prioritizemethodids', 'external_name' => 'PrioritizeMethodIDs', 'type' => S2P_SDK_VTYPE_ARRAY, 'array_type' => S2P_SDK_VTYPE_INT, 'default' => null), array('name' => 'siteid', 'external_name' => 'SiteID', 'display_name' => self::s2p_t('Payment site ID'), 'type' => S2P_SDK_VTYPE_INT, 'default' => 0, 'regexp' => '^([0-9]{1,10})$'), array('name' => 'notificationdatetime', 'external_name' => 'NotificationDateTime', 'display_name' => self::s2p_t('Date and time of payment notification'), 'type' => S2P_SDK_VTYPE_DATETIME, 'default' => ''), array('name' => 'customer', 'external_name' => 'Customer', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $customer_obj->get_structure_definition()), array('name' => 'billingaddress', 'external_name' => 'BillingAddress', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $address_obj->get_structure_definition()), array('name' => 'shippingaddress', 'external_name' => 'ShippingAddress', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $address_obj->get_structure_definition()), array('name' => 'articles', 'external_name' => 'Articles', 'type' => S2P_SDK_VTYPE_BLARRAY, 'default' => null, 'structure' => $article_obj->get_structure_definition()), array('name' => 'details', 'external_name' => 'Details', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $payment_details_obj->get_structure_definition()), array('name' => 'referencedetails', 'external_name' => 'ReferenceDetails', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $reference_details_obj->get_structure_definition()), array('name' => 'customparameters', 'external_name' => 'CustomParameters', 'type' => S2P_SDK_VTYPE_ARRAY, 'array_type' => S2P_SDK_VTYPE_STRING, 'default' => null), array('name' => 'preapprovalid', 'external_name' => 'PreapprovalID', 'display_name' => self::s2p_t('Payment preapproval ID'), 'type' => S2P_SDK_VTYPE_INT, 'default' => 0, 'regexp' => '^\\d{1,12}$'), array('name' => 'status', 'external_name' => 'Status', 'display_name' => self::s2p_t('Payment status'), 'type' => S2P_SDK_VTYPE_BLOB, 'structure' => $status_obj->get_structure_definition()), array('name' => 'methodtransactionid', 'external_name' => 'MethodTransactionID', 'type' => S2P_SDK_VTYPE_STRING, 'default' => ''), array('name' => 'tokenlifetime', 'external_name' => 'TokenLifetime', 'display_name' => self::s2p_t('Payment token lifetime'), 'type' => S2P_SDK_VTYPE_INT, 'default' => 0, 'regexp' => '^\\d{1,12}$'), array('name' => 'redirectiniframe', 'external_name' => 'RedirectInIframe', 'display_name' => self::s2p_t('Payment redirect in IFrame'), 'type' => S2P_SDK_VTYPE_BOOL), array('name' => 'redirecturl', 'external_name' => 'RedirectURL', 'display_name' => self::s2p_t('Payment redirect URL'), 'type' => S2P_SDK_VTYPE_STRING, 'default' => '', 'regexp' => '^(http(s)?(:\\/\\/|%3A%2F%2F).+){1,512}$'));
 }
 /**
  * Function should return structure definition for blobs or array variables
  * @return array
  */
 public function get_structure_definition()
 {
     $customer_obj = new S2P_SDK_Structure_Customer();
     $address_obj = new S2P_SDK_Structure_Address();
     return array(array('name' => 'merchantpreapprovalid', 'external_name' => 'MerchantPreapprovalID', 'display_name' => self::s2p_t('Preapproval merchant assigned ID'), 'type' => S2P_SDK_VTYPE_STRING, 'default' => ''), array('name' => 'methodid', 'external_name' => 'MethodID', 'type' => S2P_SDK_VTYPE_INT, 'display_name' => self::s2p_t('Preapproval method ID'), 'regexp' => '^\\d{1,12}$', 'default' => 0, 'value_source' => S2P_SDK_Values_Source::TYPE_RECURRING_METHODS), array('name' => 'recurringperiod', 'external_name' => 'RecurringPeriod', 'display_name' => self::s2p_t('Preapproval recurring period'), 'type' => S2P_SDK_VTYPE_INT, 'default' => 0, 'regexp' => '^\\d{1,12}$'), array('name' => 'description', 'external_name' => 'Description', 'display_name' => self::s2p_t('Preapproval description'), 'type' => S2P_SDK_VTYPE_STRING, 'regexp' => '^.{1,255}$', 'default' => ''), array('name' => 'preapprovedmaximumamount', 'external_name' => 'PreapprovedMaximumAmount', 'display_name' => self::s2p_t('Preapproval maximum amount'), 'type' => S2P_SDK_VTYPE_INT, 'default' => 0, 'regexp' => '^\\d{1,12}$'), array('name' => 'currency', 'external_name' => 'Currency', 'display_name' => self::s2p_t('Preapproval currency'), 'type' => S2P_SDK_VTYPE_STRING, 'default' => '', 'regexp' => '^[A-Z]{3}$', 'value_source' => S2P_SDK_Values_Source::TYPE_CURRENCY), array('name' => 'returnurl', 'external_name' => 'ReturnURL', 'display_name' => self::s2p_t('Preapproval return URL'), 'type' => S2P_SDK_VTYPE_STRING, 'default' => '', 'regexp' => '^(http(s)?(:\\/\\/|%3A%2F%2F).+){1,512}$', 'check_constant' => 'S2P_SDK_PAYMENT_RETURN_URL'), array('name' => 'customer', 'external_name' => 'Customer', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $customer_obj->get_structure_definition()), array('name' => 'billingaddress', 'external_name' => 'BillingAddress', 'type' => S2P_SDK_VTYPE_BLOB, 'default' => null, 'structure' => $address_obj->get_structure_definition()));
 }