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,18 @@
1
+ module Recurly
2
+ module Requests
3
+ class AccountCreateOnly < Request
4
+
5
+ # @!attribute acquisition
6
+ # @return [AccountAcquisitionUpdatable]
7
+ define_attribute :acquisition, :AccountAcquisitionUpdatable
8
+
9
+ # @!attribute code
10
+ # @return [String] The unique identifier of the account. This cannot be changed once the account is created.
11
+ define_attribute :code, String
12
+
13
+ # @!attribute shipping_addresses
14
+ # @return [Array[ShippingAddressCreate]]
15
+ define_attribute :shipping_addresses, Array, {:item_type => :ShippingAddressCreate}
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,50 @@
1
+ module Recurly
2
+ module Requests
3
+ class AccountUpdatable < Request
4
+
5
+ # @!attribute address
6
+ # @return [Address]
7
+ define_attribute :address, :Address
8
+
9
+ # @!attribute billing_info
10
+ # @return [BillingInfoCreate]
11
+ define_attribute :billing_info, :BillingInfoCreate
12
+
13
+ # @!attribute cc_emails
14
+ # @return [String] Additional email address that should receive account correspondence. These should be separated only by commas. These CC emails will receive all emails that the `email` field also receives.
15
+ define_attribute :cc_emails, String
16
+
17
+ # @!attribute company
18
+ # @return [String]
19
+ define_attribute :company, String
20
+
21
+ # @!attribute email
22
+ # @return [String] The email address used for communicating with this customer. The customer will also use this email address to log into your hosted account management pages. This value does not need to be unique.
23
+ define_attribute :email, String
24
+
25
+ # @!attribute first_name
26
+ # @return [String]
27
+ define_attribute :first_name, String
28
+
29
+ # @!attribute last_name
30
+ # @return [String]
31
+ define_attribute :last_name, String
32
+
33
+ # @!attribute preferred_locale
34
+ # @return [String] Used to determine the language and locale of emails sent on behalf of the merchant to the customer. The list of locales is restricted to those the merchant has enabled on the site.
35
+ define_attribute :preferred_locale, String, {:enum => ["da-DK", "de-CH", "de-DE", "en-AU", "en-CA", "en-GB", "en-NZ", "en-US", "es-ES", "es-MX", "es-US", "fr-CA", "fr-FR", "hi-IN", "ja-JP", "nl-BE", "nl-NL", "pt-BR", "pt-PT", "ru-RU", "tr-TR", "zh-CN"]}
36
+
37
+ # @!attribute tax_exempt
38
+ # @return [Boolean] The tax status of the account. `true` exempts tax on the account, `false` applies tax on the account.
39
+ define_attribute :tax_exempt, :Boolean
40
+
41
+ # @!attribute username
42
+ # @return [String] A secondary value for the account.
43
+ define_attribute :username, String
44
+
45
+ # @!attribute vat_number
46
+ # @return [String] The VAT number of the account (to avoid having the VAT applied). This is only used for manually collected invoices.
47
+ define_attribute :vat_number, String
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,38 @@
1
+ module Recurly
2
+ module Requests
3
+ class AddOnCreate < Request
4
+
5
+ # @!attribute accounting_code
6
+ # @return [String] Accounting code for invoice line items for this add-on. If no value is provided, it defaults to add-on's code.
7
+ define_attribute :accounting_code, String
8
+
9
+ # @!attribute code
10
+ # @return [String] The unique identifier for the add-on within its plan.
11
+ define_attribute :code, String
12
+
13
+ # @!attribute currencies
14
+ # @return [Array[String]] Add-on pricing
15
+ define_attribute :currencies, Array, {:item_type => String}
16
+
17
+ # @!attribute default_quantity
18
+ # @return [Integer] Default quantity for the hosted pages.
19
+ define_attribute :default_quantity, Integer
20
+
21
+ # @!attribute display_quantity
22
+ # @return [Boolean] Determines if the quantity field is displayed on the hosted pages for the add-on.
23
+ define_attribute :display_quantity, :Boolean
24
+
25
+ # @!attribute name
26
+ # @return [String] Describes your add-on and will appear in subscribers' invoices.
27
+ define_attribute :name, String
28
+
29
+ # @!attribute [r] plan_id
30
+ # @return [String] Plan ID
31
+ define_attribute :plan_id, String, {:read_only => true}
32
+
33
+ # @!attribute tax_code
34
+ # @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.
35
+ define_attribute :tax_code, String
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,38 @@
1
+ module Recurly
2
+ module Requests
3
+ class AddOnUpdate < Request
4
+
5
+ # @!attribute accounting_code
6
+ # @return [String] Accounting code for invoice line items for this add-on. If no value is provided, it defaults to add-on's code.
7
+ define_attribute :accounting_code, String
8
+
9
+ # @!attribute code
10
+ # @return [String] The unique identifier for the add-on within its plan.
11
+ define_attribute :code, String
12
+
13
+ # @!attribute currencies
14
+ # @return [Array[String]] Add-on pricing
15
+ define_attribute :currencies, Array, {:item_type => String}
16
+
17
+ # @!attribute default_quantity
18
+ # @return [Integer] Default quantity for the hosted pages.
19
+ define_attribute :default_quantity, Integer
20
+
21
+ # @!attribute display_quantity
22
+ # @return [Boolean] Determines if the quantity field is displayed on the hosted pages for the add-on.
23
+ define_attribute :display_quantity, :Boolean
24
+
25
+ # @!attribute [r] id
26
+ # @return [String] Add-on ID
27
+ define_attribute :id, String, {:read_only => true}
28
+
29
+ # @!attribute name
30
+ # @return [String] Describes your add-on and will appear in subscribers' invoices.
31
+ define_attribute :name, String
32
+
33
+ # @!attribute tax_code
34
+ # @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.
35
+ define_attribute :tax_code, String
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,42 @@
1
+ module Recurly
2
+ module Requests
3
+ class Address < Request
4
+
5
+ # @!attribute city
6
+ # @return [String] City
7
+ define_attribute :city, String
8
+
9
+ # @!attribute country
10
+ # @return [String] Country, 2-letter ISO code.
11
+ define_attribute :country, String
12
+
13
+ # @!attribute first_name
14
+ # @return [String] First name
15
+ define_attribute :first_name, String
16
+
17
+ # @!attribute last_name
18
+ # @return [String] Last name
19
+ define_attribute :last_name, String
20
+
21
+ # @!attribute phone
22
+ # @return [String] Phone number
23
+ define_attribute :phone, String
24
+
25
+ # @!attribute postal_code
26
+ # @return [String] Zip or postal code.
27
+ define_attribute :postal_code, String
28
+
29
+ # @!attribute region
30
+ # @return [String] State or province.
31
+ define_attribute :region, String
32
+
33
+ # @!attribute street1
34
+ # @return [String] Street 1
35
+ define_attribute :street1, String
36
+
37
+ # @!attribute street2
38
+ # @return [String] Street 2
39
+ define_attribute :street2, String
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,58 @@
1
+ module Recurly
2
+ module Requests
3
+ class BillingInfoCreate < Request
4
+
5
+ # @!attribute address
6
+ # @return [Address]
7
+ define_attribute :address, :Address
8
+
9
+ # @!attribute amazon_billing_agreement_id
10
+ # @return [String] Amazon billing agreement ID
11
+ define_attribute :amazon_billing_agreement_id, String
12
+
13
+ # @!attribute company
14
+ # @return [String] Company name
15
+ define_attribute :company, String
16
+
17
+ # @!attribute cvv
18
+ # @return [String] *STRONGLY RECOMMENDED*
19
+ define_attribute :cvv, String
20
+
21
+ # @!attribute first_name
22
+ # @return [String] First name
23
+ define_attribute :first_name, String
24
+
25
+ # @!attribute ip_address
26
+ # @return [String] *STRONGLY RECOMMENDED* Customer's IP address when updating their billing information.
27
+ define_attribute :ip_address, String
28
+
29
+ # @!attribute last_name
30
+ # @return [String] Last name
31
+ define_attribute :last_name, String
32
+
33
+ # @!attribute month
34
+ # @return [String] Expiration month
35
+ define_attribute :month, String
36
+
37
+ # @!attribute number
38
+ # @return [String] Credit card number, spaces and dashes are accepted.
39
+ define_attribute :number, String
40
+
41
+ # @!attribute paypal_billing_agreement_id
42
+ # @return [String] PayPal billing agreement ID
43
+ define_attribute :paypal_billing_agreement_id, String
44
+
45
+ # @!attribute token_id
46
+ # @return [String] A token [generated by Recurly.js](https://docs.recurly.com/js/#getting-a-token).
47
+ define_attribute :token_id, String
48
+
49
+ # @!attribute vat_number
50
+ # @return [String] VAT number
51
+ define_attribute :vat_number, String
52
+
53
+ # @!attribute year
54
+ # @return [String] Expiration year
55
+ define_attribute :year, String
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,66 @@
1
+ module Recurly
2
+ module Requests
3
+ class CouponCreateOnly < Request
4
+
5
+ # @!attribute applies_to_all_plans
6
+ # @return [Boolean] The coupon is valid for all plans if true. If false then `plans` and `plans_names` will list the applicable plans.
7
+ define_attribute :applies_to_all_plans, :Boolean
8
+
9
+ # @!attribute applies_to_non_plan_charges
10
+ # @return [Boolean] The coupon is valid for one-time, non-plan charges if true.
11
+ define_attribute :applies_to_non_plan_charges, :Boolean
12
+
13
+ # @!attribute code
14
+ # @return [String] The code the customer enters to redeem the coupon.
15
+ define_attribute :code, String
16
+
17
+ # @!attribute coupon_type
18
+ # @return [String] Whether the coupon is "single_code" or "bulk". Bulk coupons will require a `unique_code_template` and will generate unique codes through the `/generate` endpoint.
19
+ define_attribute :coupon_type, String, {:enum => ["single_code", "bulk"]}
20
+
21
+ # @!attribute currencies
22
+ # @return [Array[String]] Fixed discount currencies by currency. Required if the coupon type is `fixed`. This parameter should contain the coupon discount values
23
+ define_attribute :currencies, Array, {:item_type => String}
24
+
25
+ # @!attribute discount_percent
26
+ # @return [Integer] The percent of the price discounted by the coupon. Required if `discount_type` is `percent`.
27
+ define_attribute :discount_percent, Integer
28
+
29
+ # @!attribute discount_type
30
+ # @return [String] The type of discount provided by the coupon (how the amount discounted is calculated)
31
+ define_attribute :discount_type, String, {:enum => ["percent", "fixed", "free_trial"]}
32
+
33
+ # @!attribute duration
34
+ # @return [String] This field does not apply when the discount_type is `free_trial`. - "single_use" coupons applies to the first invoice only. - "temporal" coupons will apply to invoices for the duration determined by the `temporal_unit` and `temporal_amount` attributes. - "forever" coupons will apply to invoices forever.
35
+ define_attribute :duration, String, {:enum => ["forever", "single_use", "temporal"]}
36
+
37
+ # @!attribute free_trial_amount
38
+ # @return [Integer] Sets the duration of time the `free_trial_unit` is for. Required if `discount_type` is `free_trial`.
39
+ define_attribute :free_trial_amount, Integer
40
+
41
+ # @!attribute free_trial_unit
42
+ # @return [String] Description of the unit of time the coupon is for. Used with `free_trial_amount` to determine the duration of time the coupon is for. Required if `discount_type` is `free_trial`.
43
+ define_attribute :free_trial_unit, String, {:enum => ["day", "week", "month"]}
44
+
45
+ # @!attribute plan_codes
46
+ # @return [Array[String]] List of plan codes to which this coupon applies. See `applies_to_all_plans`
47
+ define_attribute :plan_codes, Array, {:item_type => String}
48
+
49
+ # @!attribute redemption_resource
50
+ # @return [String] Whether the discount is for all eligible charges on the account, or only a specific subscription.
51
+ define_attribute :redemption_resource, String, {:enum => ["account", "subscription"]}
52
+
53
+ # @!attribute temporal_amount
54
+ # @return [Integer] If `duration` is "temporal" than `temporal_amount` is an integer which is multiplied by `temporal_unit` to define the duration that the coupon will be applied to invoices for.
55
+ define_attribute :temporal_amount, Integer
56
+
57
+ # @!attribute temporal_unit
58
+ # @return [String] If `duration` is "temporal" than `temporal_unit` is multiplied by `temporal_amount` to define the duration that the coupon will be applied to invoices for.
59
+ define_attribute :temporal_unit, String, {:enum => ["day", "week", "month", "year"]}
60
+
61
+ # @!attribute unique_code_template
62
+ # @return [String] On a bulk coupon, the template from which unique coupon codes are generated. - You must start the template with your coupon_code wrapped in single quotes. - Outside of single quotes, use a 9 for a character that you want to be a random number. - Outside of single quotes, use an "x" for a character that you want to be a random letter. - Outside of single quotes, use an * for a character that you want to be a random number or letter. - Use single quotes ' ' for characters that you want to remain static. These strings can be alphanumeric and may contain a - _ or +. For example: "'abc-'****'-def'"
63
+ define_attribute :unique_code_template, String
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,30 @@
1
+ module Recurly
2
+ module Requests
3
+ class CouponUpdatable < Request
4
+
5
+ # @!attribute hosted_description
6
+ # @return [String] This description will show up when a customer redeems a coupon on your Hosted Payment Pages, or if you choose to show the description on your own checkout page.
7
+ define_attribute :hosted_description, String
8
+
9
+ # @!attribute invoice_description
10
+ # @return [String] Description of the coupon on the invoice.
11
+ define_attribute :invoice_description, String
12
+
13
+ # @!attribute max_redemptions
14
+ # @return [Integer] A maximum number of redemptions for the coupon. The coupon will expire when it hits its maximum redemptions.
15
+ define_attribute :max_redemptions, Integer
16
+
17
+ # @!attribute max_redemptions_per_account
18
+ # @return [Integer] Redemptions per account is the number of times a specific account can redeem the coupon. Set redemptions per account to `1` if you want to keep customers from gaming the system and getting more than one discount from the coupon campaign.
19
+ define_attribute :max_redemptions_per_account, Integer
20
+
21
+ # @!attribute name
22
+ # @return [String] The internal name for the coupon.
23
+ define_attribute :name, String
24
+
25
+ # @!attribute redeem_by_date
26
+ # @return [String] The date and time the coupon will expire and can no longer be redeemed. Time is always 11:59:59, the end-of-day Pacific time.
27
+ define_attribute :redeem_by_date, String
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,62 @@
1
+ module Recurly
2
+ module Requests
3
+ class CreateAccount < Request
4
+
5
+ # @!attribute acquisition
6
+ # @return [AccountAcquisitionUpdatable]
7
+ define_attribute :acquisition, :AccountAcquisitionUpdatable
8
+
9
+ # @!attribute address
10
+ # @return [Address]
11
+ define_attribute :address, :Address
12
+
13
+ # @!attribute billing_info
14
+ # @return [BillingInfoCreate]
15
+ define_attribute :billing_info, :BillingInfoCreate
16
+
17
+ # @!attribute cc_emails
18
+ # @return [String] Additional email address that should receive account correspondence. These should be separated only by commas. These CC emails will receive all emails that the `email` field also receives.
19
+ define_attribute :cc_emails, String
20
+
21
+ # @!attribute code
22
+ # @return [String] The unique identifier of the account. This cannot be changed once the account is created.
23
+ define_attribute :code, String
24
+
25
+ # @!attribute company
26
+ # @return [String]
27
+ define_attribute :company, String
28
+
29
+ # @!attribute email
30
+ # @return [String] The email address used for communicating with this customer. The customer will also use this email address to log into your hosted account management pages. This value does not need to be unique.
31
+ define_attribute :email, String
32
+
33
+ # @!attribute first_name
34
+ # @return [String]
35
+ define_attribute :first_name, String
36
+
37
+ # @!attribute last_name
38
+ # @return [String]
39
+ define_attribute :last_name, String
40
+
41
+ # @!attribute preferred_locale
42
+ # @return [String] Used to determine the language and locale of emails sent on behalf of the merchant to the customer. The list of locales is restricted to those the merchant has enabled on the site.
43
+ define_attribute :preferred_locale, String, {:enum => ["da-DK", "de-CH", "de-DE", "en-AU", "en-CA", "en-GB", "en-NZ", "en-US", "es-ES", "es-MX", "es-US", "fr-CA", "fr-FR", "hi-IN", "ja-JP", "nl-BE", "nl-NL", "pt-BR", "pt-PT", "ru-RU", "tr-TR", "zh-CN"]}
44
+
45
+ # @!attribute shipping_addresses
46
+ # @return [Array[ShippingAddressCreate]]
47
+ define_attribute :shipping_addresses, Array, {:item_type => :ShippingAddressCreate}
48
+
49
+ # @!attribute tax_exempt
50
+ # @return [Boolean] The tax status of the account. `true` exempts tax on the account, `false` applies tax on the account.
51
+ define_attribute :tax_exempt, :Boolean
52
+
53
+ # @!attribute username
54
+ # @return [String] A secondary value for the account.
55
+ define_attribute :username, String
56
+
57
+ # @!attribute vat_number
58
+ # @return [String] The VAT number of the account (to avoid having the VAT applied). This is only used for manually collected invoices.
59
+ define_attribute :vat_number, String
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,90 @@
1
+ module Recurly
2
+ module Requests
3
+ class CreateCoupon < Request
4
+
5
+ # @!attribute applies_to_all_plans
6
+ # @return [Boolean] The coupon is valid for all plans if true. If false then `plans` and `plans_names` will list the applicable plans.
7
+ define_attribute :applies_to_all_plans, :Boolean
8
+
9
+ # @!attribute applies_to_non_plan_charges
10
+ # @return [Boolean] The coupon is valid for one-time, non-plan charges if true.
11
+ define_attribute :applies_to_non_plan_charges, :Boolean
12
+
13
+ # @!attribute code
14
+ # @return [String] The code the customer enters to redeem the coupon.
15
+ define_attribute :code, String
16
+
17
+ # @!attribute coupon_type
18
+ # @return [String] Whether the coupon is "single_code" or "bulk". Bulk coupons will require a `unique_code_template` and will generate unique codes through the `/generate` endpoint.
19
+ define_attribute :coupon_type, String, {:enum => ["single_code", "bulk"]}
20
+
21
+ # @!attribute currencies
22
+ # @return [Array[String]] Fixed discount currencies by currency. Required if the coupon type is `fixed`. This parameter should contain the coupon discount values
23
+ define_attribute :currencies, Array, {:item_type => String}
24
+
25
+ # @!attribute discount_percent
26
+ # @return [Integer] The percent of the price discounted by the coupon. Required if `discount_type` is `percent`.
27
+ define_attribute :discount_percent, Integer
28
+
29
+ # @!attribute discount_type
30
+ # @return [String] The type of discount provided by the coupon (how the amount discounted is calculated)
31
+ define_attribute :discount_type, String, {:enum => ["percent", "fixed", "free_trial"]}
32
+
33
+ # @!attribute duration
34
+ # @return [String] This field does not apply when the discount_type is `free_trial`. - "single_use" coupons applies to the first invoice only. - "temporal" coupons will apply to invoices for the duration determined by the `temporal_unit` and `temporal_amount` attributes. - "forever" coupons will apply to invoices forever.
35
+ define_attribute :duration, String, {:enum => ["forever", "single_use", "temporal"]}
36
+
37
+ # @!attribute free_trial_amount
38
+ # @return [Integer] Sets the duration of time the `free_trial_unit` is for. Required if `discount_type` is `free_trial`.
39
+ define_attribute :free_trial_amount, Integer
40
+
41
+ # @!attribute free_trial_unit
42
+ # @return [String] Description of the unit of time the coupon is for. Used with `free_trial_amount` to determine the duration of time the coupon is for. Required if `discount_type` is `free_trial`.
43
+ define_attribute :free_trial_unit, String, {:enum => ["day", "week", "month"]}
44
+
45
+ # @!attribute hosted_description
46
+ # @return [String] This description will show up when a customer redeems a coupon on your Hosted Payment Pages, or if you choose to show the description on your own checkout page.
47
+ define_attribute :hosted_description, String
48
+
49
+ # @!attribute invoice_description
50
+ # @return [String] Description of the coupon on the invoice.
51
+ define_attribute :invoice_description, String
52
+
53
+ # @!attribute max_redemptions
54
+ # @return [Integer] A maximum number of redemptions for the coupon. The coupon will expire when it hits its maximum redemptions.
55
+ define_attribute :max_redemptions, Integer
56
+
57
+ # @!attribute max_redemptions_per_account
58
+ # @return [Integer] Redemptions per account is the number of times a specific account can redeem the coupon. Set redemptions per account to `1` if you want to keep customers from gaming the system and getting more than one discount from the coupon campaign.
59
+ define_attribute :max_redemptions_per_account, Integer
60
+
61
+ # @!attribute name
62
+ # @return [String] The internal name for the coupon.
63
+ define_attribute :name, String
64
+
65
+ # @!attribute plan_codes
66
+ # @return [Array[String]] List of plan codes to which this coupon applies. See `applies_to_all_plans`
67
+ define_attribute :plan_codes, Array, {:item_type => String}
68
+
69
+ # @!attribute redeem_by_date
70
+ # @return [String] The date and time the coupon will expire and can no longer be redeemed. Time is always 11:59:59, the end-of-day Pacific time.
71
+ define_attribute :redeem_by_date, String
72
+
73
+ # @!attribute redemption_resource
74
+ # @return [String] Whether the discount is for all eligible charges on the account, or only a specific subscription.
75
+ define_attribute :redemption_resource, String, {:enum => ["account", "subscription"]}
76
+
77
+ # @!attribute temporal_amount
78
+ # @return [Integer] If `duration` is "temporal" than `temporal_amount` is an integer which is multiplied by `temporal_unit` to define the duration that the coupon will be applied to invoices for.
79
+ define_attribute :temporal_amount, Integer
80
+
81
+ # @!attribute temporal_unit
82
+ # @return [String] If `duration` is "temporal" than `temporal_unit` is multiplied by `temporal_amount` to define the duration that the coupon will be applied to invoices for.
83
+ define_attribute :temporal_unit, String, {:enum => ["day", "week", "month", "year"]}
84
+
85
+ # @!attribute unique_code_template
86
+ # @return [String] On a bulk coupon, the template from which unique coupon codes are generated. - You must start the template with your coupon_code wrapped in single quotes. - Outside of single quotes, use a 9 for a character that you want to be a random number. - Outside of single quotes, use an "x" for a character that you want to be a random letter. - Outside of single quotes, use an * for a character that you want to be a random number or letter. - Use single quotes ' ' for characters that you want to remain static. These strings can be alphanumeric and may contain a - _ or +. For example: "'abc-'****'-def'"
87
+ define_attribute :unique_code_template, String
88
+ end
89
+ end
90
+ end