cybersource_rest_client 0.0.53 → 0.0.55

Sign up to get free protection for your applications and to get access to all the features.
Files changed (148) hide show
  1. checksums.yaml +4 -4
  2. data/lib/AuthenticationSDK/authentication/http/GetSignatureParameter.rb +2 -2
  3. data/lib/AuthenticationSDK/authentication/http/HttpSignatureHeader.rb +6 -6
  4. data/lib/AuthenticationSDK/core/MerchantConfig.rb +6 -0
  5. data/lib/AuthenticationSDK/util/Cache.rb +15 -1
  6. data/lib/AuthenticationSDK/util/Constants.rb +1 -1
  7. data/lib/AuthenticationSDK/util/JWEUtility.rb +14 -0
  8. data/lib/cybersource_rest_client/api/batches_api.rb +12 -12
  9. data/lib/cybersource_rest_client/api/billing_agreements_api.rb +231 -0
  10. data/lib/cybersource_rest_client/api/decision_manager_api.rb +142 -0
  11. data/lib/cybersource_rest_client/api/invoice_settings_api.rb +2 -2
  12. data/lib/cybersource_rest_client/api/invoices_api.rb +6 -6
  13. data/lib/cybersource_rest_client/api/keymanagement_api.rb +3 -3
  14. data/lib/cybersource_rest_client/api/payments_api.rb +2 -2
  15. data/lib/cybersource_rest_client/api/plans_api.rb +32 -32
  16. data/lib/cybersource_rest_client/api/subscriptions_api.rb +32 -32
  17. data/lib/cybersource_rest_client/api/void_api.rb +2 -2
  18. data/lib/cybersource_rest_client/models/access_token_response.rb +244 -244
  19. data/lib/cybersource_rest_client/models/activate_deactivate_plan_response.rb +239 -0
  20. data/lib/cybersource_rest_client/models/{inline_response_200_9.rb → activate_subscription_response.rb} +2 -2
  21. data/lib/cybersource_rest_client/models/{inline_response_200_9_subscription_information.rb → activate_subscription_response_subscription_information.rb} +1 -1
  22. data/lib/cybersource_rest_client/models/bad_request_error.rb +192 -192
  23. data/lib/cybersource_rest_client/models/{inline_response_202_1.rb → cancel_subscription_response.rb} +2 -2
  24. data/lib/cybersource_rest_client/models/{inline_response_202_subscription_information.rb → cancel_subscription_response_subscription_information.rb} +1 -1
  25. data/lib/cybersource_rest_client/models/case_management_actions_request.rb +200 -0
  26. data/lib/cybersource_rest_client/models/case_management_comments_request.rb +206 -0
  27. data/lib/cybersource_rest_client/models/create_access_token_request.rb +254 -254
  28. data/lib/cybersource_rest_client/models/{inline_response_200_14.rb → create_billing_agreement.rb} +65 -88
  29. data/lib/cybersource_rest_client/models/create_bundled_decision_manager_case_request.rb +15 -5
  30. data/lib/cybersource_rest_client/models/create_plan_response.rb +239 -0
  31. data/lib/cybersource_rest_client/models/{inline_response_201_plan_information.rb → create_plan_response_plan_information.rb} +1 -1
  32. data/lib/cybersource_rest_client/models/create_subscription_request.rb +1 -1
  33. data/lib/cybersource_rest_client/models/{inline_response_201_1.rb → create_subscription_response.rb} +3 -3
  34. data/lib/cybersource_rest_client/models/{inline_response_201_1__links.rb → create_subscription_response__links.rb} +1 -1
  35. data/lib/cybersource_rest_client/models/{inline_response_201_1_subscription_information.rb → create_subscription_response_subscription_information.rb} +1 -1
  36. data/lib/cybersource_rest_client/models/delete_plan_response.rb +202 -0
  37. data/lib/cybersource_rest_client/models/{inline_response_202_2.rb → get_all_plans_response.rb} +31 -18
  38. data/lib/cybersource_rest_client/models/{inline_response_200__links.rb → get_all_plans_response__links.rb} +1 -1
  39. data/lib/cybersource_rest_client/models/{inline_response_200_order_information.rb → get_all_plans_response_order_information.rb} +2 -2
  40. data/lib/cybersource_rest_client/models/{inline_response_200_order_information_amount_details.rb → get_all_plans_response_order_information_amount_details.rb} +1 -1
  41. data/lib/cybersource_rest_client/models/{inline_response_200_plan_information.rb → get_all_plans_response_plan_information.rb} +3 -3
  42. data/lib/cybersource_rest_client/models/{inline_response_200_plan_information_billing_cycles.rb → get_all_plans_response_plan_information_billing_cycles.rb} +1 -1
  43. data/lib/cybersource_rest_client/models/{inline_response_200_plan_information_billing_period.rb → get_all_plans_response_plan_information_billing_period.rb} +1 -1
  44. data/lib/cybersource_rest_client/models/{inline_response_200_plans.rb → get_all_plans_response_plans.rb} +3 -3
  45. data/lib/cybersource_rest_client/models/{inline_response_200_6.rb → get_all_subscriptions_response.rb} +3 -3
  46. data/lib/cybersource_rest_client/models/{inline_response_200_6__links.rb → get_all_subscriptions_response__links.rb} +1 -1
  47. data/lib/cybersource_rest_client/models/get_all_subscriptions_response_order_information.rb +200 -0
  48. data/lib/cybersource_rest_client/models/{inline_response_200_6_order_information_bill_to.rb → get_all_subscriptions_response_order_information_bill_to.rb} +1 -1
  49. data/lib/cybersource_rest_client/models/{inline_response_200_6_payment_information.rb → get_all_subscriptions_response_payment_information.rb} +2 -2
  50. data/lib/cybersource_rest_client/models/{inline_response_200_6_payment_information_customer.rb → get_all_subscriptions_response_payment_information_customer.rb} +1 -1
  51. data/lib/cybersource_rest_client/models/{inline_response_200_6_plan_information.rb → get_all_subscriptions_response_plan_information.rb} +3 -3
  52. data/lib/cybersource_rest_client/models/{inline_response_200_6_plan_information_billing_cycles.rb → get_all_subscriptions_response_plan_information_billing_cycles.rb} +1 -1
  53. data/lib/cybersource_rest_client/models/{inline_response_200_6_subscription_information.rb → get_all_subscriptions_response_subscription_information.rb} +1 -1
  54. data/lib/cybersource_rest_client/models/{inline_response_200_6_subscriptions.rb → get_all_subscriptions_response_subscriptions.rb} +6 -6
  55. data/lib/cybersource_rest_client/models/{inline_response_200_5.rb → get_plan_code_response.rb} +1 -1
  56. data/lib/cybersource_rest_client/models/get_plan_response.rb +238 -0
  57. data/lib/cybersource_rest_client/models/{inline_response_200_10.rb → get_subscription_code_response.rb} +1 -1
  58. data/lib/cybersource_rest_client/models/{inline_response_200_7.rb → get_subscription_response.rb} +6 -6
  59. data/lib/cybersource_rest_client/models/inline_response_200.rb +30 -25
  60. data/lib/cybersource_rest_client/models/inline_response_200_1.rb +50 -40
  61. data/lib/cybersource_rest_client/models/{inline_response_200_11_keys.rb → inline_response_200_1_keys.rb} +1 -1
  62. data/lib/cybersource_rest_client/models/inline_response_200_2.rb +67 -17
  63. data/lib/cybersource_rest_client/models/{inline_response_200_12__embedded.rb → inline_response_200_2__embedded.rb} +2 -2
  64. data/lib/cybersource_rest_client/models/{inline_response_200_12__embedded__links.rb → inline_response_200_2__embedded__links.rb} +2 -2
  65. data/lib/cybersource_rest_client/models/{inline_response_200_12__embedded__links_reports.rb → inline_response_200_2__embedded__links_reports.rb} +1 -1
  66. data/lib/cybersource_rest_client/models/{inline_response_200_12__embedded_batches.rb → inline_response_200_2__embedded_batches.rb} +3 -3
  67. data/lib/cybersource_rest_client/models/{inline_response_200_12__embedded_totals.rb → inline_response_200_2__embedded_totals.rb} +1 -1
  68. data/lib/cybersource_rest_client/models/{inline_response_200_12__links.rb → inline_response_200_2__links.rb} +1 -1
  69. data/lib/cybersource_rest_client/models/inline_response_200_3.rb +81 -29
  70. data/lib/cybersource_rest_client/models/{inline_response_200_13__links.rb → inline_response_200_3__links.rb} +3 -3
  71. data/lib/cybersource_rest_client/models/{inline_response_202_2__links_status.rb → inline_response_200_3__links_report.rb} +1 -1
  72. data/lib/cybersource_rest_client/models/{inline_response_200_13_billing.rb → inline_response_200_3_billing.rb} +1 -1
  73. data/lib/cybersource_rest_client/models/inline_response_200_4.rb +96 -42
  74. data/lib/cybersource_rest_client/models/{inline_response_200_14_records.rb → inline_response_200_4_records.rb} +3 -3
  75. data/lib/cybersource_rest_client/models/{inline_response_200_14_response_record.rb → inline_response_200_4_response_record.rb} +2 -2
  76. data/lib/cybersource_rest_client/models/{inline_response_200_14_response_record_additional_updates.rb → inline_response_200_4_response_record_additional_updates.rb} +1 -1
  77. data/lib/cybersource_rest_client/models/{inline_response_200_14_source_record.rb → inline_response_200_4_source_record.rb} +1 -1
  78. data/lib/cybersource_rest_client/models/inline_response_200__embedded.rb +201 -0
  79. data/lib/cybersource_rest_client/models/inline_response_200__embedded_capture.rb +202 -0
  80. data/lib/cybersource_rest_client/models/inline_response_200__embedded_capture__links.rb +191 -0
  81. data/lib/cybersource_rest_client/models/inline_response_200__embedded_capture__links_self.rb +203 -0
  82. data/lib/cybersource_rest_client/models/inline_response_200__embedded_reversal.rb +202 -0
  83. data/lib/cybersource_rest_client/models/inline_response_200__embedded_reversal__links.rb +191 -0
  84. data/lib/cybersource_rest_client/models/inline_response_200__embedded_reversal__links_self.rb +203 -0
  85. data/lib/cybersource_rest_client/models/inline_response_201.rb +7 -27
  86. data/lib/cybersource_rest_client/models/inline_response_202.rb +17 -45
  87. data/lib/cybersource_rest_client/models/{inline_response_202_2__links.rb → inline_response_202__links.rb} +2 -2
  88. data/lib/cybersource_rest_client/models/{inline_response_200_13__links_report.rb → inline_response_202__links_status.rb} +1 -1
  89. data/lib/cybersource_rest_client/models/inline_response_400_1.rb +3 -3
  90. data/lib/cybersource_rest_client/models/inline_response_400_2.rb +1 -1
  91. data/lib/cybersource_rest_client/models/inline_response_400_3.rb +37 -60
  92. data/lib/cybersource_rest_client/models/inline_response_400_4.rb +61 -37
  93. data/lib/cybersource_rest_client/models/{inline_response_400_3_fields.rb → inline_response_400_4_fields.rb} +1 -1
  94. data/lib/cybersource_rest_client/models/inline_response_400_5.rb +10 -11
  95. data/lib/cybersource_rest_client/models/inline_response_400_6.rb +35 -75
  96. data/lib/cybersource_rest_client/models/inline_response_400_7.rb +276 -0
  97. data/lib/cybersource_rest_client/models/{inline_response_400_6_details.rb → inline_response_400_7_details.rb} +1 -1
  98. data/lib/cybersource_rest_client/models/inline_response_403_1.rb +236 -0
  99. data/lib/cybersource_rest_client/models/inline_response_422.rb +236 -0
  100. data/lib/cybersource_rest_client/models/inline_response_500_1.rb +20 -8
  101. data/lib/cybersource_rest_client/models/inline_response_500_2.rb +224 -0
  102. data/lib/cybersource_rest_client/models/inline_response_502.rb +13 -12
  103. data/lib/cybersource_rest_client/models/inline_response_502_1.rb +235 -0
  104. data/lib/cybersource_rest_client/models/inline_response_503.rb +236 -0
  105. data/lib/cybersource_rest_client/models/{inline_response_200_12.rb → intimate_billing_agreement.rb} +37 -59
  106. data/lib/cybersource_rest_client/models/invoicing_v2_invoices_all_get200_response.rb +1 -1
  107. data/lib/cybersource_rest_client/models/modify_billing_agreement.rb +270 -0
  108. data/lib/cybersource_rest_client/models/pts_v2_credits_post201_response_1.rb +239 -0
  109. data/lib/cybersource_rest_client/models/pts_v2_credits_post201_response_1_installment_information.rb +197 -0
  110. data/lib/cybersource_rest_client/models/pts_v2_credits_post201_response_1_processor_information.rb +214 -0
  111. data/lib/cybersource_rest_client/models/ptsv2billingagreements_aggregator_information.rb +207 -0
  112. data/lib/cybersource_rest_client/models/ptsv2billingagreements_consumer_authentication_information.rb +242 -0
  113. data/lib/cybersource_rest_client/models/ptsv2billingagreements_device_information.rb +231 -0
  114. data/lib/cybersource_rest_client/models/ptsv2billingagreements_installment_information.rb +327 -0
  115. data/lib/cybersource_rest_client/models/ptsv2billingagreements_merchant_information.rb +235 -0
  116. data/lib/cybersource_rest_client/models/ptsv2billingagreements_merchant_information_merchant_descriptor.rb +242 -0
  117. data/lib/cybersource_rest_client/models/{inline_response_200_6_order_information.rb → ptsv2billingagreements_order_information.rb} +3 -3
  118. data/lib/cybersource_rest_client/models/ptsv2billingagreements_order_information_bill_to.rb +401 -0
  119. data/lib/cybersource_rest_client/models/ptsv2billingagreements_payment_information.rb +200 -0
  120. data/lib/cybersource_rest_client/models/ptsv2billingagreements_payment_information_card.rb +259 -0
  121. data/lib/cybersource_rest_client/models/ptsv2billingagreements_payment_information_tokenized_card.rb +276 -0
  122. data/lib/cybersource_rest_client/models/ptsv2billingagreements_processing_information.rb +210 -0
  123. data/lib/cybersource_rest_client/models/ptsv2payments_order_information.rb +12 -1
  124. data/lib/cybersource_rest_client/models/ptsv2payments_processing_information_authorization_options.rb +16 -5
  125. data/lib/cybersource_rest_client/models/rbsv1plans_plan_information.rb +1 -1
  126. data/lib/cybersource_rest_client/models/rbsv1plansid_plan_information.rb +1 -1
  127. data/lib/cybersource_rest_client/models/rbsv1subscriptions_plan_information.rb +1 -1
  128. data/lib/cybersource_rest_client/models/resource_not_found_error.rb +192 -192
  129. data/lib/cybersource_rest_client/models/risk_v1_decisions_post201_response_consumer_authentication_information.rb +1 -1
  130. data/lib/cybersource_rest_client/models/riskv1authenticationsetups_token_information.rb +22 -5
  131. data/lib/cybersource_rest_client/models/riskv1decisions_order_information.rb +12 -1
  132. data/lib/cybersource_rest_client/models/riskv1decisions_processing_information.rb +1 -1
  133. data/lib/cybersource_rest_client/models/riskv1decisions_token_information.rb +197 -0
  134. data/lib/cybersource_rest_client/models/riskv1decisionsidactions_decision_information.rb +208 -0
  135. data/lib/cybersource_rest_client/models/riskv1decisionsidactions_processing_information.rb +193 -0
  136. data/lib/cybersource_rest_client/models/suspend_subscription_response.rb +239 -0
  137. data/lib/cybersource_rest_client/models/{inline_response_202_1_subscription_information.rb → suspend_subscription_response_subscription_information.rb} +1 -1
  138. data/lib/cybersource_rest_client/models/unauthorized_client_error.rb +192 -192
  139. data/lib/cybersource_rest_client/models/update_plan_request.rb +1 -1
  140. data/lib/cybersource_rest_client/models/update_plan_response.rb +239 -0
  141. data/lib/cybersource_rest_client/models/{inline_response_200_3_plan_information.rb → update_plan_response_plan_information.rb} +1 -1
  142. data/lib/cybersource_rest_client/models/{inline_response_200_8.rb → update_subscription_response.rb} +3 -3
  143. data/lib/cybersource_rest_client/models/validate_request.rb +15 -5
  144. data/lib/cybersource_rest_client/utilities/jwe_utility.rb +12 -0
  145. data/lib/cybersource_rest_client.rb +95 -54
  146. metadata +112 -57
  147. data/lib/cybersource_rest_client/models/inline_response_200_11.rb +0 -248
  148. data/lib/cybersource_rest_client/models/inline_response_200_13.rb +0 -291
