fortis-python-sdk 1.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (699) hide show
  1. fortis_python_sdk-1.0.0.dist-info/METADATA +183 -0
  2. fortis_python_sdk-1.0.0.dist-info/RECORD +699 -0
  3. fortis_python_sdk-1.0.0.dist-info/WHEEL +5 -0
  4. fortis_python_sdk-1.0.0.dist-info/licenses/LICENSE +28 -0
  5. fortis_python_sdk-1.0.0.dist-info/top_level.txt +1 -0
  6. fortisapi/__init__.py +12 -0
  7. fortisapi/api_helper.py +19 -0
  8. fortisapi/configuration.py +294 -0
  9. fortisapi/controllers/__init__.py +40 -0
  10. fortisapi/controllers/apple_pay_validate_merchant_controller.py +84 -0
  11. fortisapi/controllers/async_processing_controller.py +78 -0
  12. fortisapi/controllers/base_controller.py +67 -0
  13. fortisapi/controllers/batches_controller.py +179 -0
  14. fortisapi/controllers/calculate_surcharge_controller.py +76 -0
  15. fortisapi/controllers/contacts_controller.py +398 -0
  16. fortisapi/controllers/declined_recurring_transactions_controller.py +326 -0
  17. fortisapi/controllers/device_terms_controller.py +242 -0
  18. fortisapi/controllers/elements_controller.py +129 -0
  19. fortisapi/controllers/enterprise_link_redirect_controller.py +81 -0
  20. fortisapi/controllers/full_boarding_controller.py +85 -0
  21. fortisapi/controllers/level_3_data_controller.py +219 -0
  22. fortisapi/controllers/locations_controller.py +478 -0
  23. fortisapi/controllers/m_3_ds_authentication_controller.py +90 -0
  24. fortisapi/controllers/m_3_ds_transactions_controller.py +84 -0
  25. fortisapi/controllers/merchant_deposits_controller.py +295 -0
  26. fortisapi/controllers/merchant_details_controller.py +82 -0
  27. fortisapi/controllers/on_boarding_controller.py +100 -0
  28. fortisapi/controllers/paylinks_controller.py +396 -0
  29. fortisapi/controllers/payment_card_reader_token_controller.py +76 -0
  30. fortisapi/controllers/quick_invoices_controller.py +531 -0
  31. fortisapi/controllers/recurring_controller.py +545 -0
  32. fortisapi/controllers/reports_controller.py +209 -0
  33. fortisapi/controllers/signatures_controller.py +249 -0
  34. fortisapi/controllers/tags_controller.py +328 -0
  35. fortisapi/controllers/terminals_controller.py +304 -0
  36. fortisapi/controllers/tickets_controller.py +249 -0
  37. fortisapi/controllers/tokens_controller.py +679 -0
  38. fortisapi/controllers/transaction_ach_retries_controller.py +250 -0
  39. fortisapi/controllers/transactions_ach_controller.py +398 -0
  40. fortisapi/controllers/transactions_cash_controller.py +123 -0
  41. fortisapi/controllers/transactions_credit_card_controller.py +1796 -0
  42. fortisapi/controllers/transactions_ebt_card_controller.py +147 -0
  43. fortisapi/controllers/transactions_read_controller.py +248 -0
  44. fortisapi/controllers/transactions_updates_controller.py +435 -0
  45. fortisapi/controllers/webhooks_controller.py +493 -0
  46. fortisapi/exceptions/__init__.py +8 -0
  47. fortisapi/exceptions/api_exception.py +36 -0
  48. fortisapi/exceptions/response_401_token_exception.py +77 -0
  49. fortisapi/exceptions/response_412_exception.py +109 -0
  50. fortisapi/exceptions/response_error_exception.py +109 -0
  51. fortisapi/fortisapi_client.py +360 -0
  52. fortisapi/http/__init__.py +11 -0
  53. fortisapi/http/auth/__init__.py +8 -0
  54. fortisapi/http/auth/access_token.py +100 -0
  55. fortisapi/http/auth/developer_id.py +100 -0
  56. fortisapi/http/auth/user_api_key.py +100 -0
  57. fortisapi/http/auth/user_id.py +100 -0
  58. fortisapi/http/http_call_back.py +20 -0
  59. fortisapi/http/http_client_provider.py +23 -0
  60. fortisapi/http/http_method_enum.py +25 -0
  61. fortisapi/http/http_request.py +55 -0
  62. fortisapi/http/http_response.py +45 -0
  63. fortisapi/http/proxy_settings.py +50 -0
  64. fortisapi/models/__init__.py +636 -0
  65. fortisapi/models/account_info.py +519 -0
  66. fortisapi/models/account_type_12_enum.py +47 -0
  67. fortisapi/models/account_type_13_enum.py +51 -0
  68. fortisapi/models/account_type_16_enum.py +51 -0
  69. fortisapi/models/account_type_enum.py +83 -0
  70. fortisapi/models/account_vault.py +1408 -0
  71. fortisapi/models/account_vault_cau_log.py +201 -0
  72. fortisapi/models/account_vault_cau_product_transaction.py +754 -0
  73. fortisapi/models/ach_product_transaction.py +3048 -0
  74. fortisapi/models/ach_sec_code_1_enum.py +59 -0
  75. fortisapi/models/ach_sec_code_31_enum.py +61 -0
  76. fortisapi/models/ach_sec_code_3_enum.py +59 -0
  77. fortisapi/models/ach_sec_code_enum.py +67 -0
  78. fortisapi/models/acs_challenge_mandated_enum.py +52 -0
  79. fortisapi/models/action_enum.py +70 -0
  80. fortisapi/models/active_recurring.py +975 -0
  81. fortisapi/models/additional_access.py +102 -0
  82. fortisapi/models/additional_amount.py +201 -0
  83. fortisapi/models/addon.py +222 -0
  84. fortisapi/models/addon_transaction_type_enum.py +57 -0
  85. fortisapi/models/address.py +205 -0
  86. fortisapi/models/address_1.py +228 -0
  87. fortisapi/models/address_2.py +204 -0
  88. fortisapi/models/address_71.py +186 -0
  89. fortisapi/models/address_match_enum.py +54 -0
  90. fortisapi/models/address_type_enum.py +50 -0
  91. fortisapi/models/all_tag.py +194 -0
  92. fortisapi/models/alt_bank_account.py +180 -0
  93. fortisapi/models/amount_ind_enum.py +121 -0
  94. fortisapi/models/app_delivery_enum.py +50 -0
  95. fortisapi/models/auth_currency_enum.py +168 -0
  96. fortisapi/models/avs_enum.py +56 -0
  97. fortisapi/models/balance.py +154 -0
  98. fortisapi/models/bank_account.py +156 -0
  99. fortisapi/models/bank_account_1.py +186 -0
  100. fortisapi/models/batch_risk_config.py +132 -0
  101. fortisapi/models/billing_address.py +233 -0
  102. fortisapi/models/billing_address_1.py +258 -0
  103. fortisapi/models/billing_address_24.py +263 -0
  104. fortisapi/models/billing_address_5.py +155 -0
  105. fortisapi/models/body.py +134 -0
  106. fortisapi/models/branding_domain.py +867 -0
  107. fortisapi/models/branding_domain_1.py +867 -0
  108. fortisapi/models/broad_info.py +241 -0
  109. fortisapi/models/browser_information.py +401 -0
  110. fortisapi/models/business_category_enum.py +77 -0
  111. fortisapi/models/business_type_enum.py +365 -0
  112. fortisapi/models/cardholder.py +324 -0
  113. fortisapi/models/cardholder_account.py +211 -0
  114. fortisapi/models/category_enum.py +133 -0
  115. fortisapi/models/cau_subscribe_type_code_enum.py +50 -0
  116. fortisapi/models/cau_subscribe_type_id_enum.py +50 -0
  117. fortisapi/models/cau_summary_status_id_enum.py +53 -0
  118. fortisapi/models/cc_product_transaction.py +3048 -0
  119. fortisapi/models/ch_acc_age_ind_enum.py +66 -0
  120. fortisapi/models/ch_acc_change_ind_enum.py +63 -0
  121. fortisapi/models/ch_acc_pw_change_ind_enum.py +67 -0
  122. fortisapi/models/challenge_message_extension.py +177 -0
  123. fortisapi/models/challenge_window_size_enum.py +73 -0
  124. fortisapi/models/changelog.py +280 -0
  125. fortisapi/models/changelog_detail.py +178 -0
  126. fortisapi/models/children.py +822 -0
  127. fortisapi/models/communication_type_enum.py +50 -0
  128. fortisapi/models/conditions.py +125 -0
  129. fortisapi/models/conditions_18.py +146 -0
  130. fortisapi/models/conditions_181.py +146 -0
  131. fortisapi/models/conditions_191.py +146 -0
  132. fortisapi/models/conditions_27.py +125 -0
  133. fortisapi/models/conditions_4.py +146 -0
  134. fortisapi/models/conditions_41.py +146 -0
  135. fortisapi/models/conditions_42.py +146 -0
  136. fortisapi/models/conditions_43.py +146 -0
  137. fortisapi/models/contact.py +179 -0
  138. fortisapi/models/contact_1.py +822 -0
  139. fortisapi/models/contact_9.py +169 -0
  140. fortisapi/models/contact_user_default_entry_page_enum.py +59 -0
  141. fortisapi/models/context.py +125 -0
  142. fortisapi/models/country_enum.py +47 -0
  143. fortisapi/models/created_user.py +1197 -0
  144. fortisapi/models/currency_code_enum.py +186 -0
  145. fortisapi/models/currency_type.py +131 -0
  146. fortisapi/models/data.py +225 -0
  147. fortisapi/models/data_1.py +105 -0
  148. fortisapi/models/data_10.py +1283 -0
  149. fortisapi/models/data_11.py +948 -0
  150. fortisapi/models/data_12.py +369 -0
  151. fortisapi/models/data_13.py +263 -0
  152. fortisapi/models/data_14.py +552 -0
  153. fortisapi/models/data_15.py +102 -0
  154. fortisapi/models/data_16.py +930 -0
  155. fortisapi/models/data_17.py +920 -0
  156. fortisapi/models/data_18.py +102 -0
  157. fortisapi/models/data_19.py +631 -0
  158. fortisapi/models/data_2.py +1134 -0
  159. fortisapi/models/data_20.py +1657 -0
  160. fortisapi/models/data_21.py +223 -0
  161. fortisapi/models/data_22.py +1341 -0
  162. fortisapi/models/data_23.py +245 -0
  163. fortisapi/models/data_24.py +219 -0
  164. fortisapi/models/data_25.py +1456 -0
  165. fortisapi/models/data_26.py +376 -0
  166. fortisapi/models/data_27.py +1681 -0
  167. fortisapi/models/data_28.py +380 -0
  168. fortisapi/models/data_29.py +4233 -0
  169. fortisapi/models/data_3.py +296 -0
  170. fortisapi/models/data_30.py +421 -0
  171. fortisapi/models/data_31.py +150 -0
  172. fortisapi/models/data_34.py +103 -0
  173. fortisapi/models/data_35.py +259 -0
  174. fortisapi/models/data_36.py +537 -0
  175. fortisapi/models/data_4.py +482 -0
  176. fortisapi/models/data_5.py +171 -0
  177. fortisapi/models/data_6.py +469 -0
  178. fortisapi/models/data_7.py +230 -0
  179. fortisapi/models/data_8.py +616 -0
  180. fortisapi/models/data_9.py +129 -0
  181. fortisapi/models/debit_credit_enum.py +48 -0
  182. fortisapi/models/declined_recurring_notification.py +251 -0
  183. fortisapi/models/default_transaction_type_enum.py +50 -0
  184. fortisapi/models/delivery_method_enum.py +61 -0
  185. fortisapi/models/delivery_timeframe_enum.py +61 -0
  186. fortisapi/models/deposit_type_enum.py +50 -0
  187. fortisapi/models/detail.py +173 -0
  188. fortisapi/models/detail_1.py +323 -0
  189. fortisapi/models/detail_2.py +273 -0
  190. fortisapi/models/developer_company.py +270 -0
  191. fortisapi/models/device.py +123 -0
  192. fortisapi/models/device_binding_status_enum.py +373 -0
  193. fortisapi/models/device_channel_enum.py +51 -0
  194. fortisapi/models/document.py +115 -0
  195. fortisapi/models/e_format_enum.py +62 -0
  196. fortisapi/models/ebt_plan_enum.py +50 -0
  197. fortisapi/models/ebt_type_enum.py +61 -0
  198. fortisapi/models/email_blacklist.py +178 -0
  199. fortisapi/models/email_enum.py +47 -0
  200. fortisapi/models/emv_receipt_data.py +244 -0
  201. fortisapi/models/entry_mode_id_enum.py +73 -0
  202. fortisapi/models/expand_108_enum.py +48 -0
  203. fortisapi/models/expand_10_enum.py +42 -0
  204. fortisapi/models/expand_11_enum.py +99 -0
  205. fortisapi/models/expand_15_enum.py +42 -0
  206. fortisapi/models/expand_17_enum.py +96 -0
  207. fortisapi/models/expand_18_enum.py +84 -0
  208. fortisapi/models/expand_1_enum.py +75 -0
  209. fortisapi/models/expand_26_enum.py +87 -0
  210. fortisapi/models/expand_34_enum.py +42 -0
  211. fortisapi/models/expand_37_enum.py +42 -0
  212. fortisapi/models/expand_40_enum.py +63 -0
  213. fortisapi/models/expand_44_enum.py +48 -0
  214. fortisapi/models/expand_47_enum.py +69 -0
  215. fortisapi/models/expand_57_enum.py +54 -0
  216. fortisapi/models/expand_5_enum.py +48 -0
  217. fortisapi/models/expand_60_enum.py +171 -0
  218. fortisapi/models/expand_8_enum.py +57 -0
  219. fortisapi/models/expand_enum.py +51 -0
  220. fortisapi/models/field.py +125 -0
  221. fortisapi/models/field_20.py +267 -0
  222. fortisapi/models/field_27_enum.py +129 -0
  223. fortisapi/models/field_28_enum.py +168 -0
  224. fortisapi/models/field_30_enum.py +75 -0
  225. fortisapi/models/field_31_enum.py +87 -0
  226. fortisapi/models/field_33_enum.py +183 -0
  227. fortisapi/models/field_34_enum.py +195 -0
  228. fortisapi/models/field_35_enum.py +180 -0
  229. fortisapi/models/field_36_enum.py +192 -0
  230. fortisapi/models/field_37_enum.py +102 -0
  231. fortisapi/models/field_39_enum.py +186 -0
  232. fortisapi/models/field_41_enum.py +237 -0
  233. fortisapi/models/field_43_enum.py +198 -0
  234. fortisapi/models/field_45_enum.py +78 -0
  235. fortisapi/models/field_46_enum.py +126 -0
  236. fortisapi/models/field_47_enum.py +60 -0
  237. fortisapi/models/field_49_enum.py +57 -0
  238. fortisapi/models/field_51_enum.py +210 -0
  239. fortisapi/models/field_53_enum.py +84 -0
  240. fortisapi/models/field_55_enum.py +231 -0
  241. fortisapi/models/field_57_enum.py +75 -0
  242. fortisapi/models/field_59_enum.py +510 -0
  243. fortisapi/models/field_configuration.py +202 -0
  244. fortisapi/models/file.py +412 -0
  245. fortisapi/models/file_2.py +125 -0
  246. fortisapi/models/file_5.py +130 -0
  247. fortisapi/models/filter_by.py +171 -0
  248. fortisapi/models/footer.py +134 -0
  249. fortisapi/models/forecast.py +250 -0
  250. fortisapi/models/format_1_enum.py +47 -0
  251. fortisapi/models/format_enum.py +47 -0
  252. fortisapi/models/header.py +134 -0
  253. fortisapi/models/helppage.py +270 -0
  254. fortisapi/models/home_phone.py +130 -0
  255. fortisapi/models/hosted_payment_page.py +558 -0
  256. fortisapi/models/identity_verification.py +183 -0
  257. fortisapi/models/identity_verification_2.py +183 -0
  258. fortisapi/models/identity_verification_27.py +165 -0
  259. fortisapi/models/idtype_enum.py +47 -0
  260. fortisapi/models/iias_ind_enum.py +64 -0
  261. fortisapi/models/industry_type_enum.py +59 -0
  262. fortisapi/models/initiation_type_enum.py +92 -0
  263. fortisapi/models/interval_type_enum.py +50 -0
  264. fortisapi/models/item_list.py +125 -0
  265. fortisapi/models/item_list_4.py +99 -0
  266. fortisapi/models/item_list_5.py +130 -0
  267. fortisapi/models/joi.py +104 -0
  268. fortisapi/models/joi_18.py +111 -0
  269. fortisapi/models/joi_19.py +111 -0
  270. fortisapi/models/joi_27.py +104 -0
  271. fortisapi/models/joi_4.py +110 -0
  272. fortisapi/models/kyc_response_object.py +101 -0
  273. fortisapi/models/level_3_data.py +481 -0
  274. fortisapi/models/level_3_data_5.py +324 -0
  275. fortisapi/models/level_3_data_6.py +469 -0
  276. fortisapi/models/level_3_default.py +481 -0
  277. fortisapi/models/line_item.py +450 -0
  278. fortisapi/models/line_item_13.py +449 -0
  279. fortisapi/models/line_item_19.py +360 -0
  280. fortisapi/models/line_item_20.py +273 -0
  281. fortisapi/models/links.py +196 -0
  282. fortisapi/models/list.py +650 -0
  283. fortisapi/models/list_1.py +1134 -0
  284. fortisapi/models/list_10.py +1657 -0
  285. fortisapi/models/list_11.py +1341 -0
  286. fortisapi/models/list_12.py +336 -0
  287. fortisapi/models/list_13.py +731 -0
  288. fortisapi/models/list_14.py +245 -0
  289. fortisapi/models/list_15.py +219 -0
  290. fortisapi/models/list_16.py +1456 -0
  291. fortisapi/models/list_17.py +376 -0
  292. fortisapi/models/list_18.py +1681 -0
  293. fortisapi/models/list_19.py +380 -0
  294. fortisapi/models/list_20.py +4233 -0
  295. fortisapi/models/list_3.py +296 -0
  296. fortisapi/models/list_4.py +469 -0
  297. fortisapi/models/list_5.py +948 -0
  298. fortisapi/models/list_6.py +1283 -0
  299. fortisapi/models/list_8.py +552 -0
  300. fortisapi/models/list_9.py +920 -0
  301. fortisapi/models/location.py +756 -0
  302. fortisapi/models/location_18.py +217 -0
  303. fortisapi/models/location_5.py +227 -0
  304. fortisapi/models/location_billing_account.py +509 -0
  305. fortisapi/models/location_type_26_enum.py +51 -0
  306. fortisapi/models/location_type_enum.py +50 -0
  307. fortisapi/models/locationmarketplace.py +247 -0
  308. fortisapi/models/log_email.py +364 -0
  309. fortisapi/models/log_sms.py +315 -0
  310. fortisapi/models/marketplace.py +247 -0
  311. fortisapi/models/masync.py +128 -0
  312. fortisapi/models/merchant_list.py +193 -0
  313. fortisapi/models/merchant_risk_indicator.py +341 -0
  314. fortisapi/models/message_category_enum.py +119 -0
  315. fortisapi/models/message_extension.py +177 -0
  316. fortisapi/models/meta.py +107 -0
  317. fortisapi/models/method_3.py +147 -0
  318. fortisapi/models/method_50.py +145 -0
  319. fortisapi/models/method_53_enum.py +56 -0
  320. fortisapi/models/method_5_enum.py +56 -0
  321. fortisapi/models/method_enum.py +56 -0
  322. fortisapi/models/mobile_phone.py +130 -0
  323. fortisapi/models/modified_user.py +1197 -0
  324. fortisapi/models/multi_transaction.py +147 -0
  325. fortisapi/models/operator_1_enum.py +59 -0
  326. fortisapi/models/operator_enum.py +47 -0
  327. fortisapi/models/order_21.py +99 -0
  328. fortisapi/models/order_enum.py +47 -0
  329. fortisapi/models/owner.py +322 -0
  330. fortisapi/models/ownership_type_enum.py +71 -0
  331. fortisapi/models/page.py +132 -0
  332. fortisapi/models/pagination.py +196 -0
  333. fortisapi/models/parent.py +822 -0
  334. fortisapi/models/parent_3.py +756 -0
  335. fortisapi/models/partner_enum.py +71 -0
  336. fortisapi/models/paylink_action_enum.py +47 -0
  337. fortisapi/models/payment_acc_ind_enum.py +67 -0
  338. fortisapi/models/payment_method_16_enum.py +47 -0
  339. fortisapi/models/payment_method_1_enum.py +47 -0
  340. fortisapi/models/payment_method_9_enum.py +50 -0
  341. fortisapi/models/payment_method_enum.py +50 -0
  342. fortisapi/models/payment_recurring_notification.py +251 -0
  343. fortisapi/models/payment_type_priority_enum.py +47 -0
  344. fortisapi/models/postback_log.py +295 -0
  345. fortisapi/models/postback_status_id_enum.py +53 -0
  346. fortisapi/models/pre_order_purchase_ind_enum.py +52 -0
  347. fortisapi/models/preferred_language_enum.py +51 -0
  348. fortisapi/models/preferred_protocol_version_enum.py +65 -0
  349. fortisapi/models/pricing_element.py +147 -0
  350. fortisapi/models/primary_principal.py +396 -0
  351. fortisapi/models/primary_principal_1.py +376 -0
  352. fortisapi/models/process_method_enum.py +47 -0
  353. fortisapi/models/processor_enum.py +59 -0
  354. fortisapi/models/product_accountvault.py +317 -0
  355. fortisapi/models/product_file.py +416 -0
  356. fortisapi/models/product_file_1.py +414 -0
  357. fortisapi/models/product_invoice.py +651 -0
  358. fortisapi/models/product_recurring.py +387 -0
  359. fortisapi/models/product_token.py +317 -0
  360. fortisapi/models/product_transaction.py +3048 -0
  361. fortisapi/models/product_transaction_1.py +3046 -0
  362. fortisapi/models/purchase.py +501 -0
  363. fortisapi/models/quick_invoice.py +1256 -0
  364. fortisapi/models/quick_invoice_setting.py +299 -0
  365. fortisapi/models/quick_invoice_view.py +176 -0
  366. fortisapi/models/reason_code.py +131 -0
  367. fortisapi/models/reason_code_id_1_enum.py +935 -0
  368. fortisapi/models/reason_code_id_enum.py +578 -0
  369. fortisapi/models/reason_model_enum.py +74 -0
  370. fortisapi/models/received_email.py +364 -0
  371. fortisapi/models/recipients_enum.py +62 -0
  372. fortisapi/models/recurring.py +975 -0
  373. fortisapi/models/recurring_3.py +977 -0
  374. fortisapi/models/recurring_flag_enum.py +64 -0
  375. fortisapi/models/recurring_split.py +200 -0
  376. fortisapi/models/recurring_type_id_enum.py +47 -0
  377. fortisapi/models/registration_field_enum.py +87 -0
  378. fortisapi/models/rejected_transaction.py +3198 -0
  379. fortisapi/models/rejected_transaction_ach_retry.py +244 -0
  380. fortisapi/models/relationship_enum.py +50 -0
  381. fortisapi/models/reorder_items_ind_enum.py +51 -0
  382. fortisapi/models/report_export_type_enum.py +53 -0
  383. fortisapi/models/resource_12_enum.py +52 -0
  384. fortisapi/models/resource_2_enum.py +50 -0
  385. fortisapi/models/resource_enum.py +55 -0
  386. fortisapi/models/response_416_date_range.py +148 -0
  387. fortisapi/models/response_417_filter_channels.py +148 -0
  388. fortisapi/models/response_apple_pay_validate_merchant.py +126 -0
  389. fortisapi/models/response_async_status.py +126 -0
  390. fortisapi/models/response_batchs_collection.py +228 -0
  391. fortisapi/models/response_calculate_surcharge.py +126 -0
  392. fortisapi/models/response_contact.py +126 -0
  393. fortisapi/models/response_contact_searchs_collection.py +228 -0
  394. fortisapi/models/response_contacts_collection.py +228 -0
  395. fortisapi/models/response_declined_recurring_transaction.py +126 -0
  396. fortisapi/models/response_declined_recurring_transaction_payment.py +126 -0
  397. fortisapi/models/response_declined_recurring_transaction_resend.py +126 -0
  398. fortisapi/models/response_declined_recurring_transactions_collection.py +228 -0
  399. fortisapi/models/response_device_term.py +126 -0
  400. fortisapi/models/response_device_terms_collection.py +228 -0
  401. fortisapi/models/response_fullboarding.py +126 -0
  402. fortisapi/models/response_location.py +126 -0
  403. fortisapi/models/response_location_info.py +126 -0
  404. fortisapi/models/response_location_infos_collection.py +228 -0
  405. fortisapi/models/response_location_searchs_collection.py +228 -0
  406. fortisapi/models/response_locations_collection.py +228 -0
  407. fortisapi/models/response_merchant.py +126 -0
  408. fortisapi/models/response_merchant_deposit.py +126 -0
  409. fortisapi/models/response_merchant_deposits_collection.py +228 -0
  410. fortisapi/models/response_merchant_details.py +126 -0
  411. fortisapi/models/response_onboarding.py +126 -0
  412. fortisapi/models/response_paylink.py +126 -0
  413. fortisapi/models/response_paylinks_collection.py +228 -0
  414. fortisapi/models/response_payment_card_reader_token.py +126 -0
  415. fortisapi/models/response_quick_invoice.py +126 -0
  416. fortisapi/models/response_quick_invoice_resend.py +126 -0
  417. fortisapi/models/response_quick_invoices_collection.py +228 -0
  418. fortisapi/models/response_recurring.py +126 -0
  419. fortisapi/models/response_recurrings_collection.py +228 -0
  420. fortisapi/models/response_reporting_reports_cc_settled_transactions_collection.py +231 -0
  421. fortisapi/models/response_reporting_reports_chargebacks_collection.py +228 -0
  422. fortisapi/models/response_signature.py +126 -0
  423. fortisapi/models/response_signatures_collection.py +228 -0
  424. fortisapi/models/response_tag.py +126 -0
  425. fortisapi/models/response_tags_collection.py +228 -0
  426. fortisapi/models/response_terminal.py +126 -0
  427. fortisapi/models/response_terminals_collection.py +228 -0
  428. fortisapi/models/response_three_ds_authentication.py +126 -0
  429. fortisapi/models/response_three_ds_transaction.py +126 -0
  430. fortisapi/models/response_ticket.py +126 -0
  431. fortisapi/models/response_ticket_intention.py +126 -0
  432. fortisapi/models/response_tickets_collection.py +228 -0
  433. fortisapi/models/response_token.py +126 -0
  434. fortisapi/models/response_tokens_collection.py +228 -0
  435. fortisapi/models/response_transaction.py +126 -0
  436. fortisapi/models/response_transaction_ach_retry.py +126 -0
  437. fortisapi/models/response_transaction_ach_retrys_collection.py +228 -0
  438. fortisapi/models/response_transaction_bin_info.py +126 -0
  439. fortisapi/models/response_transaction_intention.py +126 -0
  440. fortisapi/models/response_transaction_level_3.py +126 -0
  441. fortisapi/models/response_transaction_level_3_master.py +126 -0
  442. fortisapi/models/response_transaction_level_3_visa.py +126 -0
  443. fortisapi/models/response_transaction_processing.py +126 -0
  444. fortisapi/models/response_transactions_collection.py +228 -0
  445. fortisapi/models/response_webhook.py +126 -0
  446. fortisapi/models/result.py +152 -0
  447. fortisapi/models/retry_transaction.py +3198 -0
  448. fortisapi/models/retry_transaction_ach_retry.py +246 -0
  449. fortisapi/models/return_fee_transaction.py +3198 -0
  450. fortisapi/models/return_fee_transaction_ach_retry.py +246 -0
  451. fortisapi/models/saved_account.py +1408 -0
  452. fortisapi/models/scheme_id_enum.py +54 -0
  453. fortisapi/models/sec_code_enum.py +51 -0
  454. fortisapi/models/settings.py +148 -0
  455. fortisapi/models/settled_currency_enum.py +168 -0
  456. fortisapi/models/severity_enum.py +62 -0
  457. fortisapi/models/ship_address_usage_ind_enum.py +62 -0
  458. fortisapi/models/ship_indicator_enum.py +101 -0
  459. fortisapi/models/ship_name_indicator_enum.py +52 -0
  460. fortisapi/models/shipping_address.py +264 -0
  461. fortisapi/models/signature.py +220 -0
  462. fortisapi/models/sms_blacklist.py +178 -0
  463. fortisapi/models/sms_enum.py +47 -0
  464. fortisapi/models/sort.py +132 -0
  465. fortisapi/models/source_enum.py +56 -0
  466. fortisapi/models/stack_enum.py +47 -0
  467. fortisapi/models/status_11.py +131 -0
  468. fortisapi/models/status_3_enum.py +47 -0
  469. fortisapi/models/status_5.py +102 -0
  470. fortisapi/models/status_code_12_enum.py +47 -0
  471. fortisapi/models/status_code_17_enum.py +102 -0
  472. fortisapi/models/status_code_enum.py +50 -0
  473. fortisapi/models/status_enum.py +50 -0
  474. fortisapi/models/status_id_enum.py +47 -0
  475. fortisapi/models/surcharge.py +574 -0
  476. fortisapi/models/surcharge_transaction.py +367 -0
  477. fortisapi/models/suspicious_acc_activity_enum.py +52 -0
  478. fortisapi/models/tag.py +194 -0
  479. fortisapi/models/tag_transaction.py +319 -0
  480. fortisapi/models/tax_exempt_enum.py +61 -0
  481. fortisapi/models/tax_surcharge_config_enum.py +47 -0
  482. fortisapi/models/terminal.py +1245 -0
  483. fortisapi/models/terminal_2.py +1243 -0
  484. fortisapi/models/terminal_application.py +411 -0
  485. fortisapi/models/terminal_cvm.py +293 -0
  486. fortisapi/models/terminal_manufacturer.py +249 -0
  487. fortisapi/models/terminal_manufacturer_code_enum.py +55 -0
  488. fortisapi/models/terminal_router.py +245 -0
  489. fortisapi/models/terminal_timeouts.py +304 -0
  490. fortisapi/models/terminal_timeouts_12.py +314 -0
  491. fortisapi/models/three_ds_req_auth_method_enum.py +154 -0
  492. fortisapi/models/three_ds_req_prior_auth_method_enum.py +123 -0
  493. fortisapi/models/three_ds_requestor.py +345 -0
  494. fortisapi/models/three_ds_requestor_authentication_ind_enum.py +141 -0
  495. fortisapi/models/three_ds_requestor_authentication_info.py +179 -0
  496. fortisapi/models/three_ds_requestor_challenge_ind_enum.py +126 -0
  497. fortisapi/models/three_ds_requestor_dec_req_ind_enum.py +72 -0
  498. fortisapi/models/three_ds_requestor_prior_authentication_info.py +188 -0
  499. fortisapi/models/three_ds_requestor_spc_support_enum.py +49 -0
  500. fortisapi/models/three_ri_ind_enum.py +180 -0
  501. fortisapi/models/tip_percents.py +160 -0
  502. fortisapi/models/trans_char_enum.py +45 -0
  503. fortisapi/models/transaction.py +3196 -0
  504. fortisapi/models/transaction_batch.py +537 -0
  505. fortisapi/models/transaction_batch_settlement.py +202 -0
  506. fortisapi/models/transaction_history.py +246 -0
  507. fortisapi/models/transaction_level_3.py +152 -0
  508. fortisapi/models/transaction_reference.py +298 -0
  509. fortisapi/models/transaction_split.py +221 -0
  510. fortisapi/models/transaction_status_enum.py +88 -0
  511. fortisapi/models/transaction_type_enum.py +68 -0
  512. fortisapi/models/trx_source_code_enum.py +155 -0
  513. fortisapi/models/trx_source_id_enum.py +155 -0
  514. fortisapi/models/type_103_enum.py +44 -0
  515. fortisapi/models/type_105_enum.py +44 -0
  516. fortisapi/models/type_10_enum.py +44 -0
  517. fortisapi/models/type_110_enum.py +44 -0
  518. fortisapi/models/type_114_enum.py +44 -0
  519. fortisapi/models/type_11_enum.py +44 -0
  520. fortisapi/models/type_121_enum.py +44 -0
  521. fortisapi/models/type_123.py +131 -0
  522. fortisapi/models/type_124_enum.py +44 -0
  523. fortisapi/models/type_125_enum.py +44 -0
  524. fortisapi/models/type_126_enum.py +44 -0
  525. fortisapi/models/type_127_enum.py +44 -0
  526. fortisapi/models/type_128_enum.py +44 -0
  527. fortisapi/models/type_134_enum.py +44 -0
  528. fortisapi/models/type_135_enum.py +44 -0
  529. fortisapi/models/type_136_enum.py +44 -0
  530. fortisapi/models/type_15_enum.py +44 -0
  531. fortisapi/models/type_16_enum.py +44 -0
  532. fortisapi/models/type_1_enum.py +44 -0
  533. fortisapi/models/type_20_enum.py +44 -0
  534. fortisapi/models/type_21_enum.py +44 -0
  535. fortisapi/models/type_22_enum.py +44 -0
  536. fortisapi/models/type_23_enum.py +44 -0
  537. fortisapi/models/type_27_enum.py +44 -0
  538. fortisapi/models/type_28_enum.py +44 -0
  539. fortisapi/models/type_29_enum.py +64 -0
  540. fortisapi/models/type_2_enum.py +44 -0
  541. fortisapi/models/type_30_enum.py +44 -0
  542. fortisapi/models/type_31_enum.py +44 -0
  543. fortisapi/models/type_35_enum.py +44 -0
  544. fortisapi/models/type_39_enum.py +44 -0
  545. fortisapi/models/type_3_enum.py +44 -0
  546. fortisapi/models/type_43_enum.py +44 -0
  547. fortisapi/models/type_44_enum.py +44 -0
  548. fortisapi/models/type_45_enum.py +44 -0
  549. fortisapi/models/type_46_enum.py +44 -0
  550. fortisapi/models/type_47_enum.py +44 -0
  551. fortisapi/models/type_48_enum.py +44 -0
  552. fortisapi/models/type_4_enum.py +44 -0
  553. fortisapi/models/type_52_enum.py +44 -0
  554. fortisapi/models/type_53_enum.py +44 -0
  555. fortisapi/models/type_54_enum.py +44 -0
  556. fortisapi/models/type_55_enum.py +44 -0
  557. fortisapi/models/type_59_enum.py +44 -0
  558. fortisapi/models/type_5_enum.py +44 -0
  559. fortisapi/models/type_60_enum.py +44 -0
  560. fortisapi/models/type_61_enum.py +45 -0
  561. fortisapi/models/type_62_enum.py +44 -0
  562. fortisapi/models/type_63_enum.py +91 -0
  563. fortisapi/models/type_64_enum.py +44 -0
  564. fortisapi/models/type_65_enum.py +44 -0
  565. fortisapi/models/type_6_enum.py +44 -0
  566. fortisapi/models/type_70_enum.py +44 -0
  567. fortisapi/models/type_71_enum.py +44 -0
  568. fortisapi/models/type_75_enum.py +44 -0
  569. fortisapi/models/type_79_enum.py +44 -0
  570. fortisapi/models/type_83_enum.py +44 -0
  571. fortisapi/models/type_84_enum.py +44 -0
  572. fortisapi/models/type_88_enum.py +44 -0
  573. fortisapi/models/type_89_enum.py +44 -0
  574. fortisapi/models/type_93_enum.py +44 -0
  575. fortisapi/models/type_94_enum.py +44 -0
  576. fortisapi/models/type_98_enum.py +44 -0
  577. fortisapi/models/type_99_enum.py +44 -0
  578. fortisapi/models/type_enum.py +44 -0
  579. fortisapi/models/type_id_enum.py +59 -0
  580. fortisapi/models/ui_prefs.py +204 -0
  581. fortisapi/models/update_if_exists_enum.py +44 -0
  582. fortisapi/models/user.py +180 -0
  583. fortisapi/models/user_1.py +1197 -0
  584. fortisapi/models/user_9.py +1195 -0
  585. fortisapi/models/user_type_code_enum.py +74 -0
  586. fortisapi/models/v_1_contacts_request.py +685 -0
  587. fortisapi/models/v_1_contacts_request_1.py +707 -0
  588. fortisapi/models/v_1_declined_recurring_transaction_payments_request.py +354 -0
  589. fortisapi/models/v_1_device_terms_request.py +161 -0
  590. fortisapi/models/v_1_elements_ticket_intention_request.py +195 -0
  591. fortisapi/models/v_1_elements_transaction_intention_request.py +591 -0
  592. fortisapi/models/v_1_fullboarding_request.py +827 -0
  593. fortisapi/models/v_1_merchant_threedsecure_authentication_request.py +696 -0
  594. fortisapi/models/v_1_onboarding_request.py +833 -0
  595. fortisapi/models/v_1_paylinks_request.py +723 -0
  596. fortisapi/models/v_1_paylinks_request_1.py +735 -0
  597. fortisapi/models/v_1_public_calculate_surcharge_request.py +527 -0
  598. fortisapi/models/v_1_quick_invoices_request.py +1035 -0
  599. fortisapi/models/v_1_quick_invoices_request_1.py +1070 -0
  600. fortisapi/models/v_1_quick_invoices_transaction_request.py +86 -0
  601. fortisapi/models/v_1_recurrings_defer_payment_request.py +86 -0
  602. fortisapi/models/v_1_recurrings_request.py +742 -0
  603. fortisapi/models/v_1_recurrings_request_1.py +750 -0
  604. fortisapi/models/v_1_recurrings_skip_payment_request.py +86 -0
  605. fortisapi/models/v_1_signatures_request.py +113 -0
  606. fortisapi/models/v_1_tags_request.py +99 -0
  607. fortisapi/models/v_1_tags_request_1.py +130 -0
  608. fortisapi/models/v_1_terminals_request.py +1005 -0
  609. fortisapi/models/v_1_terminals_request_1.py +1112 -0
  610. fortisapi/models/v_1_tickets_request.py +286 -0
  611. fortisapi/models/v_1_tokens_ach_request.py +945 -0
  612. fortisapi/models/v_1_tokens_ach_request_1.py +907 -0
  613. fortisapi/models/v_1_tokens_cc_request.py +1071 -0
  614. fortisapi/models/v_1_tokens_cc_request_1.py +905 -0
  615. fortisapi/models/v_1_tokens_previous_transaction_request.py +858 -0
  616. fortisapi/models/v_1_tokens_terminal_async_request.py +889 -0
  617. fortisapi/models/v_1_tokens_terminal_request.py +889 -0
  618. fortisapi/models/v_1_tokens_ticket_request.py +882 -0
  619. fortisapi/models/v_1_tokens_wallet_request.py +919 -0
  620. fortisapi/models/v_1_transaction_ach_retries_request.py +119 -0
  621. fortisapi/models/v_1_transactions_ach_credit_keyed_request.py +1600 -0
  622. fortisapi/models/v_1_transactions_ach_credit_prev_trxn_request.py +1616 -0
  623. fortisapi/models/v_1_transactions_ach_credit_token_request.py +1660 -0
  624. fortisapi/models/v_1_transactions_ach_debit_keyed_request.py +1600 -0
  625. fortisapi/models/v_1_transactions_ach_debit_prev_trxn_request.py +1616 -0
  626. fortisapi/models/v_1_transactions_ach_debit_token_request.py +1660 -0
  627. fortisapi/models/v_1_transactions_ach_refund_prev_trxn_request.py +1616 -0
  628. fortisapi/models/v_1_transactions_auth_complete_request.py +1519 -0
  629. fortisapi/models/v_1_transactions_auth_increment_request.py +1533 -0
  630. fortisapi/models/v_1_transactions_cash_refund_request.py +1515 -0
  631. fortisapi/models/v_1_transactions_cash_sale_request.py +1489 -0
  632. fortisapi/models/v_1_transactions_cc_auth_only_keyed_request.py +2164 -0
  633. fortisapi/models/v_1_transactions_cc_auth_only_prev_trxn_request.py +2124 -0
  634. fortisapi/models/v_1_transactions_cc_auth_only_taptopay_request.py +1843 -0
  635. fortisapi/models/v_1_transactions_cc_auth_only_terminal_request.py +2082 -0
  636. fortisapi/models/v_1_transactions_cc_auth_only_ticket_request.py +2050 -0
  637. fortisapi/models/v_1_transactions_cc_auth_only_token_request.py +2129 -0
  638. fortisapi/models/v_1_transactions_cc_auth_only_wallet_request.py +2062 -0
  639. fortisapi/models/v_1_transactions_cc_avs_only_keyed_request.py +2175 -0
  640. fortisapi/models/v_1_transactions_cc_avs_only_prev_trxn_request.py +2124 -0
  641. fortisapi/models/v_1_transactions_cc_avs_only_swiped_request.py +2086 -0
  642. fortisapi/models/v_1_transactions_cc_avs_only_terminal_request.py +2093 -0
  643. fortisapi/models/v_1_transactions_cc_avs_only_ticket_request.py +2061 -0
  644. fortisapi/models/v_1_transactions_cc_avs_only_token_request.py +2140 -0
  645. fortisapi/models/v_1_transactions_cc_avs_only_wallet_request.py +2073 -0
  646. fortisapi/models/v_1_transactions_cc_balance_inquiry_keyed_request.py +2176 -0
  647. fortisapi/models/v_1_transactions_cc_balance_inquiry_prev_trxn_request.py +2125 -0
  648. fortisapi/models/v_1_transactions_cc_balance_inquiry_swiped_request.py +2087 -0
  649. fortisapi/models/v_1_transactions_cc_balance_inquiry_terminal_request.py +2094 -0
  650. fortisapi/models/v_1_transactions_cc_balance_inquiry_ticket_request.py +2062 -0
  651. fortisapi/models/v_1_transactions_cc_balance_inquiry_token_request.py +2141 -0
  652. fortisapi/models/v_1_transactions_cc_balance_inquiry_wallet_request.py +2074 -0
  653. fortisapi/models/v_1_transactions_cc_refund_keyed_request.py +2218 -0
  654. fortisapi/models/v_1_transactions_cc_refund_prev_trxn_request.py +2124 -0
  655. fortisapi/models/v_1_transactions_cc_refund_taptopay_request.py +1869 -0
  656. fortisapi/models/v_1_transactions_cc_refund_terminal_request.py +2082 -0
  657. fortisapi/models/v_1_transactions_cc_refund_ticket_request.py +2050 -0
  658. fortisapi/models/v_1_transactions_cc_refund_token_request.py +2129 -0
  659. fortisapi/models/v_1_transactions_cc_refund_wallet_request.py +2062 -0
  660. fortisapi/models/v_1_transactions_cc_sale_keyed_request.py +2164 -0
  661. fortisapi/models/v_1_transactions_cc_sale_prev_trxn_request.py +2124 -0
  662. fortisapi/models/v_1_transactions_cc_sale_taptopay_request.py +1843 -0
  663. fortisapi/models/v_1_transactions_cc_sale_terminal_request.py +2082 -0
  664. fortisapi/models/v_1_transactions_cc_sale_ticket_request.py +2050 -0
  665. fortisapi/models/v_1_transactions_cc_sale_token_request.py +2129 -0
  666. fortisapi/models/v_1_transactions_cc_sale_wallet_request.py +2062 -0
  667. fortisapi/models/v_1_transactions_ebt_voucher_clear_refund_keyed_request.py +2190 -0
  668. fortisapi/models/v_1_transactions_ebt_voucher_clear_sale_keyed_request.py +2190 -0
  669. fortisapi/models/v_1_transactions_level_3_master_card_request.py +91 -0
  670. fortisapi/models/v_1_transactions_level_3_visa_request.py +91 -0
  671. fortisapi/models/v_1_transactions_partial_reversal_request.py +1462 -0
  672. fortisapi/models/v_1_transactions_refund_request.py +1448 -0
  673. fortisapi/models/v_1_transactions_tip_adjust_request.py +1973 -0
  674. fortisapi/models/v_1_transactions_void_request.py +130 -0
  675. fortisapi/models/v_1_wallet_provider_apple_pay_validate_merchant_request.py +127 -0
  676. fortisapi/models/v_1_wallet_provider_merchant_details_request.py +87 -0
  677. fortisapi/models/v_1_webhooks_apm_onboarding_request.py +421 -0
  678. fortisapi/models/v_1_webhooks_apm_onboarding_request_1.py +494 -0
  679. fortisapi/models/v_1_webhooks_batch_request.py +410 -0
  680. fortisapi/models/v_1_webhooks_batch_request_1.py +494 -0
  681. fortisapi/models/v_1_webhooks_contact_request.py +421 -0
  682. fortisapi/models/v_1_webhooks_contact_request_1.py +494 -0
  683. fortisapi/models/v_1_webhooks_transaction_request.py +410 -0
  684. fortisapi/models/v_1_webhooks_transaction_request_1.py +494 -0
  685. fortisapi/models/values_4_enum.py +59 -0
  686. fortisapi/models/values_50_enum.py +59 -0
  687. fortisapi/models/values_51_enum.py +62 -0
  688. fortisapi/models/values_58_enum.py +59 -0
  689. fortisapi/models/values_5_enum.py +59 -0
  690. fortisapi/models/values_6_enum.py +59 -0
  691. fortisapi/models/values_7_enum.py +59 -0
  692. fortisapi/models/values_99_enum.py +45 -0
  693. fortisapi/models/values_enum.py +51 -0
  694. fortisapi/models/wallet_provider_enum.py +47 -0
  695. fortisapi/models/wallet_type_enum.py +86 -0
  696. fortisapi/models/work_phone.py +130 -0
  697. fortisapi/utilities/__init__.py +6 -0
  698. fortisapi/utilities/file_wrapper.py +45 -0
  699. fortisapi/utilities/union_type_lookup.py +436 -0
