paypal-server-sdk 2.0.0 → 2.2.0

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 (104) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +73 -23
  3. data/bin/console +15 -0
  4. data/lib/paypal_server_sdk/client.rb +11 -0
  5. data/lib/paypal_server_sdk/configuration.rb +66 -0
  6. data/lib/paypal_server_sdk/controllers/base_controller.rb +1 -1
  7. data/lib/paypal_server_sdk/http/auth/o_auth2.rb +15 -0
  8. data/lib/paypal_server_sdk/http/proxy_settings.rb +9 -0
  9. data/lib/paypal_server_sdk/logging/configuration/api_logging_configuration.rb +181 -109
  10. data/lib/paypal_server_sdk/models/apple_pay_payment_data_type.rb +13 -0
  11. data/lib/paypal_server_sdk/models/application_context_user_action.rb +13 -0
  12. data/lib/paypal_server_sdk/models/authorization_incomplete_reason.rb +13 -0
  13. data/lib/paypal_server_sdk/models/authorization_status.rb +17 -0
  14. data/lib/paypal_server_sdk/models/avs_code.rb +35 -0
  15. data/lib/paypal_server_sdk/models/callback_events.rb +13 -0
  16. data/lib/paypal_server_sdk/models/capture_incomplete_reason.rb +23 -0
  17. data/lib/paypal_server_sdk/models/capture_status.rb +17 -0
  18. data/lib/paypal_server_sdk/models/capture_type.rb +6 -0
  19. data/lib/paypal_server_sdk/models/card_brand.rb +41 -0
  20. data/lib/paypal_server_sdk/models/card_type.rb +16 -0
  21. data/lib/paypal_server_sdk/models/card_verification_status.rb +13 -0
  22. data/lib/paypal_server_sdk/models/checkout_payment_intent.rb +13 -0
  23. data/lib/paypal_server_sdk/models/cvv_code.rb +25 -0
  24. data/lib/paypal_server_sdk/models/disbursement_mode.rb +13 -0
  25. data/lib/paypal_server_sdk/models/dispute_category.rb +13 -0
  26. data/lib/paypal_server_sdk/models/eci_flag.rb +17 -0
  27. data/lib/paypal_server_sdk/models/enrollment_status.rb +15 -0
  28. data/lib/paypal_server_sdk/models/experience_context_shipping_preference.rb +14 -0
  29. data/lib/paypal_server_sdk/models/experience_status.rb +15 -0
  30. data/lib/paypal_server_sdk/models/fulfillment_type.rb +15 -0
  31. data/lib/paypal_server_sdk/models/google_pay_authentication_method.rb +13 -0
  32. data/lib/paypal_server_sdk/models/google_pay_payment_method.rb +6 -0
  33. data/lib/paypal_server_sdk/models/interval_unit.rb +15 -0
  34. data/lib/paypal_server_sdk/models/item_category.rb +14 -0
  35. data/lib/paypal_server_sdk/models/liability_shift_indicator.rb +14 -0
  36. data/lib/paypal_server_sdk/models/link_http_method.rb +19 -0
  37. data/lib/paypal_server_sdk/models/mobile_return_flow.rb +13 -0
  38. data/lib/paypal_server_sdk/models/o_auth_provider_error.rb +17 -0
  39. data/lib/paypal_server_sdk/models/order_application_context_landing_page.rb +14 -0
  40. data/lib/paypal_server_sdk/models/order_application_context_shipping_preference.rb +14 -0
  41. data/lib/paypal_server_sdk/models/order_application_context_user_action.rb +13 -0
  42. data/lib/paypal_server_sdk/models/order_status.rb +17 -0
  43. data/lib/paypal_server_sdk/models/order_tracker_status.rb +13 -0
  44. data/lib/paypal_server_sdk/models/orders_card_verification_method.rb +15 -0
  45. data/lib/paypal_server_sdk/models/os_type.rb +14 -0
  46. data/lib/paypal_server_sdk/models/pa_res_status.rb +19 -0
  47. data/lib/paypal_server_sdk/models/patch_op.rb +17 -0
  48. data/lib/paypal_server_sdk/models/payee_payment_method_preference.rb +13 -0
  49. data/lib/paypal_server_sdk/models/payment_advice_code.rb +26 -0
  50. data/lib/paypal_server_sdk/models/payment_initiator.rb +13 -0
  51. data/lib/paypal_server_sdk/models/payment_token_status.rb +16 -0
  52. data/lib/paypal_server_sdk/models/paypal_experience_landing_page.rb +15 -0
  53. data/lib/paypal_server_sdk/models/paypal_experience_user_action.rb +13 -0
  54. data/lib/paypal_server_sdk/models/paypal_payment_token_customer_type.rb +13 -0
  55. data/lib/paypal_server_sdk/models/paypal_payment_token_usage_type.rb +13 -0
  56. data/lib/paypal_server_sdk/models/paypal_reference_id_type.rb +15 -0
  57. data/lib/paypal_server_sdk/models/paypal_wallet_account_verification_status.rb +13 -0
  58. data/lib/paypal_server_sdk/models/paypal_wallet_attributes.rb +1 -2
  59. data/lib/paypal_server_sdk/models/paypal_wallet_contact_preference.rb +14 -0
  60. data/lib/paypal_server_sdk/models/paypal_wallet_context_shipping_preference.rb +14 -0
  61. data/lib/paypal_server_sdk/models/paypal_wallet_vault_base.rb +134 -0
  62. data/lib/paypal_server_sdk/models/paypal_wallet_vault_instruction.rb +20 -10
  63. data/lib/paypal_server_sdk/models/paypal_wallet_vault_status.rb +14 -0
  64. data/lib/paypal_server_sdk/models/phone_type.rb +16 -0
  65. data/lib/paypal_server_sdk/models/plan_request_status.rb +14 -0
  66. data/lib/paypal_server_sdk/models/pricing_model.rb +14 -0
  67. data/lib/paypal_server_sdk/models/processor_response_code.rb +165 -0
  68. data/lib/paypal_server_sdk/models/reason_code.rb +19 -0
  69. data/lib/paypal_server_sdk/models/refund_incomplete_reason.rb +6 -0
  70. data/lib/paypal_server_sdk/models/refund_status.rb +15 -0
  71. data/lib/paypal_server_sdk/models/return_flow.rb +13 -0
  72. data/lib/paypal_server_sdk/models/seller_protection_status.rb +14 -0
  73. data/lib/paypal_server_sdk/models/setup_fee_failure_action.rb +13 -0
  74. data/lib/paypal_server_sdk/models/shipment_carrier.rb +1428 -1
  75. data/lib/paypal_server_sdk/models/shipping_type.rb +15 -0
  76. data/lib/paypal_server_sdk/models/standard_entry_class_code.rb +15 -0
  77. data/lib/paypal_server_sdk/models/store_in_vault_instruction.rb +6 -0
  78. data/lib/paypal_server_sdk/models/stored_payment_source_payment_type.rb +14 -0
  79. data/lib/paypal_server_sdk/models/stored_payment_source_usage_type.rb +14 -0
  80. data/lib/paypal_server_sdk/models/subscriber.rb +29 -6
  81. data/lib/paypal_server_sdk/models/subscriber_request.rb +40 -17
  82. data/lib/paypal_server_sdk/models/subscription_payer.rb +85 -0
  83. data/lib/paypal_server_sdk/models/subscription_plan_status.rb +14 -0
  84. data/lib/paypal_server_sdk/models/subscription_pricing_model.rb +13 -0
  85. data/lib/paypal_server_sdk/models/subscriptions_card_brand.rb +36 -0
  86. data/lib/paypal_server_sdk/models/tax_id_type.rb +13 -0
  87. data/lib/paypal_server_sdk/models/tenure_type.rb +13 -0
  88. data/lib/paypal_server_sdk/models/token_type.rb +6 -0
  89. data/lib/paypal_server_sdk/models/upc_type.rb +18 -0
  90. data/lib/paypal_server_sdk/models/usage_pattern.rb +23 -0
  91. data/lib/paypal_server_sdk/models/usage_type.rb +39 -0
  92. data/lib/paypal_server_sdk/models/vault_card_verification_method.rb +13 -0
  93. data/lib/paypal_server_sdk/models/vault_instruction_action.rb +13 -0
  94. data/lib/paypal_server_sdk/models/vault_status.rb +14 -0
  95. data/lib/paypal_server_sdk/models/vault_token_request_type.rb +6 -0
  96. data/lib/paypal_server_sdk/models/vault_user_action.rb +13 -0
  97. data/lib/paypal_server_sdk/models/venmo_payment_token_customer_type.rb +13 -0
  98. data/lib/paypal_server_sdk/models/venmo_payment_token_usage_pattern.rb +17 -0
  99. data/lib/paypal_server_sdk/models/venmo_payment_token_usage_type.rb +13 -0
  100. data/lib/paypal_server_sdk/models/venmo_vault_response_status.rb +14 -0
  101. data/lib/paypal_server_sdk/models/venmo_wallet_experience_context_shipping_preference.rb +14 -0
  102. data/lib/paypal_server_sdk/models/venmo_wallet_experience_context_user_action.rb +13 -0
  103. data/lib/paypal_server_sdk.rb +3 -0
  104. metadata +6 -2