@@ -0,0 +1,259 @@
1
+ =begin
2
+ #CyberSource Merged Spec
3
+
4
+ #All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html
5
+
6
+ OpenAPI spec version: 0.0.1
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.2.3
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module CyberSource
16
+ class Ptsv2billingagreementsPaymentInformationCard
17
+ # Two-digit month in which the payment card expires. Format: `MM`. Valid values: `01` through `12`. Leading 0 is required. #### Barclays and Streamline For Maestro (UK Domestic) and Maestro (International) cards on Barclays and Streamline, this must be a valid value (`01` through `12`) but is not required to be a valid expiration date. In other words, an expiration date that is in the past does not cause CyberSource to reject your request. However, an invalid expiration date might cause the issuer to reject your request. #### Encoded Account Numbers For encoded account numbers (_type_=039), if there is no expiration date on the card, use `12`. #### FDMS Nashville Required field. #### All other processors Required if `pointOfSaleInformation.entryMode=keyed`. However, this field is optional if your account is configured for relaxed requirements for address data and expiration date. **Important** It is your responsibility to determine whether a field is required for the transaction you are requesting. #### Google Pay transactions For PAN-based Google Pay transactions, this field is returned in the API response.
18
+ attr_accessor :expiration_month
19
+
20
+ # Four-digit year in which the payment card expires. Format: `YYYY`. #### Barclays and Streamline For Maestro (UK Domestic) and Maestro (International) cards on Barclays and Streamline, this must be a valid value (`1900` through `3000`) but is not required to be a valid expiration date. In other words, an expiration date that is in the past does not cause CyberSource to reject your request. However, an invalid expiration date might cause the issuer to reject your request. #### Encoded Account Numbers For encoded account numbers (**_type_**`=039`), if there is no expiration date on the card, use `2021`. #### FDMS Nashville Required field. #### FDC Nashville Global and FDMS South You can send in 2 digits or 4 digits. If you send in 2 digits, they must be the last 2 digits of the year. #### All other processors Required if `pointOfSaleInformation.entryMode=keyed`. However, this field is optional if your account is configured for relaxed requirements for address data and expiration date. **Important** It is your responsibility to determine whether a field is required for the transaction you are requesting. #### Google Pay transactions For PAN-based Google Pay transactions, this field is returned in the API response.
21
+ attr_accessor :expiration_year
22
+
23
+ # The customer’s payment card number, also known as the Primary Account Number (PAN). You can also use this field for encoded account numbers. #### FDMS Nashville Required. String (19) #### GPX Required if `pointOfSaleInformation.entryMode=keyed`. However, this field is optional if your account is configured for relaxed requirements for address data and expiration date. **Important** It is your responsibility to determine whether a field is required for the transaction you are requesting. #### All other processors Required if `pointOfSaleInformation.entryMode=keyed`. However, this field is optional if your account is configured for relaxed requirements for address data and expiration date. **Important** It is your responsibility to determine whether a field is required for the transaction you are requesting.
24
+ attr_accessor :number
25
+
26
+ # Card Verification Number. #### FDMS Nashville Required for American Express or if swiped; otherwise, optional. #### Ingenico ePayments Do not include this field when `commerceIndicator=recurring`. **Note** Ingenico ePayments was previously called _Global Collect_. #### TSYS Acquiring Solutions Optional if pointOfSaleInformation.entryMode=keyed; otherwise, not used. #### GPX Optional. #### All other processors: Optional.
27
+ attr_accessor :security_code
28
+
29
+ # Three-digit value that indicates the card type. **IMPORTANT** It is strongly recommended that you include the card type field in request messages even if it is optional for your processor and card type. Omitting the card type can cause the transaction to be processed with the wrong card type. Possible values: - `001`: Visa. For card-present transactions on all processors except SIX, the Visa Electron card type is processed the same way that the Visa debit card is processed. Use card type value `001` for Visa Electron. - `002`: Mastercard, Eurocard[^1], which is a European regional brand of Mastercard. - `003`: American Express - `004`: Discover - `005`: Diners Club - `006`: Carte Blanche[^1] - `007`: JCB[^1] - `014`: Enroute[^1] - `021`: JAL[^1] - `024`: Maestro (UK Domestic)[^1] - `031`: Delta[^1]: Use this value only for Ingenico ePayments. For other processors, use `001` for all Visa card types. - `033`: Visa Electron[^1]. Use this value only for Ingenico ePayments and SIX. For other processors, use `001` for all Visa card types. - `034`: Dankort[^1] - `036`: Cartes Bancaires[^1,4] - `037`: Carta Si[^1] - `039`: Encoded account number[^1] - `040`: UATP[^1] - `042`: Maestro (International)[^1] - `050`: Hipercard[^2,3] - `051`: Aura - `054`: Elo[^3] - `062`: China UnionPay - '070': EFTPOS [^1]: For this card type, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in your request for an authorization or a stand-alone credit. [^2]: For this card type on Cielo 3.0, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in a request for an authorization or a stand-alone credit. This card type is not supported on Cielo 1.5. [^3]: For this card type on Getnet and Rede, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in a request for an authorization or a stand-alone credit. [^4]: For this card type, you must include the `paymentInformation.card.type` in your request for any payer authentication services. #### Used by **Authorization** Required for Carte Blanche and JCB. Optional for all other card types. #### Card Present reply This field is included in the reply message when the client software that is installed on the POS terminal uses the token management service (TMS) to retrieve tokenized payment details. You must contact customer support to have your account enabled to receive these fields in the credit reply message. Returned by the Credit service. This reply field is only supported by the following processors: - American Express Direct - Credit Mutuel-CIC - FDC Nashville Global - OmniPay Direct - SIX #### Google Pay transactions For PAN-based Google Pay transactions, this field is returned in the API response. #### GPX This field only supports transactions from the following card types: - Visa - Mastercard - AMEX - Discover - Diners - JCB - Union Pay International
30
+ attr_accessor :type
31
+
32
+ # Attribute mapping from ruby-style variable name to JSON key.
33
+ def self.attribute_map
34
+ {
35
+ :'expiration_month' => :'expirationMonth',
36
+ :'expiration_year' => :'expirationYear',
37
+ :'number' => :'number',
38
+ :'security_code' => :'securityCode',
39
+ :'type' => :'type'
40
+ }
41
+ end
42
+
43
+ # Attribute mapping from JSON key to ruby-style variable name.
44
+ def self.json_map
45
+ {
46
+ :'expiration_month' => :'expiration_month',
47
+ :'expiration_year' => :'expiration_year',
48
+ :'number' => :'number',
49
+ :'security_code' => :'security_code',
50
+ :'type' => :'type'
51
+ }
52
+ end
53
+
54
+ # Attribute type mapping.
55
+ def self.swagger_types
56
+ {
57
+ :'expiration_month' => :'String',
58
+ :'expiration_year' => :'String',
59
+ :'number' => :'String',
60
+ :'security_code' => :'String',
61
+ :'type' => :'String'
62
+ }
63
+ end
64
+
65
+ # Initializes the object
66
+ # @param [Hash] attributes Model attributes in the form of hash
67
+ def initialize(attributes = {})
68
+ return unless attributes.is_a?(Hash)
69
+
70
+ # convert string to symbol for hash key
71
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
72
+
73
+ if attributes.has_key?(:'expirationMonth')
74
+ self.expiration_month = attributes[:'expirationMonth']
75
+ end
76
+
77
+ if attributes.has_key?(:'expirationYear')
78
+ self.expiration_year = attributes[:'expirationYear']
79
+ end
80
+
81
+ if attributes.has_key?(:'number')
82
+ self.number = attributes[:'number']
83
+ end
84
+
85
+ if attributes.has_key?(:'securityCode')
86
+ self.security_code = attributes[:'securityCode']
87
+ end
88
+
89
+ if attributes.has_key?(:'type')
90
+ self.type = attributes[:'type']
91
+ end
92
+ end
93
+
94
+ # Show invalid properties with the reasons. Usually used together with valid?
95
+ # @return Array for valid properties with the reasons
96
+ def list_invalid_properties
97
+ invalid_properties = Array.new
98
+ invalid_properties
99
+ end
100
+
101
+ # Check to see if the all the properties in the model are valid
102
+ # @return true if the model is valid
103
+ def valid?
104
+ true
105
+ end
106
+
107
+ # Custom attribute writer method with validation
108
+ # @param [Object] expiration_month Value to be assigned
109
+ def expiration_month=(expiration_month)
110
+ @expiration_month = expiration_month
111
+ end
112
+
113
+ # Custom attribute writer method with validation
114
+ # @param [Object] expiration_year Value to be assigned
115
+ def expiration_year=(expiration_year)
116
+ @expiration_year = expiration_year
117
+ end
118
+
119
+ # Custom attribute writer method with validation
120
+ # @param [Object] number Value to be assigned
121
+ def number=(number)
122
+ @number = number
123
+ end
124
+
125
+ # Custom attribute writer method with validation
126
+ # @param [Object] security_code Value to be assigned
127
+ def security_code=(security_code)
128
+ @security_code = security_code
129
+ end
130
+
131
+ # Checks equality by comparing each attribute.
132
+ # @param [Object] Object to be compared
133
+ def ==(o)
134
+ return true if self.equal?(o)
135
+ self.class == o.class &&
136
+ expiration_month == o.expiration_month &&
137
+ expiration_year == o.expiration_year &&
138
+ number == o.number &&
139
+ security_code == o.security_code &&
140
+ type == o.type
141
+ end
142
+
143
+ # @see the `==` method
144
+ # @param [Object] Object to be compared
145
+ def eql?(o)
146
+ self == o
147
+ end
148
+
149
+ # Calculates hash code according to all attributes.
150
+ # @return [Fixnum] Hash code
151
+ def hash
152
+ [expiration_month, expiration_year, number, security_code, type].hash
153
+ end
154
+
155
+ # Builds the object from hash
156
+ # @param [Hash] attributes Model attributes in the form of hash
157
+ # @return [Object] Returns the model itself
158
+ def build_from_hash(attributes)
159
+ return nil unless attributes.is_a?(Hash)
160
+ self.class.swagger_types.each_pair do |key, type|
161
+ if type =~ /\AArray<(.*)>/i
162
+ # check to ensure the input is an array given that the the attribute
163
+ # is documented as an array but the input is not
164
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
165
+ self.send("#{self.class.json_map[key]}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
166
+ end
167
+ elsif !attributes[self.class.attribute_map[key]].nil?
168
+ self.send("#{self.class.json_map[key]}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
169
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
170
+ end
171
+
172
+ self
173
+ end
174
+
175
+ # Deserializes the data based on type
176
+ # @param string type Data type
177
+ # @param string value Value to be deserialized
178
+ # @return [Object] Deserialized data
179
+ def _deserialize(type, value)
180
+ case type.to_sym
181
+ when :DateTime
182
+ DateTime.parse(value)
183
+ when :Date
184
+ Date.parse(value)
185
+ when :String
186
+ value.to_s
187
+ when :Integer
188
+ value.to_i
189
+ when :Float
190
+ value.to_f
191
+ when :BOOLEAN
192
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
193
+ true
194
+ else
195
+ false
196
+ end
197
+ when :Object
198
+ # generic object (usually a Hash), return directly
199
+ value
200
+ when /\AArray<(?<inner_type>.+)>\z/
201
+ inner_type = Regexp.last_match[:inner_type]
202
+ value.map { |v| _deserialize(inner_type, v) }
203
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
204
+ k_type = Regexp.last_match[:k_type]
205
+ v_type = Regexp.last_match[:v_type]
206
+ {}.tap do |hash|
207
+ value.each do |k, v|
208
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
209
+ end
210
+ end
211
+ else # model
212
+ temp_model = CyberSource.const_get(type).new
213
+ temp_model.build_from_hash(value)
214
+ end
215
+ end
216
+
217
+ # Returns the string representation of the object
218
+ # @return [String] String presentation of the object
219
+ def to_s
220
+ to_hash.to_s
221
+ end
222
+
223
+ # to_body is an alias to to_hash (backward compatibility)
224
+ # @return [Hash] Returns the object in the form of hash
225
+ def to_body
226
+ to_hash
227
+ end
228
+
229
+ # Returns the object in the form of hash
230
+ # @return [Hash] Returns the object in the form of hash
231
+ def to_hash
232
+ hash = {}
233
+ self.class.attribute_map.each_pair do |attr, param|
234
+ value = self.send(attr)
235
+ next if value.nil?
236
+ hash[param] = _to_hash(value)
237
+ end
238
+ hash
239
+ end
240
+
241
+ # Outputs non-array value in the form of hash
242
+ # For object, use to_hash. Otherwise, just return the value
243
+ # @param [Object] value Any valid value
244
+ # @return [Hash] Returns the value in the form of hash
245
+ def _to_hash(value)
246
+ if value.is_a?(Array)
247
+ value.compact.map { |v| _to_hash(v) }
248
+ elsif value.is_a?(Hash)
249
+ {}.tap do |hash|
250
+ value.each { |k, v| hash[k] = _to_hash(v) }
251
+ end
252
+ elsif value.respond_to? :to_hash
253
+ value.to_hash
254
+ else
255
+ value
256
+ end
257
+ end
258
+ end
259
+ end
@@ -0,0 +1,276 @@
1
+ =begin
2
+ #CyberSource Merged Spec
3
+
4
+ #All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html
5
+
6
+ OpenAPI spec version: 0.0.1
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.2.3
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module CyberSource
16
+ class Ptsv2billingagreementsPaymentInformationTokenizedCard
17
+ # This field contains token information.
18
+ attr_accessor :cryptogram
19
+
20
+ # One of two possible meanings: - The two-digit month in which a token expires. - The two-digit month in which a card expires. Format: `MM` Possible values: `01` through `12` **NOTE** The meaning of this field is dependent on the payment processor that is returning the value in an authorization reply. Please see the processor-specific details below. #### Barclays and Streamline For Maestro (UK Domestic) and Maestro (International) cards on Barclays and Streamline, this must be a valid value (`01` through `12`) but is not required to be a valid expiration date. In other words, an expiration date that is in the past does not cause CyberSource to reject your request. However, an invalid expiration date might cause the issuer to reject your request. #### Encoded Account Numbers For encoded account numbers (`card_type=039`), if there is no expiration date on the card, use `12`.\\ **Important** It is your responsibility to determine whether a field is required for the transaction you are requesting. #### Samsung Pay and Apple Pay Month in which the token expires. CyberSource includes this field in the reply message when it decrypts the payment blob for the tokenized transaction. For processor-specific information, see the `customer_cc_expmo` field in [Credit Card Services Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/CC_Svcs_SCMP_API/html)
21
+ attr_accessor :expiration_month
22
+
23
+ # One of two possible meanings: - The four-digit year in which a token expires. - The four-digit year in which a card expires. Format: `YYYY` Possible values: `1900` through `3000` Data type: Non-negative integer **NOTE** The meaning of this field is dependent on the payment processor that is returning the value in an authorization reply. Please see the processor-specific details below. #### Barclays and Streamline For Maestro (UK Domestic) and Maestro (International) cards on Barclays and Streamline, this must be a valid value (1900 through 3000) but is not required to be a valid expiration date. In other words, an expiration date that is in the past does not cause CyberSource to reject your request. However, an invalid expiration date might cause the issuer to reject your request. #### Encoded Account Numbers For encoded account numbers (`card_ type=039`), if there is no expiration date on the card, use `2021`. #### FDC Nashville Global and FDMS South You can send in 2 digits or 4 digits. When you send in 2 digits, they must be the last 2 digits of the year. #### Samsung Pay and Apple Pay Year in which the token expires. CyberSource includes this field in the reply message when it decrypts the payment blob for the tokenized transaction. **Important** It is your responsibility to determine whether a field is required for the transaction you are requesting. For processor-specific information, see the `customer_cc_expyr` or `token_expiration_year` field in [Credit Card Services Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/CC_Svcs_SCMP_API/html)
24
+ attr_accessor :expiration_year
25
+
26
+ # Customer’s payment network token value.
27
+ attr_accessor :number
28
+
29
+ # Type of transaction that provided the token data. This value does not specify the token service provider; it specifies the entity that provided you with information about the token. Possible value: - `2`: Near-field communication (NFC) transaction. The customer’s mobile device provided the token data for a contactless EMV transaction. For recurring transactions, use this value if the original transaction was a contactless EMV transaction. #### Visa Platform Connect - `1`: For Rupay and In App tokenization. Example: InApp apple pay. - `3`: Card/Credential On File Tokenization. **NOTE** No CyberSource through VisaNet acquirers support EMV at this time. Required field for PIN debit credit or PIN debit purchase transactions that use payment network tokens; otherwise, not used.
30
+ attr_accessor :transaction_type
31
+
32
+ # Three-digit value that indicates the card type. **IMPORTANT** It is strongly recommended that you include the card type field in request messages even if it is optional for your processor and card type. Omitting the card type can cause the transaction to be processed with the wrong card type. Possible values: - `001`: Visa. For card-present transactions on all processors except SIX, the Visa Electron card type is processed the same way that the Visa debit card is processed. Use card type value `001` for Visa Electron. - `002`: Mastercard, Eurocard[^1], which is a European regional brand of Mastercard. - `003`: American Express - `004`: Discover - `005`: Diners Club - `006`: Carte Blanche[^1] - `007`: JCB[^1] - `014`: Enroute[^1] - `021`: JAL[^1] - `024`: Maestro (UK Domestic)[^1] - `031`: Delta[^1]: Use this value only for Ingenico ePayments. For other processors, use `001` for all Visa card types. - `033`: Visa Electron[^1]. Use this value only for Ingenico ePayments and SIX. For other processors, use `001` for all Visa card types. - `034`: Dankort[^1] - `036`: Cartes Bancaires[^1,4] - `037`: Carta Si[^1] - `039`: Encoded account number[^1] - `040`: UATP[^1] - `042`: Maestro (International)[^1] - `050`: Hipercard[^2,3] - `051`: Aura - `054`: Elo[^3] - `062`: China UnionPay - '070': EFTPOS [^1]: For this card type, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in your request for an authorization or a stand-alone credit. [^2]: For this card type on Cielo 3.0, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in a request for an authorization or a stand-alone credit. This card type is not supported on Cielo 1.5. [^3]: For this card type on Getnet and Rede, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in a request for an authorization or a stand-alone credit. [^4]: For this card type, you must include the `paymentInformation.card.type` in your request for any payer authentication services. #### Used by **Authorization** Required for Carte Blanche and JCB. Optional for all other card types. #### Card Present reply This field is included in the reply message when the client software that is installed on the POS terminal uses the token management service (TMS) to retrieve tokenized payment details. You must contact customer support to have your account enabled to receive these fields in the credit reply message. Returned by the Credit service. This reply field is only supported by the following processors: - American Express Direct - Credit Mutuel-CIC - FDC Nashville Global - OmniPay Direct - SIX #### Google Pay transactions For PAN-based Google Pay transactions, this field is returned in the API response. #### GPX This field only supports transactions from the following card types: - Visa - Mastercard - AMEX - Discover - Diners - JCB - Union Pay International
33
+ attr_accessor :type
34
+
35
+ # Attribute mapping from ruby-style variable name to JSON key.
36
+ def self.attribute_map
37
+ {
38
+ :'cryptogram' => :'cryptogram',
39
+ :'expiration_month' => :'expirationMonth',
40
+ :'expiration_year' => :'expirationYear',
41
+ :'number' => :'number',
42
+ :'transaction_type' => :'transactionType',
43
+ :'type' => :'type'
44
+ }
45
+ end
46
+
47
+ # Attribute mapping from JSON key to ruby-style variable name.
48
+ def self.json_map
49
+ {
50
+ :'cryptogram' => :'cryptogram',
51
+ :'expiration_month' => :'expiration_month',
52
+ :'expiration_year' => :'expiration_year',
53
+ :'number' => :'number',
54
+ :'transaction_type' => :'transaction_type',
55
+ :'type' => :'type'
56
+ }
57
+ end
58
+
59
+ # Attribute type mapping.
60
+ def self.swagger_types
61
+ {
62
+ :'cryptogram' => :'String',
63
+ :'expiration_month' => :'String',
64
+ :'expiration_year' => :'String',
65
+ :'number' => :'String',
66
+ :'transaction_type' => :'String',
67
+ :'type' => :'String'
68
+ }
69
+ end
70
+
71
+ # Initializes the object
72
+ # @param [Hash] attributes Model attributes in the form of hash
73
+ def initialize(attributes = {})
74
+ return unless attributes.is_a?(Hash)
75
+
76
+ # convert string to symbol for hash key
77
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
78
+
79
+ if attributes.has_key?(:'cryptogram')
80
+ self.cryptogram = attributes[:'cryptogram']
81
+ end
82
+
83
+ if attributes.has_key?(:'expirationMonth')
84
+ self.expiration_month = attributes[:'expirationMonth']
85
+ end
86
+
87
+ if attributes.has_key?(:'expirationYear')
88
+ self.expiration_year = attributes[:'expirationYear']
89
+ end
90
+
91
+ if attributes.has_key?(:'number')
92
+ self.number = attributes[:'number']
93
+ end
94
+
95
+ if attributes.has_key?(:'transactionType')
96
+ self.transaction_type = attributes[:'transactionType']
97
+ end
98
+
99
+ if attributes.has_key?(:'type')
100
+ self.type = attributes[:'type']
101
+ end
102
+ end
103
+
104
+ # Show invalid properties with the reasons. Usually used together with valid?
105
+ # @return Array for valid properties with the reasons
106
+ def list_invalid_properties
107
+ invalid_properties = Array.new
108
+ invalid_properties
109
+ end
110
+
111
+ # Check to see if the all the properties in the model are valid
112
+ # @return true if the model is valid
113
+ def valid?
114
+ true
115
+ end
116
+
117
+ # Custom attribute writer method with validation
118
+ # @param [Object] cryptogram Value to be assigned
119
+ def cryptogram=(cryptogram)
120
+ @cryptogram = cryptogram
121
+ end
122
+
123
+ # Custom attribute writer method with validation
124
+ # @param [Object] expiration_month Value to be assigned
125
+ def expiration_month=(expiration_month)
126
+ @expiration_month = expiration_month
127
+ end
128
+
129
+ # Custom attribute writer method with validation
130
+ # @param [Object] expiration_year Value to be assigned
131
+ def expiration_year=(expiration_year)
132
+ @expiration_year = expiration_year
133
+ end
134
+
135
+ # Custom attribute writer method with validation
136
+ # @param [Object] number Value to be assigned
137
+ def number=(number)
138
+ @number = number
139
+ end
140
+
141
+ # Custom attribute writer method with validation
142
+ # @param [Object] transaction_type Value to be assigned
143
+ def transaction_type=(transaction_type)
144
+ @transaction_type = transaction_type
145
+ end
146
+
147
+ # Checks equality by comparing each attribute.
148
+ # @param [Object] Object to be compared
149
+ def ==(o)
150
+ return true if self.equal?(o)
151
+ self.class == o.class &&
152
+ cryptogram == o.cryptogram &&
153
+ expiration_month == o.expiration_month &&
154
+ expiration_year == o.expiration_year &&
155
+ number == o.number &&
156
+ transaction_type == o.transaction_type &&
157
+ type == o.type
158
+ end
159
+
160
+ # @see the `==` method
161
+ # @param [Object] Object to be compared
162
+ def eql?(o)
163
+ self == o
164
+ end
165
+
166
+ # Calculates hash code according to all attributes.
167
+ # @return [Fixnum] Hash code
168
+ def hash
169
+ [cryptogram, expiration_month, expiration_year, number, transaction_type, type].hash
170
+ end
171
+
172
+ # Builds the object from hash
173
+ # @param [Hash] attributes Model attributes in the form of hash
174
+ # @return [Object] Returns the model itself
175
+ def build_from_hash(attributes)
176
+ return nil unless attributes.is_a?(Hash)
177
+ self.class.swagger_types.each_pair do |key, type|
178
+ if type =~ /\AArray<(.*)>/i
179
+ # check to ensure the input is an array given that the the attribute
180
+ # is documented as an array but the input is not
181
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
182
+ self.send("#{self.class.json_map[key]}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
183
+ end
184
+ elsif !attributes[self.class.attribute_map[key]].nil?
185
+ self.send("#{self.class.json_map[key]}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
186
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
187
+ end
188
+
189
+ self
190
+ end
191
+
192
+ # Deserializes the data based on type
193
+ # @param string type Data type
194
+ # @param string value Value to be deserialized
195
+ # @return [Object] Deserialized data
196
+ def _deserialize(type, value)
197
+ case type.to_sym
198
+ when :DateTime
199
+ DateTime.parse(value)
200
+ when :Date
201
+ Date.parse(value)
202
+ when :String
203
+ value.to_s
204
+ when :Integer
205
+ value.to_i
206
+ when :Float
207
+ value.to_f
208
+ when :BOOLEAN
209
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
210
+ true
211
+ else
212
+ false
213
+ end
214
+ when :Object
215
+ # generic object (usually a Hash), return directly
216
+ value
217
+ when /\AArray<(?<inner_type>.+)>\z/
218
+ inner_type = Regexp.last_match[:inner_type]
219
+ value.map { |v| _deserialize(inner_type, v) }
220
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
221
+ k_type = Regexp.last_match[:k_type]
222
+ v_type = Regexp.last_match[:v_type]
223
+ {}.tap do |hash|
224
+ value.each do |k, v|
225
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
226
+ end
227
+ end
228
+ else # model
229
+ temp_model = CyberSource.const_get(type).new
230
+ temp_model.build_from_hash(value)
231
+ end
232
+ end
233
+
234
+ # Returns the string representation of the object
235
+ # @return [String] String presentation of the object
236
+ def to_s
237
+ to_hash.to_s
238
+ end
239
+
240
+ # to_body is an alias to to_hash (backward compatibility)
241
+ # @return [Hash] Returns the object in the form of hash
242
+ def to_body
243
+ to_hash
244
+ end
245
+
246
+ # Returns the object in the form of hash
247
+ # @return [Hash] Returns the object in the form of hash
248
+ def to_hash
249
+ hash = {}
250
+ self.class.attribute_map.each_pair do |attr, param|
251
+ value = self.send(attr)
252
+ next if value.nil?
253
+ hash[param] = _to_hash(value)
254
+ end
255
+ hash
256
+ end
257
+
258
+ # Outputs non-array value in the form of hash
259
+ # For object, use to_hash. Otherwise, just return the value
260
+ # @param [Object] value Any valid value
261
+ # @return [Hash] Returns the value in the form of hash
262
+ def _to_hash(value)
263
+ if value.is_a?(Array)
264
+ value.compact.map { |v| _to_hash(v) }
265
+ elsif value.is_a?(Hash)
266
+ {}.tap do |hash|
267
+ value.each { |k, v| hash[k] = _to_hash(v) }
268
+ end
269
+ elsif value.respond_to? :to_hash
270
+ value.to_hash
271
+ else
272
+ value
273
+ end
274
+ end
275
+ end
276
+ end