@@ -0,0 +1,154 @@
1
+ """fortisapi.
2
+
3
+ This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
4
+ """
5
+
6
+ # ruff: noqa: E501
7
+
8
+ class ThreeDsReqAuthMethodEnum(object):
9
+ """Implementation of the 'ThreeDsReqAuthMethod' enum.
10
+
11
+ Mechanism used by the Cardholder to authenticate to the 3DS Requestor. "07" and
12
+ "08" are accepted as well if 3DS Server initiates authentication with EMV 3DS
13
+ 2.2.0 version or greater (required protocol version can be set in the
14
+ preferred_protocol_version field)
15
+ >01 - No 3DS Requestor authentication occurred (i.e. cardholder "logged in" as
16
+ guest)
17
+ >
18
+ >02 - Login to the cardholder account at the 3DS Requestor system using 3DS
19
+ Requestor's own credentials
20
+ >
21
+ >03 - Login to the cardholder account at the 3DS Requestor system using federated
22
+ ID
23
+ >
24
+ >04 - Login to the cardholder account at the 3DS Requestor system using issuer
25
+ credentials
26
+ >
27
+ >05 - Login to the cardholder account at the 3DS Requestor system using
28
+ third-party authentication
29
+ >
30
+ >06 - Login to the cardholder account at the 3DS Requestor system using FIDO
31
+ Authenticator
32
+ >
33
+ >07 - Login to the cardholder account at the 3DS Requestor system using FIDO
34
+ Authenticator (FIDO assurance data signed) (EMV 3DS 2.2.0 version or greater)
35
+ >
36
+ >08 - SRC Assurance Data (EMV 3DS 2.2.0 version or greater)
37
+ >
38
+ >80 through 99 - can be used for PS-specific values, regardless of protocol
39
+ version
40
+ >
41
+
42
+ Attributes:
43
+ ENUM_01: The enum member of type str.
44
+ ENUM_02: The enum member of type str.
45
+ ENUM_03: The enum member of type str.
46
+ ENUM_04: The enum member of type str.
47
+ ENUM_05: The enum member of type str.
48
+ ENUM_06: The enum member of type str.
49
+ ENUM_07: The enum member of type str.
50
+ ENUM_08: The enum member of type str.
51
+ ENUM_80: The enum member of type str.
52
+ ENUM_81: The enum member of type str.
53
+ ENUM_82: The enum member of type str.
54
+ ENUM_83: The enum member of type str.
55
+ ENUM_84: The enum member of type str.
56
+ ENUM_85: The enum member of type str.
57
+ ENUM_86: The enum member of type str.
58
+ ENUM_87: The enum member of type str.
59
+ ENUM_88: The enum member of type str.
60
+ ENUM_89: The enum member of type str.
61
+ ENUM_90: The enum member of type str.
62
+ ENUM_91: The enum member of type str.
63
+ ENUM_92: The enum member of type str.
64
+ ENUM_93: The enum member of type str.
65
+ ENUM_94: The enum member of type str.
66
+ ENUM_95: The enum member of type str.
67
+ ENUM_96: The enum member of type str.
68
+ ENUM_97: The enum member of type str.
69
+ ENUM_98: The enum member of type str.
70
+ ENUM_99: The enum member of type str.
71
+ additional_properties (Dict[str, object]): The additional properties for the
72
+ model.
73
+
74
+ """
75
+
76
+ ENUM_01 = "01"
77
+
78
+ ENUM_02 = "02"
79
+
80
+ ENUM_03 = "03"
81
+
82
+ ENUM_04 = "04"
83
+
84
+ ENUM_05 = "05"
85
+
86
+ ENUM_06 = "06"
87
+
88
+ ENUM_07 = "07"
89
+
90
+ ENUM_08 = "08"
91
+
92
+ ENUM_80 = "80"
93
+
94
+ ENUM_81 = "81"
95
+
96
+ ENUM_82 = "82"
97
+
98
+ ENUM_83 = "83"
99
+
100
+ ENUM_84 = "84"
101
+
102
+ ENUM_85 = "85"
103
+
104
+ ENUM_86 = "86"
105
+
106
+ ENUM_87 = "87"
107
+
108
+ ENUM_88 = "88"
109
+
110
+ ENUM_89 = "89"
111
+
112
+ ENUM_90 = "90"
113
+
114
+ ENUM_91 = "91"
115
+
116
+ ENUM_92 = "92"
117
+
118
+ ENUM_93 = "93"
119
+
120
+ ENUM_94 = "94"
121
+
122
+ ENUM_95 = "95"
123
+
124
+ ENUM_96 = "96"
125
+
126
+ ENUM_97 = "97"
127
+
128
+ ENUM_98 = "98"
129
+
130
+ ENUM_99 = "99"
131
+
132
+ @classmethod
133
+ def from_value(cls, value, default=None):
134
+ """Return the matching enum value for the given input."""
135
+ if value is None:
136
+ return default
137
+
138
+ # If numeric and matches directly
139
+ if isinstance(value, int):
140
+ for name, val in cls.__dict__.items():
141
+ if not name.startswith("_") and val == value:
142
+ return val
143
+
144
+ # If string, perform case-insensitive match
145
+ if isinstance(value, str):
146
+ value_lower = value.lower()
147
+ for name, val in cls.__dict__.items():
148
+ if not name.startswith("_") and (
149
+ name.lower() == value_lower or str(val).lower() == value_lower
150
+ ):
151
+ return val
152
+
153
+ # Fallback to default
154
+ return default
@@ -0,0 +1,123 @@
1
+ """fortisapi.
2
+
3
+ This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
4
+ """
5
+
6
+ # ruff: noqa: E501
7
+
8
+ class ThreeDsReqPriorAuthMethodEnum(object):
9
+ """Implementation of the 'ThreeDsReqPriorAuthMethod' enum.
10
+
11
+ Mechanism used by the Cardholder to previously authenticate to the 3DS Requestor.
12
+ >01 - Frictionless authentication occurred by ACS
13
+ >
14
+ >02 - Cardholder challenge occurred by ACS
15
+ >
16
+ >03 - AVS verified
17
+ >
18
+ >04 - Other issuer methods
19
+ >
20
+ >80 through 99 - PS-specific value (dependent on the payment scheme type).
21
+ >
22
+
23
+ Attributes:
24
+ ENUM_01: The enum member of type str.
25
+ ENUM_02: The enum member of type str.
26
+ ENUM_03: The enum member of type str.
27
+ ENUM_04: The enum member of type str.
28
+ ENUM_80: The enum member of type str.
29
+ ENUM_81: The enum member of type str.
30
+ ENUM_82: The enum member of type str.
31
+ ENUM_83: The enum member of type str.
32
+ ENUM_84: The enum member of type str.
33
+ ENUM_85: The enum member of type str.
34
+ ENUM_86: The enum member of type str.
35
+ ENUM_87: The enum member of type str.
36
+ ENUM_88: The enum member of type str.
37
+ ENUM_89: The enum member of type str.
38
+ ENUM_90: The enum member of type str.
39
+ ENUM_91: The enum member of type str.
40
+ ENUM_92: The enum member of type str.
41
+ ENUM_93: The enum member of type str.
42
+ ENUM_94: The enum member of type str.
43
+ ENUM_95: The enum member of type str.
44
+ ENUM_96: The enum member of type str.
45
+ ENUM_97: The enum member of type str.
46
+ ENUM_98: The enum member of type str.
47
+ ENUM_99: The enum member of type str.
48
+ additional_properties (Dict[str, object]): The additional properties for the
49
+ model.
50
+
51
+ """
52
+
53
+ ENUM_01 = "01"
54
+
55
+ ENUM_02 = "02"
56
+
57
+ ENUM_03 = "03"
58
+
59
+ ENUM_04 = "04"
60
+
61
+ ENUM_80 = "80"
62
+
63
+ ENUM_81 = "81"
64
+
65
+ ENUM_82 = "82"
66
+
67
+ ENUM_83 = "83"
68
+
69
+ ENUM_84 = "84"
70
+
71
+ ENUM_85 = "85"
72
+
73
+ ENUM_86 = "86"
74
+
75
+ ENUM_87 = "87"
76
+
77
+ ENUM_88 = "88"
78
+
79
+ ENUM_89 = "89"
80
+
81
+ ENUM_90 = "90"
82
+
83
+ ENUM_91 = "91"
84
+
85
+ ENUM_92 = "92"
86
+
87
+ ENUM_93 = "93"
88
+
89
+ ENUM_94 = "94"
90
+
91
+ ENUM_95 = "95"
92
+
93
+ ENUM_96 = "96"
94
+
95
+ ENUM_97 = "97"
96
+
97
+ ENUM_98 = "98"
98
+
99
+ ENUM_99 = "99"
100
+
101
+ @classmethod
102
+ def from_value(cls, value, default=None):
103
+ """Return the matching enum value for the given input."""
104
+ if value is None:
105
+ return default
106
+
107
+ # If numeric and matches directly
108
+ if isinstance(value, int):
109
+ for name, val in cls.__dict__.items():
110
+ if not name.startswith("_") and val == value:
111
+ return val
112
+
113
+ # If string, perform case-insensitive match
114
+ if isinstance(value, str):
115
+ value_lower = value.lower()
116
+ for name, val in cls.__dict__.items():
117
+ if not name.startswith("_") and (
118
+ name.lower() == value_lower or str(val).lower() == value_lower
119
+ ):
120
+ return val
121
+
122
+ # Fallback to default
123
+ return default
@@ -0,0 +1,345 @@
1
+ """fortisapi.
2
+
3
+ This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
4
+ """
5
+
6
+ # ruff: noqa: E501
7
+ from fortisapi.api_helper import APIHelper
8
+ from fortisapi.models.three_ds_requestor_authentication_info import (
9
+ ThreeDsRequestorAuthenticationInfo,
10
+ )
11
+ from fortisapi.models.three_ds_requestor_prior_authentication_info import (
12
+ ThreeDsRequestorPriorAuthenticationInfo,
13
+ )
14
+
15
+
16
+ class ThreeDsRequestor(object):
17
+ """Implementation of the 'ThreeDsRequestor' model.
18
+
19
+ Contains information for the 3DS Requestor.
20
+
21
+ Attributes:
22
+ three_ds_requestor_authentication_ind
23
+ (ThreeDsRequestorAuthenticationIndEnum): Indicates the type of
24
+ Authentication request. This data element provides additional information
25
+ to the ACS to determine the best approach for handling an authentication
26
+ request. This value is used for App-based and Browser flows. >01 -
27
+ Payment transaction > >02 - Recurring transaction > >03 - Installment
28
+ transaction > >04 - Add card > >05 - Maintain card > >06 - Cardholder
29
+ verification as part of EMV token ID&V > >07 - Billing agreement > >80
30
+ through 99 - can be used for PS-specific values, regardless of protocol
31
+ version >
32
+ three_ds_requestor_authentication_info
33
+ (List[ThreeDsRequestorAuthenticationInfo]): Information about how the 3DS
34
+ Requestor authenticated the cardholder before or during the transaction.
35
+ three_ds_requestor_challenge_ind (List[ThreeDsRequestorChallengeIndEnum]):
36
+ Indicates whether a challenge is requested for this transaction. For
37
+ example: For 01-PA, a 3DS Requestor may have concerns about the
38
+ transaction, and request a challenge. For 02-NPA, a challenge may be
39
+ necessary when adding a new card to a wallet. Values "05" through "09"
40
+ are accepted as well if 3DS Server initiates authentication with EMV 3DS
41
+ 2.2.0 version or greater (required protocol version can be set in the
42
+ preferred_protocol_version field). If the element is not provided, the
43
+ expected action is that the ACS would interpret as 01 (No preference).
44
+ In versions prior to 2.3.1 only a single element is supported. Starting
45
+ from EMVCo version 2.3.1, this array can now support 1-2 elements. When
46
+ providing two preferences, you must ensure that they are in preference
47
+ order and are not conflicting. For example, 02 = No challenge requested
48
+ and 04 = Challenge requested (Mandate). >01 - No preference > >02 - No
49
+ challenge requested > >03 - Challenge requested: 3DS Requestor Preference
50
+ > >04 - Challenge requested: Mandate > >05 - No challenge requested
51
+ (transactional risk analysis is already performed) (EMV 3DS 2.2.0 version
52
+ or greater) > >06 - No challenge requested (Data share only) (EMV 3DS
53
+ 2.2.0 version or greater) > >07 - No challenge requested (strong consumer
54
+ authentication is already performed) (EMV 3DS 2.2.0 version or greater) >
55
+ >08 - No challenge requested (utilise whitelist exemption if no challenge
56
+ required) (EMV 3DS 2.2.0 version or greater) > >09 - Challenge requested
57
+ (whitelist prompt requested if challenge required) (EMV 3DS 2.2.0 version
58
+ or greater) > >80 through 99 - can be used for PS-specific values,
59
+ regardless of protocol version >
60
+ three_ds_requestor_prior_authentication_info
61
+ (List[ThreeDsRequestorPriorAuthenticationInfo]): This object contains
62
+ information about how the 3DS Requestor authenticated the cardholder as
63
+ part of a previous 3DS transaction. In versions prior to 2.3.1, this
64
+ array is limited to a size of 1. Starting from EMVCo version 2.3.1 this
65
+ array size may be 1-3. This field is optional, but recommended to
66
+ include for versions prior to 2.3.1. From 2.3.1, it is required for 3RI
67
+ in the case of Decoupled Authentication Fallback or for SPC.
68
+ three_ds_requestor_dec_req_ind (ThreeDsRequestorDecReqIndEnum): Indicates
69
+ whether the 3DS Requestor requests the ACS to utilise Decoupled
70
+ Authentication and agrees to utilise Decoupled Authentication if the ACS
71
+ confirms its use. Value "F" and "B" are only valid for EMV 3DS 2.3.1 or
72
+ later. The field is optional and if value is not present, the expected
73
+ action is for the ACS to interpret as "N". Available for supporting EMV
74
+ 3DS 2.2.0 and later versions. >Y - Decoupled Authentication is supported
75
+ and preferred if challenge is necessary. > >N - Do not use Decoupled
76
+ Authentication. > >F - Decoupled Authentication is supported and is to be
77
+ used only as a fallback challenge method if a challenge is necessary
78
+ (Transaction Status = D in RReq). Available in EMV 3DS 2.3.1 and later. >
79
+ >B - Decoupled Authentication is supported and can be used as a primary
80
+ or fallback challenge method if a challenge is necessary (Transaction
81
+ Status = D in either ARes or RReq). Available in EMV 3DS 2.3.1 and later.
82
+ >
83
+ three_ds_requestor_dec_max_time (int): Indicates the maximum amount of time
84
+ that the 3DS Requestor will wait for an ACS to provide the results of a
85
+ Decoupled Authentication transaction (in minutes). Valid values are
86
+ between 1 and 10080. The field is optional and if value is not present,
87
+ the expected action is for the ACS to interpret it as 10080 minutes (7
88
+ days). Available for supporting EMV 3DS 2.2.0 and later versions.
89
+ Starting from EMV 3DS 2.3.1: This field is required if
90
+ three_ds_requestor_dec_req_ind = Y, F or B
91
+ three_ds_requestor_spc_support (ThreeDsRequestorSpcSupportEnum): Indicate if
92
+ the 3DS Requestor supports the SPC authentication. This field is
93
+ required if device_channel = 02 (BRW) and it is supported by the 3DS
94
+ Requestor. Available for supporting EMV 3DS 2.3.1 and later versions. >Y
95
+ - Supported >
96
+ spc_incomp_ind (str): Reason that the SPC authentication was not completed.
97
+ This field is required if device_channel = 02 (BRW) and the 3DS Requestor
98
+ attempts to invoke SPC API and there is an error. Available for
99
+ supporting EMV 3DS 2.3.1 and later versions.
100
+ additional_properties (Dict[str, object]): The additional properties for the
101
+ model.
102
+
103
+ """
104
+
105
+ # Create a mapping from Model property names to API property names
106
+ _names = {
107
+ "three_ds_requestor_authentication_ind":
108
+ "three_ds_requestor_authentication_ind",
109
+ "three_ds_requestor_authentication_info":
110
+ "three_ds_requestor_authentication_info",
111
+ "three_ds_requestor_challenge_ind": "three_ds_requestor_challenge_ind",
112
+ "three_ds_requestor_prior_authentication_info":
113
+ "three_ds_requestor_prior_authentication_info",
114
+ "three_ds_requestor_dec_req_ind": "three_ds_requestor_dec_req_ind",
115
+ "three_ds_requestor_dec_max_time": "three_ds_requestor_dec_max_time",
116
+ "three_ds_requestor_spc_support": "three_ds_requestor_spc_support",
117
+ "spc_incomp_ind": "spc_incomp_ind",
118
+ }
119
+
120
+ _optionals = [
121
+ "three_ds_requestor_authentication_info",
122
+ "three_ds_requestor_challenge_ind",
123
+ "three_ds_requestor_prior_authentication_info",
124
+ "three_ds_requestor_dec_req_ind",
125
+ "three_ds_requestor_dec_max_time",
126
+ "three_ds_requestor_spc_support",
127
+ "spc_incomp_ind",
128
+ ]
129
+
130
+ def __init__(
131
+ self,
132
+ three_ds_requestor_authentication_ind=None,
133
+ three_ds_requestor_authentication_info=APIHelper.SKIP,
134
+ three_ds_requestor_challenge_ind=APIHelper.SKIP,
135
+ three_ds_requestor_prior_authentication_info=APIHelper.SKIP,
136
+ three_ds_requestor_dec_req_ind=APIHelper.SKIP,
137
+ three_ds_requestor_dec_max_time=APIHelper.SKIP,
138
+ three_ds_requestor_spc_support=APIHelper.SKIP,
139
+ spc_incomp_ind=APIHelper.SKIP,
140
+ additional_properties=None):
141
+ """Initialize a ThreeDsRequestor instance."""
142
+ # Initialize members of the class
143
+ self.three_ds_requestor_authentication_ind =\
144
+ three_ds_requestor_authentication_ind
145
+ if three_ds_requestor_authentication_info is not APIHelper.SKIP:
146
+ self.three_ds_requestor_authentication_info =\
147
+ three_ds_requestor_authentication_info
148
+ if three_ds_requestor_challenge_ind is not APIHelper.SKIP:
149
+ self.three_ds_requestor_challenge_ind = three_ds_requestor_challenge_ind
150
+ if three_ds_requestor_prior_authentication_info is not APIHelper.SKIP:
151
+ self.three_ds_requestor_prior_authentication_info =\
152
+ three_ds_requestor_prior_authentication_info
153
+ if three_ds_requestor_dec_req_ind is not APIHelper.SKIP:
154
+ self.three_ds_requestor_dec_req_ind = three_ds_requestor_dec_req_ind
155
+ if three_ds_requestor_dec_max_time is not APIHelper.SKIP:
156
+ self.three_ds_requestor_dec_max_time = three_ds_requestor_dec_max_time
157
+ if three_ds_requestor_spc_support is not APIHelper.SKIP:
158
+ self.three_ds_requestor_spc_support = three_ds_requestor_spc_support
159
+ if spc_incomp_ind is not APIHelper.SKIP:
160
+ self.spc_incomp_ind = spc_incomp_ind
161
+
162
+ # Add additional model properties to the instance
163
+ if additional_properties is None:
164
+ additional_properties = {}
165
+ self.additional_properties = additional_properties
166
+
167
+ @classmethod
168
+ def from_dictionary(cls,
169
+ dictionary):
170
+ """Create an instance of this model from a dictionary
171
+
172
+ Args:
173
+ dictionary (dictionary): A dictionary representation of the object
174
+ as obtained from the deserialization of the server's response. The
175
+ keys MUST match property names in the API description.
176
+
177
+ Returns:
178
+ object: An instance of this structure class.
179
+
180
+ """
181
+ if not isinstance(dictionary, dict) or dictionary is None:
182
+ return None
183
+
184
+ # Extract variables from the dictionary
185
+ three_ds_requestor_authentication_ind =\
186
+ dictionary.get("three_ds_requestor_authentication_ind")\
187
+ if dictionary.get("three_ds_requestor_authentication_ind")\
188
+ else None
189
+ three_ds_requestor_authentication_info = None
190
+ if dictionary.get("three_ds_requestor_authentication_info") is not None:
191
+ three_ds_requestor_authentication_info = [
192
+ ThreeDsRequestorAuthenticationInfo.from_dictionary(x)
193
+ for x in dictionary.get("three_ds_requestor_authentication_info")
194
+ ]
195
+ else:
196
+ three_ds_requestor_authentication_info = APIHelper.SKIP
197
+ three_ds_requestor_challenge_ind =\
198
+ dictionary.get("three_ds_requestor_challenge_ind")\
199
+ if dictionary.get("three_ds_requestor_challenge_ind")\
200
+ else APIHelper.SKIP
201
+ three_ds_requestor_prior_authentication_info = None
202
+ if dictionary.get("three_ds_requestor_prior_authentication_info") is not None:
203
+ three_ds_requestor_prior_authentication_info = [
204
+ ThreeDsRequestorPriorAuthenticationInfo.from_dictionary(x)
205
+ for x in dictionary.get("three_ds_requestor_prior_authentication_info")
206
+ ]
207
+ else:
208
+ three_ds_requestor_prior_authentication_info = APIHelper.SKIP
209
+ three_ds_requestor_dec_req_ind =\
210
+ dictionary.get("three_ds_requestor_dec_req_ind")\
211
+ if dictionary.get("three_ds_requestor_dec_req_ind")\
212
+ else APIHelper.SKIP
213
+ three_ds_requestor_dec_max_time =\
214
+ dictionary.get("three_ds_requestor_dec_max_time")\
215
+ if dictionary.get("three_ds_requestor_dec_max_time")\
216
+ else APIHelper.SKIP
217
+ three_ds_requestor_spc_support =\
218
+ dictionary.get("three_ds_requestor_spc_support")\
219
+ if dictionary.get("three_ds_requestor_spc_support")\
220
+ else APIHelper.SKIP
221
+ spc_incomp_ind =\
222
+ dictionary.get("spc_incomp_ind")\
223
+ if dictionary.get("spc_incomp_ind")\
224
+ else APIHelper.SKIP
225
+
226
+ # Clean out expected properties from dictionary
227
+ additional_properties =\
228
+ {k: v for k, v in dictionary.items() if k not in cls._names.values()}
229
+
230
+ # Return an object of this model
231
+ return cls(three_ds_requestor_authentication_ind,
232
+ three_ds_requestor_authentication_info,
233
+ three_ds_requestor_challenge_ind,
234
+ three_ds_requestor_prior_authentication_info,
235
+ three_ds_requestor_dec_req_ind,
236
+ three_ds_requestor_dec_max_time,
237
+ three_ds_requestor_spc_support,
238
+ spc_incomp_ind,
239
+ additional_properties)
240
+
241
+ def __repr__(self):
242
+ """Return a unambiguous string representation."""
243
+ _three_ds_requestor_authentication_ind=self.three_ds_requestor_authentication_ind
244
+ _three_ds_requestor_authentication_info=(
245
+ self.three_ds_requestor_authentication_info
246
+ if hasattr(self, "three_ds_requestor_authentication_info")
247
+ else None
248
+ )
249
+ _three_ds_requestor_challenge_ind=(
250
+ self.three_ds_requestor_challenge_ind
251
+ if hasattr(self, "three_ds_requestor_challenge_ind")
252
+ else None
253
+ )
254
+ _three_ds_requestor_prior_authentication_info=(
255
+ self.three_ds_requestor_prior_authentication_info
256
+ if hasattr(self, "three_ds_requestor_prior_authentication_info")
257
+ else None
258
+ )
259
+ _three_ds_requestor_dec_req_ind=(
260
+ self.three_ds_requestor_dec_req_ind
261
+ if hasattr(self, "three_ds_requestor_dec_req_ind")
262
+ else None
263
+ )
264
+ _three_ds_requestor_dec_max_time=(
265
+ self.three_ds_requestor_dec_max_time
266
+ if hasattr(self, "three_ds_requestor_dec_max_time")
267
+ else None
268
+ )
269
+ _three_ds_requestor_spc_support=(
270
+ self.three_ds_requestor_spc_support
271
+ if hasattr(self, "three_ds_requestor_spc_support")
272
+ else None
273
+ )
274
+ _spc_incomp_ind=(
275
+ self.spc_incomp_ind
276
+ if hasattr(self, "spc_incomp_ind")
277
+ else None
278
+ )
279
+ _additional_properties=self.additional_properties
280
+ return (
281
+ f"{self.__class__.__name__}("
282
+ f"three_ds_requestor_authentication_ind={_three_ds_requestor_authentication_ind!r}, "
283
+ f"three_ds_requestor_authentication_info={_three_ds_requestor_authentication_info!r}, "
284
+ f"three_ds_requestor_challenge_ind={_three_ds_requestor_challenge_ind!r}, "
285
+ f"three_ds_requestor_prior_authentication_info={_three_ds_requestor_prior_authentication_info!r}, "
286
+ f"three_ds_requestor_dec_req_ind={_three_ds_requestor_dec_req_ind!r}, "
287
+ f"three_ds_requestor_dec_max_time={_three_ds_requestor_dec_max_time!r}, "
288
+ f"three_ds_requestor_spc_support={_three_ds_requestor_spc_support!r}, "
289
+ f"spc_incomp_ind={_spc_incomp_ind!r}, "
290
+ f"additional_properties={_additional_properties!r}, "
291
+ f")"
292
+ )
293
+
294
+ def __str__(self):
295
+ """Return a human-readable string representation."""
296
+ _three_ds_requestor_authentication_ind=self.three_ds_requestor_authentication_ind
297
+ _three_ds_requestor_authentication_info=(
298
+ self.three_ds_requestor_authentication_info
299
+ if hasattr(self, "three_ds_requestor_authentication_info")
300
+ else None
301
+ )
302
+ _three_ds_requestor_challenge_ind=(
303
+ self.three_ds_requestor_challenge_ind
304
+ if hasattr(self, "three_ds_requestor_challenge_ind")
305
+ else None
306
+ )
307
+ _three_ds_requestor_prior_authentication_info=(
308
+ self.three_ds_requestor_prior_authentication_info
309
+ if hasattr(self, "three_ds_requestor_prior_authentication_info")
310
+ else None
311
+ )
312
+ _three_ds_requestor_dec_req_ind=(
313
+ self.three_ds_requestor_dec_req_ind
314
+ if hasattr(self, "three_ds_requestor_dec_req_ind")
315
+ else None
316
+ )
317
+ _three_ds_requestor_dec_max_time=(
318
+ self.three_ds_requestor_dec_max_time
319
+ if hasattr(self, "three_ds_requestor_dec_max_time")
320
+ else None
321
+ )
322
+ _three_ds_requestor_spc_support=(
323
+ self.three_ds_requestor_spc_support
324
+ if hasattr(self, "three_ds_requestor_spc_support")
325
+ else None
326
+ )
327
+ _spc_incomp_ind=(
328
+ self.spc_incomp_ind
329
+ if hasattr(self, "spc_incomp_ind")
330
+ else None
331
+ )
332
+ _additional_properties=self.additional_properties
333
+ return (
334
+ f"{self.__class__.__name__}("
335
+ f"three_ds_requestor_authentication_ind={_three_ds_requestor_authentication_ind!s}, "
336
+ f"three_ds_requestor_authentication_info={_three_ds_requestor_authentication_info!s}, "
337
+ f"three_ds_requestor_challenge_ind={_three_ds_requestor_challenge_ind!s}, "
338
+ f"three_ds_requestor_prior_authentication_info={_three_ds_requestor_prior_authentication_info!s}, "
339
+ f"three_ds_requestor_dec_req_ind={_three_ds_requestor_dec_req_ind!s}, "
340
+ f"three_ds_requestor_dec_max_time={_three_ds_requestor_dec_max_time!s}, "
341
+ f"three_ds_requestor_spc_support={_three_ds_requestor_spc_support!s}, "
342
+ f"spc_incomp_ind={_spc_incomp_ind!s}, "
343
+ f"additional_properties={_additional_properties!s}, "
344
+ f")"
345
+ )