@@ -30,5 +30,18 @@ module PaypalServerSdk
30
30
 
31
31
  true
32
32
  end
33
+
34
+ def self.from_value(value, default_value = CONTINUE)
35
+ return default_value if value.nil?
36
+
37
+ str = value.to_s.strip
38
+
39
+ case str.downcase
40
+ when 'continue' then CONTINUE
41
+ when 'pay_now' then PAY_NOW
42
+ else
43
+ default_value
44
+ end
45
+ end
33
46
  end
34
47
  end
@@ -44,5 +44,22 @@ module PaypalServerSdk
44
44
 
45
45
  true
46
46
  end
47
+
48
+ def self.from_value(value, default_value = CREATED)
49
+ return default_value if value.nil?
50
+
51
+ str = value.to_s.strip
52
+
53
+ case str.downcase
54
+ when 'created' then CREATED
55
+ when 'saved' then SAVED
56
+ when 'approved' then APPROVED
57
+ when 'voided' then VOIDED
58
+ when 'completed' then COMPLETED
59
+ when 'payer_action_required' then PAYER_ACTION_REQUIRED
60
+ else
61
+ default_value
62
+ end
63
+ end
47
64
  end
48
65
  end
@@ -22,5 +22,18 @@ module PaypalServerSdk
22
22
 
