recurly 2.18.21 → 3.0.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (211) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +14 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +5 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +158 -110
  8. data/Rakefile +6 -0
  9. data/bin/bundle +105 -0
  10. data/bin/coderay +29 -0
  11. data/bin/console +14 -0
  12. data/bin/htmldiff +29 -0
  13. data/bin/ldiff +29 -0
  14. data/bin/pry +29 -0
  15. data/bin/rake +29 -0
  16. data/bin/rspec +29 -0
  17. data/bin/setup +8 -0
  18. data/bin/yard +29 -0
  19. data/bin/yardoc +29 -0
  20. data/bin/yri +29 -0
  21. data/lib/data/ca-certificates.crt +31 -0
  22. data/lib/recurly/client/operations.rb +935 -0
  23. data/lib/recurly/client.rb +198 -0
  24. data/lib/recurly/errors/api_errors.rb +35 -0
  25. data/lib/recurly/errors/network_errors.rb +8 -0
  26. data/lib/recurly/errors.rb +34 -0
  27. data/lib/recurly/pager.rb +119 -0
  28. data/lib/recurly/request.rb +30 -0
  29. data/lib/recurly/requests/account_acquisition_updatable.rb +22 -0
  30. data/lib/recurly/requests/account_create_only.rb +18 -0
  31. data/lib/recurly/requests/account_updatable.rb +50 -0
  32. data/lib/recurly/requests/add_on_create.rb +38 -0
  33. data/lib/recurly/requests/add_on_update.rb +38 -0
  34. data/lib/recurly/requests/address.rb +42 -0
  35. data/lib/recurly/requests/billing_info_create.rb +58 -0
  36. data/lib/recurly/requests/coupon_create_only.rb +66 -0
  37. data/lib/recurly/requests/coupon_updatable.rb +30 -0
  38. data/lib/recurly/requests/create_account.rb +62 -0
  39. data/lib/recurly/requests/create_coupon.rb +90 -0
  40. data/lib/recurly/requests/invoice_create.rb +42 -0
  41. data/lib/recurly/requests/invoice_refund.rb +30 -0
  42. data/lib/recurly/requests/line_item_create.rb +46 -0
  43. data/lib/recurly/requests/plan_create.rb +66 -0
  44. data/lib/recurly/requests/plan_update.rb +70 -0
  45. data/lib/recurly/requests/shipping_address_create.rb +58 -0
  46. data/lib/recurly/requests/shipping_address_update.rb +62 -0
  47. data/lib/recurly/requests/subscription_add_on_create.rb +22 -0
  48. data/lib/recurly/requests/subscription_change_create.rb +42 -0
  49. data/lib/recurly/requests/subscription_create.rb +86 -0
  50. data/lib/recurly/requests/subscription_update.rb +42 -0
  51. data/lib/recurly/requests/update_coupon.rb +30 -0
  52. data/lib/recurly/resource.rb +16 -1103
  53. data/lib/recurly/resources/account.rb +86 -0
  54. data/lib/recurly/resources/account_acquisition.rb +42 -0
  55. data/lib/recurly/resources/account_balance.rb +22 -0
  56. data/lib/recurly/resources/account_note.rb +30 -0
  57. data/lib/recurly/resources/add_on.rb +62 -0
  58. data/lib/recurly/resources/address.rb +42 -0
  59. data/lib/recurly/resources/billing_info.rb +62 -0
  60. data/lib/recurly/resources/coupon.rb +110 -0
  61. data/lib/recurly/resources/coupon_discount.rb +22 -0
  62. data/lib/recurly/resources/coupon_redemption.rb +46 -0
  63. data/lib/recurly/resources/credit_payment.rb +62 -0
  64. data/lib/recurly/resources/error.rb +18 -0
  65. data/lib/recurly/resources/error_may_have_transaction.rb +22 -0
  66. data/lib/recurly/resources/invoice.rb +138 -0
  67. data/lib/recurly/resources/invoice_collection.rb +18 -0
  68. data/lib/recurly/resources/line_item.rb +166 -0
  69. data/lib/recurly/resources/plan.rb +86 -0
  70. data/lib/recurly/resources/settings.rb +18 -0
  71. data/lib/recurly/resources/shipping_address.rb +74 -0
  72. data/lib/recurly/resources/site.rb +46 -0
  73. data/lib/recurly/resources/subscription.rb +134 -0
  74. data/lib/recurly/resources/subscription_add_on.rb +42 -0
  75. data/lib/recurly/resources/subscription_change.rb +54 -0
  76. data/lib/recurly/resources/tax_info.rb +18 -0
  77. data/lib/recurly/resources/transaction.rb +146 -0
  78. data/lib/recurly/resources/unique_coupon_code.rb +38 -0
  79. data/lib/recurly/resources/user.rb +38 -0
  80. data/lib/recurly/schema/json_deserializer.rb +53 -0
  81. data/lib/recurly/schema/json_parser.rb +71 -0
  82. data/lib/recurly/schema/request_caster.rb +66 -0
  83. data/lib/recurly/schema/schema_factory.rb +50 -0
  84. data/lib/recurly/schema/schema_validator.rb +125 -0
  85. data/lib/recurly/schema.rb +114 -0
  86. data/lib/recurly/version.rb +1 -10
  87. data/lib/recurly.rb +14 -145
  88. data/recurly.gemspec +32 -0
  89. data/scripts/build +4 -0
  90. data/scripts/clean +6 -0
  91. data/scripts/test +3 -0
  92. metadata +129 -173
  93. data/lib/recurly/account.rb +0 -209
  94. data/lib/recurly/account_acquisition.rb +0 -27
  95. data/lib/recurly/account_balance.rb +0 -21
  96. data/lib/recurly/add_on.rb +0 -46
  97. data/lib/recurly/address.rb +0 -25
  98. data/lib/recurly/adjustment.rb +0 -81
  99. data/lib/recurly/api/errors.rb +0 -208
  100. data/lib/recurly/api/net_http_adapter.rb +0 -111
  101. data/lib/recurly/api.rb +0 -110
  102. data/lib/recurly/billing_info.rb +0 -113
  103. data/lib/recurly/coupon.rb +0 -136
  104. data/lib/recurly/credit_payment.rb +0 -32
  105. data/lib/recurly/custom_field.rb +0 -15
  106. data/lib/recurly/delivery.rb +0 -19
  107. data/lib/recurly/error.rb +0 -13
  108. data/lib/recurly/gift_card.rb +0 -85
  109. data/lib/recurly/helper.rb +0 -51
  110. data/lib/recurly/invoice.rb +0 -304
  111. data/lib/recurly/invoice_collection.rb +0 -14
  112. data/lib/recurly/item.rb +0 -36
  113. data/lib/recurly/js.rb +0 -14
  114. data/lib/recurly/juris_detail.rb +0 -15
  115. data/lib/recurly/measured_unit.rb +0 -16
  116. data/lib/recurly/money.rb +0 -120
  117. data/lib/recurly/note.rb +0 -14
  118. data/lib/recurly/plan.rb +0 -43
  119. data/lib/recurly/purchase.rb +0 -238
  120. data/lib/recurly/redemption.rb +0 -46
  121. data/lib/recurly/resource/association.rb +0 -16
  122. data/lib/recurly/resource/errors.rb +0 -20
  123. data/lib/recurly/resource/pager.rb +0 -313
  124. data/lib/recurly/shipping_address.rb +0 -26
  125. data/lib/recurly/shipping_fee.rb +0 -17
  126. data/lib/recurly/shipping_method.rb +0 -13
  127. data/lib/recurly/subscription/add_ons.rb +0 -82
  128. data/lib/recurly/subscription.rb +0 -366
  129. data/lib/recurly/subscription_add_on.rb +0 -58
  130. data/lib/recurly/tax_detail.rb +0 -18
  131. data/lib/recurly/tax_type.rb +0 -13
  132. data/lib/recurly/tier.rb +0 -18
  133. data/lib/recurly/transaction/errors.rb +0 -115
  134. data/lib/recurly/transaction.rb +0 -131
  135. data/lib/recurly/usage.rb +0 -28
  136. data/lib/recurly/verify.rb +0 -12
  137. data/lib/recurly/webhook/account_notification.rb +0 -13
  138. data/lib/recurly/webhook/billing_info_update_failed_notification.rb +0 -6
  139. data/lib/recurly/webhook/billing_info_updated_notification.rb +0 -6
  140. data/lib/recurly/webhook/canceled_account_notification.rb +0 -6
  141. data/lib/recurly/webhook/canceled_gift_card_notification.rb +0 -6
  142. data/lib/recurly/webhook/canceled_subscription_notification.rb +0 -6
  143. data/lib/recurly/webhook/closed_credit_invoice_notification.rb +0 -6
  144. data/lib/recurly/webhook/closed_invoice_notification.rb +0 -6
  145. data/lib/recurly/webhook/credit_payment_notification.rb +0 -12
  146. data/lib/recurly/webhook/deactivated_item_notification.rb +0 -6
  147. data/lib/recurly/webhook/deleted_shipping_address_notification.rb +0 -6
  148. data/lib/recurly/webhook/dunning_notification.rb +0 -14
  149. data/lib/recurly/webhook/expired_subscription_notification.rb +0 -6
  150. data/lib/recurly/webhook/failed_charge_invoice_notification.rb +0 -6
  151. data/lib/recurly/webhook/failed_payment_notification.rb +0 -6
  152. data/lib/recurly/webhook/fraud_info_updated_notification.rb +0 -6
  153. data/lib/recurly/webhook/gift_card_notification.rb +0 -8
  154. data/lib/recurly/webhook/invoice_notification.rb +0 -12
  155. data/lib/recurly/webhook/item_notification.rb +0 -7
  156. data/lib/recurly/webhook/low_balance_gift_card_notification.rb +0 -6
  157. data/lib/recurly/webhook/new_account_notification.rb +0 -6
  158. data/lib/recurly/webhook/new_charge_invoice_notification.rb +0 -6
  159. data/lib/recurly/webhook/new_credit_invoice_notification.rb +0 -6
  160. data/lib/recurly/webhook/new_credit_payment_notification.rb +0 -6
  161. data/lib/recurly/webhook/new_dunning_event_notification.rb +0 -6
  162. data/lib/recurly/webhook/new_invoice_notification.rb +0 -6
  163. data/lib/recurly/webhook/new_item_notification.rb +0 -6
  164. data/lib/recurly/webhook/new_shipping_address_notification.rb +0 -6
  165. data/lib/recurly/webhook/new_subscription_notification.rb +0 -6
  166. data/lib/recurly/webhook/new_usage_notification.rb +0 -8
  167. data/lib/recurly/webhook/notification.rb +0 -18
  168. data/lib/recurly/webhook/paid_charge_invoice_notification.rb +0 -6
  169. data/lib/recurly/webhook/past_due_charge_invoice_notification.rb +0 -6
  170. data/lib/recurly/webhook/past_due_invoice_notification.rb +0 -6
  171. data/lib/recurly/webhook/paused_subscription_renewal_notification.rb +0 -6
  172. data/lib/recurly/webhook/prerenewal_notification.rb +0 -6
  173. data/lib/recurly/webhook/processing_charge_invoice_notification.rb +0 -6
  174. data/lib/recurly/webhook/processing_credit_invoice_notification.rb +0 -6
  175. data/lib/recurly/webhook/processing_invoice_notification.rb +0 -6
  176. data/lib/recurly/webhook/processing_payment_notification.rb +0 -6
  177. data/lib/recurly/webhook/purchased_gift_card_notification.rb +0 -7
  178. data/lib/recurly/webhook/reactivated_account_notification.rb +0 -6
  179. data/lib/recurly/webhook/reactivated_item_notification.rb +0 -6
  180. data/lib/recurly/webhook/redeemed_gift_card_notification.rb +0 -7
  181. data/lib/recurly/webhook/regenerated_gift_card_notification.rb +0 -6
  182. data/lib/recurly/webhook/renewed_subscription_notification.rb +0 -6
  183. data/lib/recurly/webhook/reopened_charge_invoice_notification.rb +0 -6
  184. data/lib/recurly/webhook/reopened_credit_invoice_notification.rb +0 -6
  185. data/lib/recurly/webhook/scheduled_payment_notification.rb +0 -6
  186. data/lib/recurly/webhook/scheduled_subscription_pause_notification.rb +0 -6
  187. data/lib/recurly/webhook/scheduled_subscription_update_notification.rb +0 -6
  188. data/lib/recurly/webhook/subscription_notification.rb +0 -12
  189. data/lib/recurly/webhook/subscription_pause_canceled_notification.rb +0 -6
  190. data/lib/recurly/webhook/subscription_pause_modified_notification.rb +0 -6
  191. data/lib/recurly/webhook/subscription_paused_notification.rb +0 -6
  192. data/lib/recurly/webhook/subscription_resumed_notification.rb +0 -6
  193. data/lib/recurly/webhook/successful_payment_notification.rb +0 -6
  194. data/lib/recurly/webhook/successful_refund_notification.rb +0 -6
  195. data/lib/recurly/webhook/transaction_authorized_notification.rb +0 -6
  196. data/lib/recurly/webhook/transaction_notification.rb +0 -12
  197. data/lib/recurly/webhook/transaction_status_updated_notification.rb +0 -6
  198. data/lib/recurly/webhook/updated_account_notification.rb +0 -6
  199. data/lib/recurly/webhook/updated_balance_gift_card_notification.rb +0 -7
  200. data/lib/recurly/webhook/updated_gift_card_notification.rb +0 -6
  201. data/lib/recurly/webhook/updated_invoice_notification.rb +0 -6
  202. data/lib/recurly/webhook/updated_item_notification.rb +0 -6
  203. data/lib/recurly/webhook/updated_shipping_address_notification.rb +0 -6
  204. data/lib/recurly/webhook/updated_subscription_notification.rb +0 -6
  205. data/lib/recurly/webhook/void_payment_notification.rb +0 -6
  206. data/lib/recurly/webhook/voided_credit_invoice_notification.rb +0 -6
  207. data/lib/recurly/webhook/voided_credit_payment_notification.rb +0 -6
  208. data/lib/recurly/webhook.rb +0 -113
  209. data/lib/recurly/xml/nokogiri.rb +0 -60
  210. data/lib/recurly/xml/rexml.rb +0 -52
  211. data/lib/recurly/xml.rb +0 -122
