recurly 2.18.15 → 3.0.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (209) 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.rb +14 -145
  23. data/lib/recurly/client.rb +198 -0
  24. data/lib/recurly/client/operations.rb +935 -0
  25. data/lib/recurly/errors.rb +34 -0
  26. data/lib/recurly/errors/api_errors.rb +35 -0
  27. data/lib/recurly/errors/network_errors.rb +8 -0
  28. data/lib/recurly/pager.rb +119 -0
  29. data/lib/recurly/request.rb +30 -0
  30. data/lib/recurly/requests/account_acquisition_updatable.rb +22 -0
  31. data/lib/recurly/requests/account_create_only.rb +18 -0
  32. data/lib/recurly/requests/account_updatable.rb +50 -0
  33. data/lib/recurly/requests/add_on_create.rb +38 -0
  34. data/lib/recurly/requests/add_on_update.rb +38 -0
  35. data/lib/recurly/requests/address.rb +42 -0
  36. data/lib/recurly/requests/billing_info_create.rb +58 -0
  37. data/lib/recurly/requests/coupon_create_only.rb +66 -0
  38. data/lib/recurly/requests/coupon_updatable.rb +30 -0
  39. data/lib/recurly/requests/create_account.rb +62 -0
  40. data/lib/recurly/requests/create_coupon.rb +90 -0
  41. data/lib/recurly/requests/invoice_create.rb +42 -0
  42. data/lib/recurly/requests/invoice_refund.rb +30 -0
  43. data/lib/recurly/requests/line_item_create.rb +46 -0
  44. data/lib/recurly/requests/plan_create.rb +66 -0
  45. data/lib/recurly/requests/plan_update.rb +70 -0
  46. data/lib/recurly/requests/shipping_address_create.rb +58 -0
  47. data/lib/recurly/requests/shipping_address_update.rb +62 -0
  48. data/lib/recurly/requests/subscription_add_on_create.rb +22 -0
  49. data/lib/recurly/requests/subscription_change_create.rb +42 -0
  50. data/lib/recurly/requests/subscription_create.rb +86 -0
  51. data/lib/recurly/requests/subscription_update.rb +42 -0
  52. data/lib/recurly/requests/update_coupon.rb +30 -0
  53. data/lib/recurly/resource.rb +16 -1103
  54. data/lib/recurly/resources/account.rb +86 -0
  55. data/lib/recurly/resources/account_acquisition.rb +42 -0
  56. data/lib/recurly/resources/account_balance.rb +22 -0
  57. data/lib/recurly/resources/account_note.rb +30 -0
  58. data/lib/recurly/resources/add_on.rb +62 -0
  59. data/lib/recurly/resources/address.rb +42 -0
  60. data/lib/recurly/resources/billing_info.rb +62 -0
  61. data/lib/recurly/resources/coupon.rb +110 -0
  62. data/lib/recurly/resources/coupon_discount.rb +22 -0
  63. data/lib/recurly/resources/coupon_redemption.rb +46 -0
  64. data/lib/recurly/resources/credit_payment.rb +62 -0
  65. data/lib/recurly/resources/error.rb +18 -0
  66. data/lib/recurly/resources/error_may_have_transaction.rb +22 -0
  67. data/lib/recurly/resources/invoice.rb +138 -0
  68. data/lib/recurly/resources/invoice_collection.rb +18 -0
  69. data/lib/recurly/resources/line_item.rb +166 -0
  70. data/lib/recurly/resources/plan.rb +86 -0
  71. data/lib/recurly/resources/settings.rb +18 -0
  72. data/lib/recurly/resources/shipping_address.rb +74 -0
  73. data/lib/recurly/resources/site.rb +46 -0
  74. data/lib/recurly/resources/subscription.rb +134 -0
  75. data/lib/recurly/resources/subscription_add_on.rb +42 -0
  76. data/lib/recurly/resources/subscription_change.rb +54 -0
  77. data/lib/recurly/resources/tax_info.rb +18 -0
  78. data/lib/recurly/resources/transaction.rb +146 -0
  79. data/lib/recurly/resources/unique_coupon_code.rb +38 -0
  80. data/lib/recurly/resources/user.rb +38 -0
  81. data/lib/recurly/schema.rb +114 -0
  82. data/lib/recurly/schema/json_deserializer.rb +53 -0
  83. data/lib/recurly/schema/json_parser.rb +71 -0
  84. data/lib/recurly/schema/request_caster.rb +66 -0
  85. data/lib/recurly/schema/schema_factory.rb +50 -0
  86. data/lib/recurly/schema/schema_validator.rb +125 -0
  87. data/lib/recurly/version.rb +1 -10
  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 +121 -245
  93. data/lib/recurly/account.rb +0 -190
  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 -44
  97. data/lib/recurly/address.rb +0 -25
  98. data/lib/recurly/adjustment.rb +0 -81
  99. data/lib/recurly/api.rb +0 -110
  100. data/lib/recurly/api/errors.rb +0 -208
  101. data/lib/recurly/api/net_http_adapter.rb +0 -111
  102. data/lib/recurly/billing_info.rb +0 -109
  103. data/lib/recurly/coupon.rb +0 -134
  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 -297
  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 -234
  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.rb +0 -365
  128. data/lib/recurly/subscription/add_ons.rb +0 -82
  129. data/lib/recurly/subscription_add_on.rb +0 -58
  130. data/lib/recurly/tax_detail.rb +0 -16
  131. data/lib/recurly/tax_type.rb +0 -13
  132. data/lib/recurly/tier.rb +0 -18
  133. data/lib/recurly/transaction.rb +0 -131
  134. data/lib/recurly/transaction/errors.rb +0 -115
  135. data/lib/recurly/usage.rb +0 -28
  136. data/lib/recurly/verify.rb +0 -12
  137. data/lib/recurly/webhook.rb +0 -111
  138. data/lib/recurly/webhook/account_notification.rb +0 -13
  139. data/lib/recurly/webhook/billing_info_update_failed_notification.rb +0 -6
  140. data/lib/recurly/webhook/billing_info_updated_notification.rb +0 -6
  141. data/lib/recurly/webhook/canceled_account_notification.rb +0 -6
  142. data/lib/recurly/webhook/canceled_gift_card_notification.rb +0 -6
  143. data/lib/recurly/webhook/canceled_subscription_notification.rb +0 -6
  144. data/lib/recurly/webhook/closed_credit_invoice_notification.rb +0 -6
  145. data/lib/recurly/webhook/closed_invoice_notification.rb +0 -6
  146. data/lib/recurly/webhook/credit_payment_notification.rb +0 -12
  147. data/lib/recurly/webhook/deactivated_item_notification.rb +0 -6
  148. data/lib/recurly/webhook/deleted_shipping_address_notification.rb +0 -6
  149. data/lib/recurly/webhook/dunning_notification.rb +0 -14
  150. data/lib/recurly/webhook/expired_subscription_notification.rb +0 -6
  151. data/lib/recurly/webhook/failed_charge_invoice_notification.rb +0 -6
  152. data/lib/recurly/webhook/failed_payment_notification.rb +0 -6
  153. data/lib/recurly/webhook/fraud_info_updated_notification.rb +0 -6
  154. data/lib/recurly/webhook/gift_card_notification.rb +0 -8
  155. data/lib/recurly/webhook/invoice_notification.rb +0 -12
  156. data/lib/recurly/webhook/item_notification.rb +0 -7
  157. data/lib/recurly/webhook/low_balance_gift_card_notification.rb +0 -6
  158. data/lib/recurly/webhook/new_account_notification.rb +0 -6
  159. data/lib/recurly/webhook/new_charge_invoice_notification.rb +0 -6
  160. data/lib/recurly/webhook/new_credit_invoice_notification.rb +0 -6
  161. data/lib/recurly/webhook/new_credit_payment_notification.rb +0 -6
  162. data/lib/recurly/webhook/new_dunning_event_notification.rb +0 -6
  163. data/lib/recurly/webhook/new_invoice_notification.rb +0 -6
  164. data/lib/recurly/webhook/new_item_notification.rb +0 -6
  165. data/lib/recurly/webhook/new_shipping_address_notification.rb +0 -6
  166. data/lib/recurly/webhook/new_subscription_notification.rb +0 -6
  167. data/lib/recurly/webhook/new_usage_notification.rb +0 -8
  168. data/lib/recurly/webhook/notification.rb +0 -18
  169. data/lib/recurly/webhook/paid_charge_invoice_notification.rb +0 -6
  170. data/lib/recurly/webhook/past_due_charge_invoice_notification.rb +0 -6
  171. data/lib/recurly/webhook/past_due_invoice_notification.rb +0 -6
  172. data/lib/recurly/webhook/paused_subscription_renewal_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/subscription_notification.rb +0 -12
  188. data/lib/recurly/webhook/subscription_pause_canceled_notification.rb +0 -6
  189. data/lib/recurly/webhook/subscription_pause_modified_notification.rb +0 -6
  190. data/lib/recurly/webhook/subscription_paused_notification.rb +0 -6
  191. data/lib/recurly/webhook/subscription_resumed_notification.rb +0 -6
  192. data/lib/recurly/webhook/successful_payment_notification.rb +0 -6
  193. data/lib/recurly/webhook/successful_refund_notification.rb +0 -6
  194. data/lib/recurly/webhook/transaction_authorized_notification.rb +0 -6
  195. data/lib/recurly/webhook/transaction_notification.rb +0 -12
  196. data/lib/recurly/webhook/transaction_status_updated_notification.rb +0 -6
  197. data/lib/recurly/webhook/updated_account_notification.rb +0 -6
  198. data/lib/recurly/webhook/updated_balance_gift_card_notification.rb +0 -7
  199. data/lib/recurly/webhook/updated_gift_card_notification.rb +0 -6
  200. data/lib/recurly/webhook/updated_invoice_notification.rb +0 -6
  201. data/lib/recurly/webhook/updated_item_notification.rb +0 -6
  202. data/lib/recurly/webhook/updated_shipping_address_notification.rb +0 -6
  203. data/lib/recurly/webhook/updated_subscription_notification.rb +0 -6
  204. data/lib/recurly/webhook/void_payment_notification.rb +0 -6
  205. data/lib/recurly/webhook/voided_credit_invoice_notification.rb +0 -6
  206. data/lib/recurly/webhook/voided_credit_payment_notification.rb +0 -6
  207. data/lib/recurly/xml.rb +0 -122
  208. data/lib/recurly/xml/nokogiri.rb +0 -60
  209. data/lib/recurly/xml/rexml.rb +0 -52