23
23
  true
24
24
  end
25
+
26
+ def self.from_value(value, default_value = CANCELLED)
27
+ return default_value if value.nil?
28
+
29
+ str = value.to_s.strip
30
+
31
+ case str.downcase
32
+ when 'cancelled' then CANCELLED
33
+ when 'shipped' then SHIPPED
34
+ else
35
+ default_value
36
+ end
37
+ end
25
38
  end
26
39
  end
@@ -47,5 +47,20 @@ module PaypalServerSdk
47
47
 
48
48
  true
49
49
  end
50
+
51
+ def self.from_value(value, default_value = SCA_ALWAYS)
52
+ return default_value if value.nil?
53
+
54
+ str = value.to_s.strip
55
+
56
+ case str.downcase
57
+ when 'sca_always' then SCA_ALWAYS
58
+ when 'sca_when_required' then SCA_WHEN_REQUIRED
59
+ when 'enum_3d_secure' then ENUM_3D_SECURE
60
+ when 'avs_cvv' then AVS_CVV
61
+ else
62
+ default_value
63
+ end
64
+ end
50
65
  end
51
66
  end
@@ -22,5 +22,19 @@ module PaypalServerSdk
22
22
 
23
23
  true
24
24
  end
25
+
26
+ def self.from_value(value, default_value = ANDROID)
27
+ return default_value if value.nil?
28
+
29
+ str = value.to_s.strip
30
+
31
+ case str.downcase
32
+ when 'android' then ANDROID
33
+ when 'ios' then IOS
34
+ when 'other' then OTHER
35
+ else
36
+ default_value
37
+ end
38
+ end
25
39
  end
26
40
  end
@@ -38,5 +38,24 @@ module PaypalServerSdk
38
38
 
39
39
  true
40
40
  end