@@ -0,0 +1,42 @@
1
+ module Recurly
2
+ module Requests
3
+ class InvoiceCreate < Request
4
+
5
+ # @!attribute charge_customer_notes
6
+ # @return [String] This will default to the Customer Notes text specified on the Invoice Settings for charge invoices. Specify custom notes to add or override Customer Notes on charge invoices.
7
+ define_attribute :charge_customer_notes, String
8
+
9
+ # @!attribute collection_method
10
+ # @return [String] An automatic invoice means a corresponding transaction is run using the account's billing information at the same time the invoice is created. Manual invoices are created without a corresponding transaction. The merchant must enter a manual payment transaction or have the customer pay the invoice with an automatic method, like credit card, PayPal, Amazon, or ACH bank payment.
11
+ define_attribute :collection_method, String, {:enum => ["automatic", "manual"]}
12
+
13
+ # @!attribute credit_customer_notes
14
+ # @return [String] This will default to the Customer Notes text specified on the Invoice Settings for credit invoices. Specify customer notes to add or override Customer Notes on credit invoices.
15
+ define_attribute :credit_customer_notes, String
16
+
17
+ # @!attribute currency
18
+ # @return [String] 3-letter ISO 4217 currency code.
19
+ define_attribute :currency, String
20
+
21
+ # @!attribute net_terms
22
+ # @return [Integer] Integer representing the number of days after an invoice's creation that the invoice will become past due. If an invoice's net terms are set to '0', it is due 'On Receipt' and will become past due 24 hours after it’s created. If an invoice is due net 30, it will become past due at 31 days exactly.
23
+ define_attribute :net_terms, Integer
24
+
25
+ # @!attribute po_number
26
+ # @return [String] For manual invoicing, this identifies the PO number associated with the subscription.
27
+ define_attribute :po_number, String
28
+
29
+ # @!attribute terms_and_conditions
30
+ # @return [String] This will default to the Terms and Conditions text specified on the Invoice Settings page in your Recurly admin. Specify custom notes to add or override Terms and Conditions.
31
+ define_attribute :terms_and_conditions, String
32
+
33
+ # @!attribute type
34
+ # @return [String] Specify a type to limit the type of line items that will be invoiced.
35
+ define_attribute :type, String, {:enum => ["charge", "credit"]}
36
+
37
+ # @!attribute vat_reverse_charge_notes
38
+ # @return [String] VAT Reverse Charge Notes only appear if you have EU VAT enabled or are using your own Avalara AvaTax account and the customer is in the EU, has a VAT number, and is in a different country than your own. This will default to the VAT Reverse Charge Notes text specified on the Tax Settings page in your Recurly admin, unless custom notes were created with the original subscription.
39
+ define_attribute :vat_reverse_charge_notes, String
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,30 @@
1
+ module Recurly
2
+ module Requests
3
+ class InvoiceRefund < Request
4
+
5
+ # @!attribute amount
6
+ # @return [Integer] The amount to be refunded. The amount will be split between the line items. If no amount is specified, it will default to refunding the total refundable amount on the invoice.
7
+ define_attribute :amount, Integer
8
+
9
+ # @!attribute credit_customer_notes
10
+ # @return [String] Used as the Customer Notes on the credit invoice. This field can only be include when the Credit Invoices feature is enabled.
11
+ define_attribute :credit_customer_notes, String
12
+
13
+ # @!attribute external_refund
14
+ # @return [Hash] Indicates that the refund was settled outside of Recurly, and a manual transaction should be created to track it in Recurly. Required when: - refunding a manually collected charge invoice, and `refund_method` is not `all_credit` - refunding a credit invoice that refunded manually collecting invoices - refunding a credit invoice for a partial amount This field can only be included when the Credit Invoices feature is enabled.
15
+ define_attribute :external_refund, Hash
16
+
17
+ # @!attribute line_items
18
+ # @return [Array[String]] The line items to be refunded. This is required when `type=line_items`.
19
+ define_attribute :line_items, Array, {:item_type => String}
20
+
21
+ # @!attribute refund_method
22
+ # @return [String] Indicates how the invoice should be refunded when both a credit and transaction are present on the invoice: - `transaction_first` – Refunds the transaction first, then any amount is issued as credit back to the account. Default value when Credit Invoices feature is enabled. - `credit_first` – Issues credit back to the account first, then refunds any remaining amount back to the transaction. Default value when Credit Invoices feature is not enabled. - `all_credit` – Issues credit to the account for the entire amount of the refund. Only available when the Credit Invoices feature is enabled. - `all_transaction` – Refunds the entire amount back to transactions, using transactions from previous invoices if necessary. Only available when the Credit Invoices feature is enabled.
23
+ define_attribute :refund_method, String, {:enum => ["transaction_first", "credit_first", "all_credit", "all_transaction"]}
24
+
25
+ # @!attribute type
26
+ # @return [String] The type of refund. Amount and line items cannot both be specified in the request.
27
+ define_attribute :type, String, {:enum => ["amount", "line_items"]}
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,46 @@
1
+ module Recurly
2
+ module Requests
3
+ class LineItemCreate < Request
4
+
5
+ # @!attribute credit_reason_code
6
+ # @return [String] The reason the credit was given when line item is `type=credit`. When the Credit Invoices feature is enabled, the value can be set and will default to `general`. When the Credit Invoices feature is not enabled, the value will always be `null`.
7
+ define_attribute :credit_reason_code, String, {:enum => ["general", "service", "promotional"]}
8
+
9
+ # @!attribute currency
10
+ # @return [String] 3-letter ISO 4217 currency code.
11
+ define_attribute :currency, String
12
+
13
+ # @!attribute description
14
+ # @return [String] Description that appears on the invoice.
15
+ define_attribute :description, String
16
+
17
+ # @!attribute end_date
18
+ # @return [DateTime] If this date is provided, it indicates the end of a time range.
19
+ define_attribute :end_date, DateTime
20
+
21
+ # @!attribute quantity
22
+ # @return [Integer] This number will be multiplied by the unit amount to compute the subtotal before any discounts or taxes.
23
+ define_attribute :quantity, Integer
24
+
25
+ # @!attribute start_date
26
+ # @return [DateTime] If an end date is present, this is value indicates the beginning of a billing time range. If no end date is present it indicates billing for a specific date. Defaults to the current date-time.
27
+ define_attribute :start_date, DateTime
28
+
29
+ # @!attribute tax_code
30
+ # @return [String] Optional field for EU VAT merchants and Avalara AvaTax Pro merchants. If you are using Recurly's EU VAT feature, you can use values of unknown, physical, or digital. If you have your own AvaTax account configured, you can use Avalara tax codes to assign custom tax rules.
31
+ define_attribute :tax_code, String
32
+
33
+ # @!attribute tax_exempt
34
+ # @return [Boolean] `true` exempts tax on charges, `false` applies tax on charges. If not defined, then defaults to the Plan and Site settings. This attribute does not work for credits (negative line items). Credits are always applied post-tax. Pre-tax discounts should use the Coupons feature.
35
+ define_attribute :tax_exempt, :Boolean
36
+
37
+ # @!attribute type
38
+ # @return [String] Line item type.
39
+ define_attribute :type, String, {:enum => ["charge", "credit"]}
40
+
41
+ # @!attribute unit_amount
42
+ # @return [Float] A positive or negative amount with `type=charge` will result in a positive `unit_amount`. A positive or negative amount with `type=credit` will result in a negative `unit_amount`.
43
+ define_attribute :unit_amount, Float
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,66 @@
1
+ module Recurly
2
+ module Requests
3
+ class PlanCreate < Request
4
+
5
+ # @!attribute accounting_code
6
+ # @return [String] Accounting code for invoice line items for the plan. If no value is provided, it defaults to plan's code.
7
+ define_attribute :accounting_code, String
8
+
9
+ # @!attribute add_ons
10
+ # @return [Array[String]] Add Ons
11
+ define_attribute :add_ons, Array, {:item_type => String}
12
+
13
+ # @!attribute code
14
+ # @return [String] Unique code to identify the plan. This is used in Hosted Payment Page URLs and in the invoice exports.
15
+ define_attribute :code, String
16
+
17
+ # @!attribute currencies
18
+ # @return [Array[String]] Pricing
19
+ define_attribute :currencies, Array, {:item_type => String}
20
+
21
+ # @!attribute description
22
+ # @return [String] Optional description, not displayed.
23
+ define_attribute :description, String
24
+
25
+ # @!attribute hosted_pages
26
+ # @return [Hash] Hosted pages settings
27
+ define_attribute :hosted_pages, Hash
28
+
29
+ # @!attribute interval_length
30
+ # @return [Integer] Length of the plan's billing interval in `interval_unit`.
31
+ define_attribute :interval_length, Integer
32
+
33
+ # @!attribute interval_unit
34
+ # @return [String] Unit for the plan's billing interval.
35
+ define_attribute :interval_unit, String, {:enum => ["days", "months"]}
36
+
37
+ # @!attribute name
38
+ # @return [String] This name describes your plan and will appear on the Hosted Payment Page and the subscriber's invoice.
39
+ define_attribute :name, String
40
+
41
+ # @!attribute setup_fee_accounting_code
42
+ # @return [String] Accounting code for invoice line items for the plan's setup fee. If no value is provided, it defaults to plan's accounting code.
43
+ define_attribute :setup_fee_accounting_code, String
44
+
45
+ # @!attribute tax_code
46
+ # @return [String] Optional field for EU VAT merchants and Avalara AvaTax Pro merchants. If you are using Recurly's EU VAT feature, you can use values of 'unknown', 'physical', or 'digital'. If you have your own AvaTax account configured, you can use Avalara tax codes to assign custom tax rules.
47
+ define_attribute :tax_code, String
48
+
49
+ # @!attribute tax_exempt
50
+ # @return [Boolean] `true` exempts tax on the plan, `false` applies tax on the plan.
51
+ define_attribute :tax_exempt, :Boolean
52
+
53
+ # @!attribute total_billing_cycles
54
+ # @return [Integer] Automatically terminate plans after a defined number of billing cycles.
55
+ define_attribute :total_billing_cycles, Integer
56
+
57
+ # @!attribute trial_length
58
+ # @return [Integer] Length of plan's trial period in `trial_units`. `0` means `no trial`.
59
+ define_attribute :trial_length, Integer
60
+
61
+ # @!attribute trial_unit
62
+ # @return [String] Units for the plan's trial period.
63
+ define_attribute :trial_unit, String, {:enum => ["days", "months"]}
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,70 @@
1
+ module Recurly
2
+ module Requests
3
+ class PlanUpdate < Request
4
+
5
+ # @!attribute accounting_code
6
+ # @return [String] Accounting code for invoice line items for the plan. If no value is provided, it defaults to plan's code.
7
+ define_attribute :accounting_code, String
8
+
9
+ # @!attribute add_ons
10
+ # @return [Array[String]] Add Ons
11
+ define_attribute :add_ons, Array, {:item_type => String}
12
+
13
+ # @!attribute code
14
+ # @return [String] Unique code to identify the plan. This is used in Hosted Payment Page URLs and in the invoice exports.
15
+ define_attribute :code, String
16
+
17
+ # @!attribute currencies
18
+ # @return [Array[String]] Pricing
19
+ define_attribute :currencies, Array, {:item_type => String}
20
+
21
+ # @!attribute description
22
+ # @return [String] Optional description, not displayed.
23
+ define_attribute :description, String
24
+
25
+ # @!attribute hosted_pages
26
+ # @return [Hash] Hosted pages settings
27
+ define_attribute :hosted_pages, Hash
28
+
29
+ # @!attribute [r] id
30
+ # @return [String] Plan ID
31
+ define_attribute :id, String, {:read_only => true}
32
+
33
+ # @!attribute interval_length
34
+ # @return [Integer] Length of the plan's billing interval in `interval_unit`.
35
+ define_attribute :interval_length, Integer
36
+
37
+ # @!attribute interval_unit
38
+ # @return [String] Unit for the plan's billing interval.
39
+ define_attribute :interval_unit, String, {:enum => ["days", "months"]}
40
+
41
+ # @!attribute name
42
+ # @return [String] This name describes your plan and will appear on the Hosted Payment Page and the subscriber's invoice.
43
+ define_attribute :name, String
44
+
45
+ # @!attribute setup_fee_accounting_code
46
+ # @return [String] Accounting code for invoice line items for the plan's setup fee. If no value is provided, it defaults to plan's accounting code.
47
+ define_attribute :setup_fee_accounting_code, String
48
+
49
+ # @!attribute tax_code
50
+ # @return [String] Optional field for EU VAT merchants and Avalara AvaTax Pro merchants. If you are using Recurly's EU VAT feature, you can use values of 'unknown', 'physical', or 'digital'. If you have your own AvaTax account configured, you can use Avalara tax codes to assign custom tax rules.
51
+ define_attribute :tax_code, String
52
+
53
+ # @!attribute tax_exempt
54
+ # @return [Boolean] `true` exempts tax on the plan, `false` applies tax on the plan.
55
+ define_attribute :tax_exempt, :Boolean
56
+
57
+ # @!attribute total_billing_cycles
58
+ # @return [Integer] Automatically terminate plans after a defined number of billing cycles.
59
+ define_attribute :total_billing_cycles, Integer
60
+
61
+ # @!attribute trial_length
62
+ # @return [Integer] Length of plan's trial period in `trial_units`. `0` means `no trial`.
63
+ define_attribute :trial_length, Integer
64
+
65
+ # @!attribute trial_unit
66
+ # @return [String] Units for the plan's trial period.
67
+ define_attribute :trial_unit, String, {:enum => ["days", "months"]}
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,58 @@
1
+ module Recurly
2
+ module Requests
3
+ class ShippingAddressCreate < Request
4
+
5
+ # @!attribute city
6
+ # @return [String]
7
+ define_attribute :city, String
8
+
9
+ # @!attribute company
10
+ # @return [String]
11
+ define_attribute :company, String
12
+
13
+ # @!attribute country
14
+ # @return [String] Country, 2-letter ISO code.
15
+ define_attribute :country, String
16
+
17
+ # @!attribute email
18
+ # @return [String]
19
+ define_attribute :email, String
20
+
21
+ # @!attribute first_name
22
+ # @return [String]
23
+ define_attribute :first_name, String
24
+
25
+ # @!attribute last_name
26
+ # @return [String]
27
+ define_attribute :last_name, String
28
+
29
+ # @!attribute nickname
30
+ # @return [String]
31
+ define_attribute :nickname, String
32
+
33
+ # @!attribute phone
34
+ # @return [String]
35
+ define_attribute :phone, String
36
+
37
+ # @!attribute postal_code
38
+ # @return [String] Zip or postal code.
39
+ define_attribute :postal_code, String
40
+
41
+ # @!attribute region
42
+ # @return [String] State or province.
43
+ define_attribute :region, String
44
+
45
+ # @!attribute street1
46
+ # @return [String]
47
+ define_attribute :street1, String
48
+
49
+ # @!attribute street2
50
+ # @return [String]
51
+ define_attribute :street2, String
52
+
53
+ # @!attribute vat_number
54
+ # @return [String]
55
+ define_attribute :vat_number, String
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,62 @@
1
+ module Recurly
2
+ module Requests
3
+ class ShippingAddressUpdate < Request
4
+
5
+ # @!attribute city
6
+ # @return [String]
7
+ define_attribute :city, String
8
+
9
+ # @!attribute company
10
+ # @return [String]
11
+ define_attribute :company, String
12
+
13
+ # @!attribute country
14
+ # @return [String] Country, 2-letter ISO code.
15
+ define_attribute :country, String
16
+
17
+ # @!attribute email
18
+ # @return [String]
19
+ define_attribute :email, String
20
+
21
+ # @!attribute first_name
22
+ # @return [String]
23
+ define_attribute :first_name, String
24
+
25
+ # @!attribute [r] id
26
+ # @return [String] Shipping Address ID
27
+ define_attribute :id, String, {:read_only => true}
28
+
29
+ # @!attribute last_name
30
+ # @return [String]
31
+ define_attribute :last_name, String
32
+
33
+ # @!attribute nickname
34
+ # @return [String]
35
+ define_attribute :nickname, String
36
+
37
+ # @!attribute phone
38
+ # @return [String]
39
+ define_attribute :phone, String
40
+
41
+ # @!attribute postal_code
42
+ # @return [String] Zip or postal code.
43
+ define_attribute :postal_code, String
44
+
45
+ # @!attribute region
46
+ # @return [String] State or province.
47
+ define_attribute :region, String
48
+
49
+ # @!attribute street1
50
+ # @return [String]
51
+ define_attribute :street1, String
52
+
53
+ # @!attribute street2
54
+ # @return [String]
55
+ define_attribute :street2, String
56
+
57
+ # @!attribute vat_number
58
+ # @return [String]
59
+ define_attribute :vat_number, String
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,22 @@
1
+ module Recurly
2
+ module Requests
3
+ class SubscriptionAddOnCreate < Request
4
+
5
+ # @!attribute code
6
+ # @return [String] Add-on code
7
+ define_attribute :code, String
8
+
9
+ # @!attribute id
10
+ # @return [String] Id of an existing subscription add on.
11
+ define_attribute :id, String
12
+
13
+ # @!attribute quantity
14
+ # @return [Integer] Optionally override the default quantity.
15
+ define_attribute :quantity, Integer
16
+
17
+ # @!attribute unit_amount
18
+ # @return [Float] Override the default unit amount of the add-on by setting this value.
19
+ define_attribute :unit_amount, Float
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,42 @@
1
+ module Recurly
2
+ module Requests
3
+ class SubscriptionChangeCreate < Request
4
+
5
+ # @!attribute add_ons
6
+ # @return [Array[SubscriptionAddOnCreate]] If you set this value you include all the add-ons and their quantities and amounts. The values you include will replace the previous values entirely.
7
+ define_attribute :add_ons, Array, {:item_type => :SubscriptionAddOnCreate}
8
+
9
+ # @!attribute collection_method
10
+ # @return [String] Collection method
11
+ define_attribute :collection_method, String, {:enum => ["automatic", "manual"]}
12
+
13
+ # @!attribute coupon_codes
14
+ # @return [Array[String]] A list of coupon_codes to be redeemed on the subscription during the change. Only allowed if timeframe is now and you change something about the subscription that creates an invoice.
15
+ define_attribute :coupon_codes, Array, {:item_type => String}
16
+
17
+ # @!attribute net_terms
18
+ # @return [Integer] Integer representing the number of days after an invoice's creation that the invoice will become past due. If an invoice's net terms are set to '0', it is due 'On Receipt' and will become past due 24 hours after it’s created. If an invoice is due net 30, it will become past due at 31 days exactly.
19
+ define_attribute :net_terms, Integer
20
+
21
+ # @!attribute plan_code
22
+ # @return [String] The plan code.
23
+ define_attribute :plan_code, String
24
+
25
+ # @!attribute po_number
26
+ # @return [String] For manual invoicing, this identifies the PO number associated with the subscription.
27
+ define_attribute :po_number, String
28
+
29
+ # @!attribute quantity
30
+ # @return [Integer] Optionally override the default quantity of 1.
31
+ define_attribute :quantity, Integer
32
+
33
+ # @!attribute timeframe
34
+ # @return [String] The timeframe parameter controls when the upgrade or downgrade takes place. The subscription change can occur now or when the subscription renews. Generally, if you're performing an upgrade, you will want the change to occur immediately (now). If you're performing a downgrade, you should set the timeframe to "renewal" so the change takes affect at the end of the current billing cycle.
35
+ define_attribute :timeframe, String, {:enum => ["now", "renewal"]}
36
+
37
+ # @!attribute unit_amount
38
+ # @return [Float] Optionally, sets custom pricing for the subscription, overriding the plan's default unit amount. The subscription's current currency will be used.
39
+ define_attribute :unit_amount, Float
40
+ end
41
+ end
42
+ end