@@ -0,0 +1,86 @@
1
+ module Recurly
2
+ module Resources
3
+ class Account < Resource
4
+
5
+ # @!attribute address
6
+ # @return [Address]
7
+ define_attribute :address, :Address
8
+
9
+ # @!attribute billing_info
10
+ # @return [BillingInfo]
11
+ define_attribute :billing_info, :BillingInfo
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 [r] code
18
+ # @return [String] The unique identifier of the account. This cannot be changed once the account is created.
19
+ define_attribute :code, String, {:read_only => true}
20
+
21
+ # @!attribute company
22
+ # @return [String]
23
+ define_attribute :company, String
24
+
25
+ # @!attribute [r] created_at
26
+ # @return [DateTime] When the account was created.
27
+ define_attribute :created_at, DateTime, {:read_only => true}
28
+
29
+ # @!attribute [r] deleted_at
30
+ # @return [DateTime] If present, when the account was last marked inactive.
31
+ define_attribute :deleted_at, DateTime, {:read_only => true}
32
+
33
+ # @!attribute email
34
+ # @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.
35
+ define_attribute :email, String
36
+
37
+ # @!attribute first_name
38
+ # @return [String]
39
+ define_attribute :first_name, String
40
+
41
+ # @!attribute [r] hosted_login_token
42
+ # @return [String] The unique token for automatically logging the account in to the hosted management pages. You may automatically log the user into their hosted management pages by directing the user to: `https://{subdomain}.recurly.com/account/{hosted_login_token}`.
43
+ define_attribute :hosted_login_token, String, {:read_only => true}
44
+
45
+ # @!attribute [r] id
46
+ # @return [String]
47
+ define_attribute :id, String, {:read_only => true}
48
+
49
+ # @!attribute last_name
50
+ # @return [String]
51
+ define_attribute :last_name, String
52
+
53
+ # @!attribute [r] object
54
+ # @return [String] Object type
55
+ define_attribute :object, String, {:read_only => true}
56
+
57
+ # @!attribute preferred_locale
58
+ # @return [String] Used to determine the language and locale of emails sent on behalf of the merchant to the customer.
59
+ 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"]}
60
+
61
+ # @!attribute shipping_addresses
62
+ # @return [Array[ShippingAddress]] The shipping addresses on the account.
63
+ define_attribute :shipping_addresses, Array, {:item_type => :ShippingAddress}
64
+
65
+ # @!attribute [r] state
66
+ # @return [String] Accounts can be either active or inactive.
67
+ define_attribute :state, String, {:read_only => true, :enum => ["active", "inactive"]}
68
+
69
+ # @!attribute tax_exempt
70
+ # @return [Boolean] The tax status of the account. `true` exempts tax on the account, `false` applies tax on the account.
71
+ define_attribute :tax_exempt, :Boolean
72
+
73
+ # @!attribute [r] updated_at
74
+ # @return [DateTime] When the account was last changed.
75
+ define_attribute :updated_at, DateTime, {:read_only => true}
76
+
77
+ # @!attribute username
78
+ # @return [String] A secondary value for the account.
79
+ define_attribute :username, String
80
+
81
+ # @!attribute vat_number
82
+ # @return [String] The VAT number of the account (to avoid having the VAT applied). This is only used for manually collected invoices.
83
+ define_attribute :vat_number, String
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,42 @@
1
+ module Recurly
2
+ module Resources
3
+ class AccountAcquisition < Resource
4
+
5
+ # @!attribute account
6
+ # @return [AccountMini]
7
+ define_attribute :account, :AccountMini
8
+
9
+ # @!attribute campaign
10
+ # @return [String] An arbitrary identifier for the marketing campaign that led to the acquisition of this account.
11
+ define_attribute :campaign, String
12
+
13
+ # @!attribute channel
14
+ # @return [String] The channel through which the account was acquired.
15
+ define_attribute :channel, String, {:enum => ["referral", "social_media", "email", "paid_search", "organic_search", "direct_traffic", "marketing_content", "blog", "events", "outbound_sales", "advertising", "public_relations", "other"]}
16
+
17
+ # @!attribute cost
18
+ # @return [Hash] Account balance
19
+ define_attribute :cost, Hash
20
+
21
+ # @!attribute [r] created_at
22
+ # @return [DateTime] When the account acquisition data was created.
23
+ define_attribute :created_at, DateTime, {:read_only => true}
24
+
25
+ # @!attribute [r] id
26
+ # @return [String]
27
+ define_attribute :id, String, {:read_only => true}
28
+
29
+ # @!attribute [r] object
30
+ # @return [String] Object type
31
+ define_attribute :object, String, {:read_only => true}
32
+
33
+ # @!attribute subchannel
34
+ # @return [String] An arbitrary subchannel string representing a distinction/subcategory within a broader channel.
35
+ define_attribute :subchannel, String
36
+
37
+ # @!attribute [r] updated_at
38
+ # @return [DateTime] When the account acquisition data was last changed.
39
+ define_attribute :updated_at, DateTime, {:read_only => true}
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,22 @@
1
+ module Recurly
2
+ module Resources
3
+ class AccountBalance < Resource
4
+
5
+ # @!attribute account
6
+ # @return [AccountMini]
7
+ define_attribute :account, :AccountMini
8
+
9
+ # @!attribute balances
10
+ # @return [Hash] Account balance
11
+ define_attribute :balances, Hash
12
+
13
+ # @!attribute [r] object
14
+ # @return [String] Object type
15
+ define_attribute :object, String, {:read_only => true}
16
+
17
+ # @!attribute past_due
18
+ # @return [Boolean]
19
+ define_attribute :past_due, :Boolean
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,30 @@
1
+ module Recurly
2
+ module Resources
3
+ class AccountNote < Resource
4
+
5
+ # @!attribute account_id
6
+ # @return [String]
7
+ define_attribute :account_id, String
8
+
9
+ # @!attribute [r] created_at
10
+ # @return [DateTime]
11
+ define_attribute :created_at, DateTime, {:read_only => true}
12
+
13
+ # @!attribute [r] id
14
+ # @return [String]
15
+ define_attribute :id, String, {:read_only => true}
16
+
17
+ # @!attribute message
18
+ # @return [String]
19
+ define_attribute :message, String
20
+
21
+ # @!attribute [r] object
22
+ # @return [String] Object type
23
+ define_attribute :object, String, {:read_only => true}
24
+
25
+ # @!attribute user
26
+ # @return [User]
27
+ define_attribute :user, :User
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,62 @@
1
+ module Recurly
2
+ module Resources
3
+ class AddOn < Resource
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 [r] created_at
14
+ # @return [DateTime] Created at
15
+ define_attribute :created_at, DateTime, {:read_only => true}
16
+
17
+ # @!attribute currencies
18
+ # @return [Array[String]] Add-on pricing
19
+ define_attribute :currencies, Array, {:item_type => String}
20
+
21
+ # @!attribute default_quantity
22
+ # @return [Integer] Default quantity for the hosted pages.
23
+ define_attribute :default_quantity, Integer
24
+
25
+ # @!attribute [r] deleted_at
26
+ # @return [DateTime] Deleted at
27
+ define_attribute :deleted_at, DateTime, {:read_only => true}
28
+
29
+ # @!attribute display_quantity
30
+ # @return [Boolean] Determines if the quantity field is displayed on the hosted pages for the add-on.
31
+ define_attribute :display_quantity, :Boolean
32
+
33
+ # @!attribute [r] id
34
+ # @return [String] Add-on ID
35
+ define_attribute :id, String, {:read_only => true}
36
+
37
+ # @!attribute name
38
+ # @return [String] Describes your add-on and will appear in subscribers' invoices.
39
+ define_attribute :name, String
40
+
41
+ # @!attribute [r] object
42
+ # @return [String] Object type
43
+ define_attribute :object, String, {:read_only => true}
44
+
45
+ # @!attribute [r] plan_id
46
+ # @return [String] Plan ID
47
+ define_attribute :plan_id, String, {:read_only => true}
48
+
49
+ # @!attribute [r] state
50
+ # @return [String] Add-ons can be either active or inactive.
51
+ define_attribute :state, String, {:read_only => true, :enum => ["active", "inactive"]}
52
+
53
+ # @!attribute tax_code
54
+ # @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.
55
+ define_attribute :tax_code, String
56
+
57
+ # @!attribute [r] updated_at
58
+ # @return [DateTime] Last updated at
59
+ define_attribute :updated_at, DateTime, {:read_only => true}
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,42 @@
1
+ module Recurly
2
+ module Resources
3
+ class Address < Resource
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,62 @@
1
+ module Recurly
2
+ module Resources
3
+ class BillingInfo < Resource
4
+
5
+ # @!attribute [r] account_id
6
+ # @return [String]
7
+ define_attribute :account_id, String, {:read_only => true}
8
+
9
+ # @!attribute address
10
+ # @return [Address]
11
+ define_attribute :address, :Address
12
+
13
+ # @!attribute company
14
+ # @return [String]
15
+ define_attribute :company, String
16
+
17
+ # @!attribute [r] created_at
18
+ # @return [DateTime] When the billing information was created.
19
+ define_attribute :created_at, DateTime, {:read_only => true}
20
+
21
+ # @!attribute first_name
22
+ # @return [String]
23
+ define_attribute :first_name, String
24
+
25
+ # @!attribute [r] fraud
26
+ # @return [Hash] Most recent fraud result.
27
+ define_attribute :fraud, Hash, {:read_only => true}
28
+
29
+ # @!attribute [r] id
30
+ # @return [String]
31
+ define_attribute :id, String, {:read_only => true}
32
+
33
+ # @!attribute last_name
34
+ # @return [String]
35
+ define_attribute :last_name, String
36
+
37
+ # @!attribute [r] object
38
+ # @return [String] Object type
39
+ define_attribute :object, String, {:read_only => true}
40
+
41
+ # @!attribute payment_method
42
+ # @return [Hash]
43
+ define_attribute :payment_method, Hash
44
+
45
+ # @!attribute [r] updated_at
46
+ # @return [DateTime] When the billing information was last changed.
47
+ define_attribute :updated_at, DateTime, {:read_only => true}
48
+
49
+ # @!attribute [r] updated_by
50
+ # @return [Hash]
51
+ define_attribute :updated_by, Hash, {:read_only => true}
52
+
53
+ # @!attribute [r] valid
54
+ # @return [Boolean]
55
+ define_attribute :valid, :Boolean, {:read_only => true}
56
+
57
+ # @!attribute vat_number
58
+ # @return [String] Customer's VAT number (to avoid having the VAT applied). This is only used for automatically collected invoices.
59
+ define_attribute :vat_number, String
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,110 @@
1
+ module Recurly
2
+ module Resources
3
+ class Coupon < Resource
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 [r] created_at
22
+ # @return [DateTime] Created at
23
+ define_attribute :created_at, DateTime, {:read_only => true}
24
+
25
+ # @!attribute discount
26
+ # @return [CouponDiscount]
27
+ define_attribute :discount, :CouponDiscount
28
+
29
+ # @!attribute duration
30
+ # @return [String] - "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.
31
+ define_attribute :duration, String, {:enum => ["forever", "single_use", "temporal"]}
32
+
33
+ # @!attribute expired_at
34
+ # @return [DateTime] The date and time the coupon was expired early or reached its `max_redemptions`.
35
+ define_attribute :expired_at, DateTime
36
+
37
+ # @!attribute free_trial_amount
38
+ # @return [Integer] Sets the duration of time the `free_trial_unit` is for.
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.
43
+ define_attribute :free_trial_unit, String, {:enum => ["day", "week", "month"]}
44
+
45
+ # @!attribute hosted_page_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_page_description, String
48
+
49
+ # @!attribute [r] id
50
+ # @return [String] Coupon ID
51
+ define_attribute :id, String, {:read_only => true}
52
+
53
+ # @!attribute invoice_description
54
+ # @return [String] Description of the coupon on the invoice.
55
+ define_attribute :invoice_description, String
56
+
57
+ # @!attribute max_redemptions
58
+ # @return [Integer] A maximum number of redemptions for the coupon. The coupon will expire when it hits its maximum redemptions.
59
+ define_attribute :max_redemptions, Integer
60
+
61
+ # @!attribute max_redemptions_per_account
62
+ # @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.
63
+ define_attribute :max_redemptions_per_account, Integer
64
+
65
+ # @!attribute name
66
+ # @return [String] The internal name for the coupon.
67
+ define_attribute :name, String
68
+
69
+ # @!attribute [r] object
70
+ # @return [String] Object type
71
+ define_attribute :object, String, {:read_only => true}
72
+
73
+ # @!attribute plans
74
+ # @return [Array[String]] Plans
75
+ define_attribute :plans, Array, {:item_type => String}
76
+
77
+ # @!attribute plans_names
78
+ # @return [Array[String]] TODO
79
+ define_attribute :plans_names, Array, {:item_type => String}
80
+
81
+ # @!attribute redeem_by
82
+ # @return [DateTime] 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.
83
+ define_attribute :redeem_by, DateTime
84
+
85
+ # @!attribute redemption_resource
86
+ # @return [String] Whether the discount is for all eligible charges on the account, or only a specific subscription.
87
+ define_attribute :redemption_resource, String, {:enum => ["account", "subscription"]}
88
+
89
+ # @!attribute state
90
+ # @return [String] Indicates if the coupon is redeemable, and if it is not, why.
91
+ define_attribute :state, String, {:enum => ["redeemable", "maxed_out", "expired"]}
92
+
93
+ # @!attribute temporal_amount
94
+ # @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.
95
+ define_attribute :temporal_amount, Integer
96
+
97
+ # @!attribute temporal_unit
98
+ # @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.
99
+ define_attribute :temporal_unit, String, {:enum => ["day", "week", "month", "year"]}
100
+
101
+ # @!attribute [r] unique_coupon_codes_count
102
+ # @return [Integer] When this number reaches `max_redemptions` the coupon will no longer be redeemable.
103
+ define_attribute :unique_coupon_codes_count, Integer, {:read_only => true}
104
+
105
+ # @!attribute [r] updated_at
106
+ # @return [DateTime] Last updated at
107
+ define_attribute :updated_at, DateTime, {:read_only => true}
108
+ end
109
+ end
110
+ end