41
+
42
+ def self.from_value(value, default_value = SUCCESSFULAUTHENTICATION)
43
+ return default_value if value.nil?
44
+
45
+ str = value.to_s.strip
46
+
47
+ case str.downcase
48
+ when 'successfulauthentication' then SUCCESSFULAUTHENTICATION
49
+ when 'failedauthentication' then FAILEDAUTHENTICATION
50
+ when 'unabletocompleteauthentication' then UNABLETOCOMPLETEAUTHENTICATION
51
+ when 'successfulattemptstransaction' then SUCCESSFULATTEMPTSTRANSACTION
52
+ when 'challengerequired' then CHALLENGEREQUIRED
53
+ when 'authenticationrejected' then AUTHENTICATIONREJECTED
54
+ when 'decoupledauthentication' then DECOUPLEDAUTHENTICATION
55
+ when 'informationalonly' then INFORMATIONALONLY
56
+ else
57
+ default_value
58
+ end
59
+ end
41
60
  end
42
61
  end
@@ -68,5 +68,22 @@ module PaypalServerSdk
68
68
 
69
69
  true
70
70
  end
71
+
72
+ def self.from_value(value, default_value = ADD)
73
+ return default_value if value.nil?
74
+
75
+ str = value.to_s.strip
76
+
77
+ case str.downcase
78
+ when 'add' then ADD
79
+ when 'remove' then REMOVE
80
+ when 'replace' then REPLACE
81
+ when 'move' then MOVE
82
+ when 'copy' then COPY
83
+ when 'test' then TEST
84
+ else
85
+ default_value
86
+ end
87
+ end
71
88
  end
72
89
  end
@@ -21,5 +21,18 @@ module PaypalServerSdk
21
21
 
22
22
  true
23
23
  end
24
+
25
+ def self.from_value(value, default_value = UNRESTRICTED)
26
+ return default_value if value.nil?
27
+
28
+ str = value.to_s.strip
29
+
30
+ case str.downcase
31
+ when 'unrestricted' then UNRESTRICTED
32
+ when 'immediate_payment_required' then IMMEDIATE_PAYMENT_REQUIRED
33
+ else
34
+ default_value
35
+ end
36
+ end
24
37
  end
25
38
  end
@@ -71,5 +71,31 @@ module PaypalServerSdk
71
71
 
72
72
  true
73
73
  end
74
+
75
+ def self.from_value(value, default_value = PAYMENTADVICE_01)
76
+ return default_value if value.nil?
77
+
78
+ str = value.to_s.strip
79
+
80
+ case str.downcase
81
+ when 'paymentadvice_01' then PAYMENTADVICE_01
82
+ when 'paymentadvice_02' then PAYMENTADVICE_02
83
+ when 'paymentadvice_03' then PAYMENTADVICE_03
84
+ when 'paymentadvice_04' then PAYMENTADVICE_04
85
+ when 'paymentadvice_21' then PAYMENTADVICE_21
86
+ when 'paymentadvice_22' then PAYMENTADVICE_22
87
+ when 'paymentadvice_24' then PAYMENTADVICE_24
88
+ when 'paymentadvice_25' then PAYMENTADVICE_25
89
+ when 'paymentadvice_26' then PAYMENTADVICE_26
90
+ when 'paymentadvice_27' then PAYMENTADVICE_27
91
+ when 'paymentadvice_28' then PAYMENTADVICE_28
92
+ when 'paymentadvice_29' then PAYMENTADVICE_29
93
+ when 'paymentadvice_30' then PAYMENTADVICE_30
94
+ when 'paymentadvice_40' then PAYMENTADVICE_40
95
+ when 'paymentadvice_43' then PAYMENTADVICE_43
96
+ else
97
+ default_value
98
+ end
99
+ end
74
100
  end
75
101
  end
@@ -22,5 +22,18 @@ module PaypalServerSdk
22
22
 
23
23
  true
24
24
  end
25
+
26
+ def self.from_value(value, default_value = CUSTOMER)
27
+ return default_value if value.nil?
28
+
29
+ str = value.to_s.strip
30
+
31
+ case str.downcase
32
+ when 'customer' then CUSTOMER
33
+ when 'merchant' then MERCHANT
34
+ else
35
+ default_value
36
+ end
37
+ end
25
38
  end
26
39
  end
@@ -32,5 +32,21 @@ module PaypalServerSdk
32
32
 
33
33
  true
34
34
  end
35
+
36
+ def self.from_value(value, default_value = CREATED)
37
+ return default_value if value.nil?
38
+
39
+ str = value.to_s.strip
40
+
41
+ case str.downcase
42
+ when 'created' then CREATED
43
+ when 'payer_action_required' then PAYER_ACTION_REQUIRED
44
+ when 'approved' then APPROVED
45
+ when 'vaulted' then VAULTED
46
+ when 'tokenized' then TOKENIZED
47
+ else
48
+ default_value
49
+ end
50
+ end
35
51
  end
36
52
  end
@@ -37,5 +37,20 @@ module PaypalServerSdk
37
37
 
38
38
  true
39
39
  end
40
+
41
+ def self.from_value(value, default_value = LOGIN)
42
+ return default_value if value.nil?
43
+
44
+ str = value.to_s.strip
45
+
46
+ case str.downcase
47
+ when 'login' then LOGIN
48
+ when 'guest_checkout' then GUEST_CHECKOUT
49
+ when 'no_preference' then NO_PREFERENCE
50
+ when 'billing' then BILLING
51
+ else
52
+ default_value
53
+ end
54
+ end
40
55
  end
41
56
  end
@@ -25,5 +25,18 @@ module PaypalServerSdk
25
25
 
26
26
  true
27
27
  end
28
+
29
+ def self.from_value(value, default_value = CONTINUE)
30
+ return default_value if value.nil?
31
+
32
+ str = value.to_s.strip
33
+
34
+ case str.downcase
35
+ when 'continue' then CONTINUE
36
+ when 'pay_now' then PAY_NOW
37
+ else
38
+ default_value
39
+ end
40
+ end
28
41
  end
29
42
  end
@@ -25,5 +25,18 @@ module PaypalServerSdk
25
25
 
26
26
  true
27
27
  end
28
+
29
+ def self.from_value(value, default_value = CONSUMER)
30
+ return default_value if value.nil?
31
+
32
+ str = value.to_s.strip
33
+
34
+ case str.downcase
35
+ when 'consumer' then CONSUMER
36
+ when 'business' then BUSINESS
37
+ else
38
+ default_value
39
+ end
40
+ end
28
41
  end
29
42
  end
@@ -23,5 +23,18 @@ module PaypalServerSdk
23
23
 
24
24
  true
25
25
  end
26
+
27
+ def self.from_value(value, default_value = MERCHANT)
28
+ return default_value if value.nil?
29
+
30
+ str = value.to_s.strip
31
+
32
+ case str.downcase
33
+ when 'merchant' then MERCHANT
34
+ when 'platform' then PLATFORM
35
+ else
36
+ default_value
37
+ end
38
+ end
26
39
  end
27
40
  end
@@ -25,5 +25,20 @@ module PaypalServerSdk
25
25
 
26
26
  true
27
27
  end
28
+
29
+ def self.from_value(value, default_value = ODR)
30
+ return default_value if value.nil?
31
+
32
+ str = value.to_s.strip
33
+
34
+ case str.downcase
35
+ when 'odr' then ODR
36
+ when 'txn' then TXN
37
+ when 'sub' then SUB
38
+ when 'pap' then PAP
39
+ else
40
+ default_value
41
+ end
42
+ end
28
43
  end
29
44
  end
@@ -24,5 +24,18 @@ module PaypalServerSdk
24
24
 
25
25
  true
26
26
  end
27
+
28
+ def self.from_value(value, default_value = VERIFIED)
29
+ return default_value if value.nil?
30
+
31
+ str = value.to_s.strip
32
+
33
+ case str.downcase
34
+ when 'verified' then VERIFIED
35
+ when 'unverified' then UNVERIFIED
36
+ else
37
+ default_value
38
+ end
39
+ end
27
40
  end
28
41
  end
@@ -13,8 +13,7 @@ module PaypalServerSdk
13
13
  # @return [PaypalWalletCustomerRequest]
14
14
  attr_accessor :customer
15
15
 
16
- # Resource consolidating common request and response attributes for vaulting
17
- # PayPal Wallet.
16
+ # TODO: Write general description for this method
18
17
  # @return [PaypalWalletVaultInstruction]
19
18
  attr_accessor :vault
20
19
 
@@ -30,5 +30,19 @@ module PaypalServerSdk
30
30
 
31
31
  true
32
32
  end
33
+
34
+ def self.from_value(value, default_value = NO_CONTACT_INFO)
35
+ return default_value if value.nil?
36
+
37
+ str = value.to_s.strip
38
+
39
+ case str.downcase
40
+ when 'no_contact_info' then NO_CONTACT_INFO
41
+ when 'update_contact_info' then UPDATE_CONTACT_INFO
42
+ when 'retain_contact_info' then RETAIN_CONTACT_INFO
43
+ else
44
+ default_value
45
+ end
46
+ end
33
47
  end
34
48
  end
@@ -27,5 +27,19 @@ module PaypalServerSdk
27
27
 
28
28
  true
29
29
  end
30
+
31
+ def self.from_value(value, default_value = GET_FROM_FILE)
32
+ return default_value if value.nil?
33
+
34
+ str = value.to_s.strip
35
+
36
+ case str.downcase
37
+ when 'get_from_file' then GET_FROM_FILE
38
+ when 'no_shipping' then NO_SHIPPING
39
+ when 'set_provided_address' then SET_PROVIDED_ADDRESS
40
+ else
41
+ default_value
42
+ end
43
+ end
30
44
  end
31
45
  end
@@ -0,0 +1,134 @@
1
+ # paypal_server_sdk
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0
4
+ # ( https://www.apimatic.io ).
5
+
6
+ module PaypalServerSdk
7
+ # Resource consolidating common request and response attributes for vaulting
8
+ # PayPal Wallet.
9
+ class PaypalWalletVaultBase < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # Defines how and when the payment source gets vaulted.
14
+ # @return [StoreInVaultInstruction]
15
+ attr_accessor :store_in_vault
16
+
17
+ # The description displayed to PayPal consumer on the approval flow for
18
+ # PayPal, as well as on the PayPal payment token management experience on
19
+ # PayPal.com.
20
+ # @return [String]
21
+ attr_accessor :description
22
+
23
+ # Expected business/pricing model for the billing agreement.
24
+ # @return [UsagePattern]
25
+ attr_accessor :usage_pattern
26
+
27
+ # The usage type associated with the PayPal payment token.
28
+ # @return [UsageType]
29
+ attr_accessor :usage_type
30
+
31
+ # The customer type associated with the PayPal payment token. This is to
32
+ # indicate whether the customer acting on the merchant / platform is either
33
+ # a business or a consumer.
34
+ # @return [PaypalPaymentTokenCustomerType]
35
+ attr_accessor :customer_type
36
+
37
+ # Create multiple payment tokens for the same payer, merchant/platform
38
+ # combination. Use this when the customer has not logged in at
39
+ # merchant/platform. The payment token thus generated, can then also be used
40
+ # to create the customer account at merchant/platform. Use this also when
41
+ # multiple payment tokens are required for the same payer, different
42
+ # customer at merchant/platform. This helps to identify customers distinctly
43
+ # even though they may share the same PayPal account. This only applies to
44
+ # PayPal payment source.
45
+ # @return [TrueClass | FalseClass]
46
+ attr_accessor :permit_multiple_payment_tokens
47
+
48
+ # A mapping from model property names to API property names.
49
+ def self.names
50
+ @_hash = {} if @_hash.nil?
51
+ @_hash['store_in_vault'] = 'store_in_vault'
52
+ @_hash['description'] = 'description'
53
+ @_hash['usage_pattern'] = 'usage_pattern'
54
+ @_hash['usage_type'] = 'usage_type'
55
+ @_hash['customer_type'] = 'customer_type'
56
+ @_hash['permit_multiple_payment_tokens'] =
57
+ 'permit_multiple_payment_tokens'
58
+ @_hash
59
+ end
60
+
61
+ # An array for optional fields
62
+ def self.optionals
63
+ %w[
64
+ store_in_vault
65
+ description
66
+ usage_pattern
67
+ usage_type
68
+ customer_type
69
+ permit_multiple_payment_tokens
70
+ ]
71
+ end
72
+
73
+ # An array for nullable fields
74
+ def self.nullables
75
+ []
76
+ end
77
+
78
+ def initialize(store_in_vault: SKIP, description: SKIP, usage_pattern: SKIP,
79
+ usage_type: SKIP,
80
+ customer_type: PaypalPaymentTokenCustomerType::CONSUMER,
81
+ permit_multiple_payment_tokens: false)
82
+ @store_in_vault = store_in_vault unless store_in_vault == SKIP
83
+ @description = description unless description == SKIP
84
+ @usage_pattern = usage_pattern unless usage_pattern == SKIP
85
+ @usage_type = usage_type unless usage_type == SKIP
86
+ @customer_type = customer_type unless customer_type == SKIP
87
+ unless permit_multiple_payment_tokens == SKIP
88
+ @permit_multiple_payment_tokens =
89
+ permit_multiple_payment_tokens
90
+ end
91
+ end
92
+
93
+ # Creates an instance of the object from a hash.
94
+ def self.from_hash(hash)
95
+ return nil unless hash
96
+
97
+ # Extract variables from the hash.
98
+ store_in_vault =
99
+ hash.key?('store_in_vault') ? hash['store_in_vault'] : SKIP
100
+ description = hash.key?('description') ? hash['description'] : SKIP
101
+ usage_pattern = hash.key?('usage_pattern') ? hash['usage_pattern'] : SKIP
102
+ usage_type = hash.key?('usage_type') ? hash['usage_type'] : SKIP
103
+ customer_type =
104
+ hash['customer_type'] ||= PaypalPaymentTokenCustomerType::CONSUMER
105
+ permit_multiple_payment_tokens =
106
+ hash['permit_multiple_payment_tokens'] ||= false
107
+
108
+ # Create object from extracted values.
109
+ PaypalWalletVaultBase.new(store_in_vault: store_in_vault,
110
+ description: description,
111
+ usage_pattern: usage_pattern,
112
+ usage_type: usage_type,
113
+ customer_type: customer_type,
114
+ permit_multiple_payment_tokens: permit_multiple_payment_tokens)
115
+ end
116
+
117
+ # Provides a human-readable string representation of the object.
118
+ def to_s
119
+ class_name = self.class.name.split('::').last
120
+ "<#{class_name} store_in_vault: #{@store_in_vault}, description: #{@description},"\
121
+ " usage_pattern: #{@usage_pattern}, usage_type: #{@usage_type}, customer_type:"\
122
+ " #{@customer_type}, permit_multiple_payment_tokens: #{@permit_multiple_payment_tokens}>"
123
+ end
124
+
125
+ # Provides a debugging-friendly string with detailed object information.
126
+ def inspect
127
+ class_name = self.class.name.split('::').last
128
+ "<#{class_name} store_in_vault: #{@store_in_vault.inspect}, description:"\
129
+ " #{@description.inspect}, usage_pattern: #{@usage_pattern.inspect}, usage_type:"\
130
+ " #{@usage_type.inspect}, customer_type: #{@customer_type.inspect},"\
131
+ " permit_multiple_payment_tokens: #{@permit_multiple_payment_tokens.inspect}>"
132
+ end
133
+ end
134
+ end
@@ -4,12 +4,15 @@
4
4
  # ( https://www.apimatic.io ).
5
5
 
6
6
  module PaypalServerSdk
7
- # Resource consolidating common request and response attributes for vaulting
8
- # PayPal Wallet.
7
+ # PaypalWalletVaultInstruction Model.
9
8
  class PaypalWalletVaultInstruction < BaseModel
10
9
  SKIP = Object.new
11
10
  private_constant :SKIP
12
11
 
12
+ # Defines how and when the payment source gets vaulted.
13
+ # @return [StoreInVaultInstruction]
14
+ attr_accessor :store_in_vault
15
+
13
16
  # The description displayed to PayPal consumer on the approval flow for
14
17
  # PayPal, as well as on the PayPal payment token management experience on
15
18
  # PayPal.com.
@@ -44,6 +47,7 @@ module PaypalServerSdk
44
47
  # A mapping from model property names to API property names.
45
48
  def self.names
46
49
  @_hash = {} if @_hash.nil?
50
+ @_hash['store_in_vault'] = 'store_in_vault'
47
51
  @_hash['description'] = 'description'
48
52
  @_hash['usage_pattern'] = 'usage_pattern'
49
53
  @_hash['usage_type'] = 'usage_type'
@@ -56,6 +60,7 @@ module PaypalServerSdk
56
60
  # An array for optional fields
57
61
  def self.optionals
58
62
  %w[
63
+ store_in_vault
59
64
  description
60
65
  usage_pattern
61
66
  customer_type
@@ -68,9 +73,11 @@ module PaypalServerSdk
68
73
  []
69
74
  end
70
75
 
71
- def initialize(usage_type:, description: SKIP, usage_pattern: SKIP,
76
+ def initialize(usage_type:, store_in_vault: SKIP, description: SKIP,
77
+ usage_pattern: SKIP,
72
78
  customer_type: PaypalPaymentTokenCustomerType::CONSUMER,
73
79
  permit_multiple_payment_tokens: false)
80
+ @store_in_vault = store_in_vault unless store_in_vault == SKIP
74
81
  @description = description unless description == SKIP
75
82
  @usage_pattern = usage_pattern unless usage_pattern == SKIP
76
83
  @usage_type = usage_type
@@ -87,6 +94,8 @@ module PaypalServerSdk
87
94
 
88
95
  # Extract variables from the hash.
89
96
  usage_type = hash.key?('usage_type') ? hash['usage_type'] : nil
97
+ store_in_vault =
98
+ hash.key?('store_in_vault') ? hash['store_in_vault'] : SKIP
90
99
  description = hash.key?('description') ? hash['description'] : SKIP
91
100
  usage_pattern = hash.key?('usage_pattern') ? hash['usage_pattern'] : SKIP
92
101
  customer_type =
@@ -96,6 +105,7 @@ module PaypalServerSdk
96
105
 
97
106
  # Create object from extracted values.
98
107
  PaypalWalletVaultInstruction.new(usage_type: usage_type,
108
+ store_in_vault: store_in_vault,
99
109
  description: description,
100
110
  usage_pattern: usage_pattern,
101
111
  customer_type: customer_type,
@@ -105,18 +115,18 @@ module PaypalServerSdk
105
115
  # Provides a human-readable string representation of the object.
106
116
  def to_s
107
117
  class_name = self.class.name.split('::').last
108
- "<#{class_name} description: #{@description}, usage_pattern: #{@usage_pattern}, usage_type:"\
109
- " #{@usage_type}, customer_type: #{@customer_type}, permit_multiple_payment_tokens:"\
110
- " #{@permit_multiple_payment_tokens}>"
118
+ "<#{class_name} store_in_vault: #{@store_in_vault}, description: #{@description},"\
119
+ " usage_pattern: #{@usage_pattern}, usage_type: #{@usage_type}, customer_type:"\
120
+ " #{@customer_type}, permit_multiple_payment_tokens: #{@permit_multiple_payment_tokens}>"
111
121
  end
112
122
 
113
123
  # Provides a debugging-friendly string with detailed object information.
114
124
  def inspect
115
125
  class_name = self.class.name.split('::').last
116
- "<#{class_name} description: #{@description.inspect}, usage_pattern:"\
117
- " #{@usage_pattern.inspect}, usage_type: #{@usage_type.inspect}, customer_type:"\
118
- " #{@customer_type.inspect}, permit_multiple_payment_tokens:"\
119
- " #{@permit_multiple_payment_tokens.inspect}>"
126
+ "<#{class_name} store_in_vault: #{@store_in_vault.inspect}, description:"\
127
+ " #{@description.inspect}, usage_pattern: #{@usage_pattern.inspect}, usage_type:"\
128
+ " #{@usage_type.inspect}, customer_type: #{@customer_type.inspect},"\
129
+ " permit_multiple_payment_tokens: #{@permit_multiple_payment_tokens.inspect}>"
120
130
  end
121
131
  end
122
132
  end
@@ -27,5 +27,19 @@ module PaypalServerSdk
27
27
 
28
28
  true
29
29
  end
30
+
31
+ def self.from_value(value, default_value = VAULTED)
32
+ return default_value if value.nil?
33
+
34
+ str = value.to_s.strip
35
+
36
+ case str.downcase
37
+ when 'vaulted' then VAULTED
38
+ when 'created' then CREATED
39
+ when 'approved' then APPROVED
40
+ else
41
+ default_value
42
+ end
43
+ end
30
44
  end
31
45
  end