recurly 2.17.11 → 4.18.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.bumpversion.cfg +15 -0
- data/.changelog_config.yaml +11 -0
- data/.github/ISSUE_TEMPLATE/bug-report.md +30 -0
- data/.github/ISSUE_TEMPLATE/question-or-other.md +10 -0
- data/.github/workflows/ci.yml +29 -0
- data/.github/workflows/docs.yml +28 -0
- data/.gitignore +15 -0
- data/.rspec +2 -0
- data/.yardopts +2 -0
- data/CHANGELOG.md +295 -0
- data/CODE_OF_CONDUCT.md +130 -0
- data/CONTRIBUTING.md +106 -0
- data/GETTING_STARTED.md +330 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +9 -148
- data/Rakefile +6 -0
- data/benchmark.rb +16 -0
- data/lib/data/ca-certificates.crt +3466 -0
- data/lib/recurly/client/operations.rb +4079 -0
- data/lib/recurly/client.rb +400 -0
- data/lib/recurly/connection_pool.rb +42 -0
- data/lib/recurly/errors/api_errors.rb +90 -0
- data/lib/recurly/errors/network_errors.rb +7 -0
- data/lib/recurly/errors.rb +51 -0
- data/lib/recurly/http.rb +50 -0
- data/lib/recurly/pager.rb +136 -0
- data/lib/recurly/request.rb +31 -0
- data/lib/recurly/requests/account_acquisition_cost.rb +18 -0
- data/lib/recurly/requests/account_acquisition_update.rb +26 -0
- data/lib/recurly/requests/account_create.rb +98 -0
- data/lib/recurly/requests/account_purchase.rb +98 -0
- data/lib/recurly/requests/account_update.rb +86 -0
- data/lib/recurly/requests/add_on_create.rb +102 -0
- data/lib/recurly/requests/add_on_pricing.rb +26 -0
- data/lib/recurly/requests/add_on_update.rb +78 -0
- data/lib/recurly/requests/address.rb +38 -0
- data/lib/recurly/requests/billing_info_create.rb +134 -0
- data/lib/recurly/requests/billing_info_verify.rb +14 -0
- data/lib/recurly/requests/coupon_bulk_create.rb +14 -0
- data/lib/recurly/requests/coupon_create.rb +102 -0
- data/lib/recurly/requests/coupon_pricing.rb +18 -0
- data/lib/recurly/requests/coupon_redemption_create.rb +22 -0
- data/lib/recurly/requests/coupon_update.rb +34 -0
- data/lib/recurly/requests/custom_field.rb +18 -0
- data/lib/recurly/requests/dunning_campaigns_bulk_update.rb +18 -0
- data/lib/recurly/requests/external_refund.rb +22 -0
- data/lib/recurly/requests/external_transaction.rb +26 -0
- data/lib/recurly/requests/invoice_address.rb +54 -0
- data/lib/recurly/requests/invoice_collect.rb +22 -0
- data/lib/recurly/requests/invoice_create.rb +42 -0
- data/lib/recurly/requests/invoice_refund.rb +34 -0
- data/lib/recurly/requests/invoice_update.rb +34 -0
- data/lib/recurly/requests/item_create.rb +58 -0
- data/lib/recurly/requests/item_update.rb +58 -0
- data/lib/recurly/requests/line_item_create.rb +86 -0
- data/lib/recurly/requests/line_item_refund.rb +22 -0
- data/lib/recurly/requests/measured_unit_create.rb +22 -0
- data/lib/recurly/requests/measured_unit_update.rb +22 -0
- data/lib/recurly/requests/percentage_tier.rb +18 -0
- data/lib/recurly/requests/percentage_tiers_by_currency.rb +18 -0
- data/lib/recurly/requests/plan_create.rb +102 -0
- data/lib/recurly/requests/plan_hosted_pages.rb +26 -0
- data/lib/recurly/requests/plan_pricing.rb +26 -0
- data/lib/recurly/requests/plan_update.rb +94 -0
- data/lib/recurly/requests/pricing.rb +22 -0
- data/lib/recurly/requests/purchase_create.rb +78 -0
- data/lib/recurly/requests/shipping_address_create.rb +62 -0
- data/lib/recurly/requests/shipping_address_update.rb +66 -0
- data/lib/recurly/requests/shipping_fee_create.rb +22 -0
- data/lib/recurly/requests/shipping_method_create.rb +26 -0
- data/lib/recurly/requests/shipping_method_update.rb +26 -0
- data/lib/recurly/requests/shipping_purchase.rb +22 -0
- data/lib/recurly/requests/subscription_add_on_create.rb +46 -0
- data/lib/recurly/requests/subscription_add_on_percentage_tier.rb +18 -0
- data/lib/recurly/requests/subscription_add_on_tier.rb +26 -0
- data/lib/recurly/requests/subscription_add_on_update.rb +50 -0
- data/lib/recurly/requests/subscription_cancel.rb +14 -0
- data/lib/recurly/requests/subscription_change_billing_info_create.rb +14 -0
- data/lib/recurly/requests/subscription_change_create.rb +74 -0
- data/lib/recurly/requests/subscription_change_shipping_create.rb +30 -0
- data/lib/recurly/requests/subscription_create.rb +114 -0
- data/lib/recurly/requests/subscription_pause.rb +14 -0
- data/lib/recurly/requests/subscription_purchase.rb +70 -0
- data/lib/recurly/requests/subscription_shipping_create.rb +30 -0
- data/lib/recurly/requests/subscription_shipping_purchase.rb +22 -0
- data/lib/recurly/requests/subscription_shipping_update.rb +22 -0
- data/lib/recurly/requests/subscription_update.rb +70 -0
- data/lib/recurly/requests/tier.rb +22 -0
- data/lib/recurly/requests/tier_pricing.rb +22 -0
- data/lib/recurly/requests/usage_create.rb +26 -0
- data/lib/recurly/requests.rb +8 -0
- data/lib/recurly/resource.rb +23 -1092
- data/lib/recurly/resources/account.rb +138 -0
- data/lib/recurly/resources/account_acquisition.rb +46 -0
- data/lib/recurly/resources/account_acquisition_cost.rb +18 -0
- data/lib/recurly/resources/account_balance.rb +26 -0
- data/lib/recurly/resources/account_balance_amount.rb +22 -0
- data/lib/recurly/resources/account_mini.rb +50 -0
- data/lib/recurly/resources/account_note.rb +34 -0
- data/lib/recurly/resources/add_on.rb +122 -0
- data/lib/recurly/resources/add_on_mini.rb +54 -0
- data/lib/recurly/resources/add_on_pricing.rb +26 -0
- data/lib/recurly/resources/address.rb +38 -0
- data/lib/recurly/resources/address_with_name.rb +46 -0
- data/lib/recurly/resources/billing_info.rb +74 -0
- data/lib/recurly/resources/billing_info_updated_by.rb +18 -0
- data/lib/recurly/resources/binary_file.rb +14 -0
- data/lib/recurly/resources/coupon.rb +126 -0
- data/lib/recurly/resources/coupon_discount.rb +26 -0
- data/lib/recurly/resources/coupon_discount_pricing.rb +18 -0
- data/lib/recurly/resources/coupon_discount_trial.rb +18 -0
- data/lib/recurly/resources/coupon_mini.rb +42 -0
- data/lib/recurly/resources/coupon_redemption.rb +54 -0
- data/lib/recurly/resources/coupon_redemption_mini.rb +34 -0
- data/lib/recurly/resources/credit_payment.rb +66 -0
- data/lib/recurly/resources/custom_field.rb +18 -0
- data/lib/recurly/resources/custom_field_definition.rb +50 -0
- data/lib/recurly/resources/dunning_campaign.rb +50 -0
- data/lib/recurly/resources/dunning_campaigns_bulk_update_response.rb +18 -0
- data/lib/recurly/resources/dunning_cycle.rb +58 -0
- data/lib/recurly/resources/dunning_interval.rb +18 -0
- data/lib/recurly/resources/error.rb +22 -0
- data/lib/recurly/resources/error_may_have_transaction.rb +26 -0
- data/lib/recurly/resources/export_dates.rb +18 -0
- data/lib/recurly/resources/export_file.rb +22 -0
- data/lib/recurly/resources/export_files.rb +18 -0
- data/lib/recurly/resources/fraud_info.rb +22 -0
- data/lib/recurly/resources/invoice.rb +162 -0
- data/lib/recurly/resources/invoice_address.rb +54 -0
- data/lib/recurly/resources/invoice_collection.rb +22 -0
- data/lib/recurly/resources/invoice_mini.rb +30 -0
- data/lib/recurly/resources/invoice_template.rb +34 -0
- data/lib/recurly/resources/item.rb +82 -0
- data/lib/recurly/resources/item_mini.rb +34 -0
- data/lib/recurly/resources/line_item.rb +206 -0
- data/lib/recurly/resources/measured_unit.rb +46 -0
- data/lib/recurly/resources/payment_method.rb +70 -0
- data/lib/recurly/resources/percentage_tier.rb +18 -0
- data/lib/recurly/resources/percentage_tiers_by_currency.rb +18 -0
- data/lib/recurly/resources/plan.rb +122 -0
- data/lib/recurly/resources/plan_hosted_pages.rb +26 -0
- data/lib/recurly/resources/plan_mini.rb +26 -0
- data/lib/recurly/resources/plan_pricing.rb +26 -0
- data/lib/recurly/resources/pricing.rb +22 -0
- data/lib/recurly/resources/settings.rb +22 -0
- data/lib/recurly/resources/shipping_address.rb +82 -0
- data/lib/recurly/resources/shipping_method.rb +46 -0
- data/lib/recurly/resources/shipping_method_mini.rb +26 -0
- data/lib/recurly/resources/site.rb +54 -0
- data/lib/recurly/resources/subscription.rb +198 -0
- data/lib/recurly/resources/subscription_add_on.rb +78 -0
- data/lib/recurly/resources/subscription_add_on_percentage_tier.rb +18 -0
- data/lib/recurly/resources/subscription_add_on_tier.rb +26 -0
- data/lib/recurly/resources/subscription_change.rb +82 -0
- data/lib/recurly/resources/subscription_change_billing_info.rb +14 -0
- data/lib/recurly/resources/subscription_shipping.rb +26 -0
- data/lib/recurly/resources/tax_detail.rb +26 -0
- data/lib/recurly/resources/tax_info.rb +26 -0
- data/lib/recurly/resources/tier.rb +22 -0
- data/lib/recurly/resources/tier_pricing.rb +22 -0
- data/lib/recurly/resources/transaction.rb +162 -0
- data/lib/recurly/resources/transaction_error.rb +38 -0
- data/lib/recurly/resources/transaction_payment_gateway.rb +26 -0
- data/lib/recurly/resources/unique_coupon_code.rb +50 -0
- data/lib/recurly/resources/unique_coupon_code_params.rb +26 -0
- data/lib/recurly/resources/usage.rb +78 -0
- data/lib/recurly/resources/user.rb +42 -0
- data/lib/recurly/resources.rb +18 -0
- data/lib/recurly/schema/file_parser.rb +13 -0
- data/lib/recurly/schema/json_parser.rb +72 -0
- data/lib/recurly/schema/request_caster.rb +60 -0
- data/lib/recurly/schema/resource_caster.rb +46 -0
- data/lib/recurly/schema/schema_factory.rb +48 -0
- data/lib/recurly/schema/schema_validator.rb +144 -0
- data/lib/recurly/schema.rb +156 -0
- data/lib/recurly/version.rb +1 -15
- data/lib/recurly.rb +15 -141
- data/openapi/api.yaml +22879 -0
- data/recurly.gemspec +39 -0
- data/scripts/build +5 -0
- data/scripts/clean +6 -0
- data/scripts/format +12 -0
- data/scripts/prepare-release +50 -0
- data/scripts/release +17 -0
- data/scripts/test +15 -0
- metadata +217 -220
- data/lib/recurly/account.rb +0 -189
- data/lib/recurly/account_acquisition.rb +0 -19
- data/lib/recurly/account_balance.rb +0 -21
- data/lib/recurly/add_on.rb +0 -30
- data/lib/recurly/address.rb +0 -25
- data/lib/recurly/adjustment.rb +0 -76
- data/lib/recurly/api/errors.rb +0 -208
- data/lib/recurly/api/net_http_adapter.rb +0 -111
- data/lib/recurly/api.rb +0 -101
- data/lib/recurly/billing_info.rb +0 -82
- data/lib/recurly/coupon.rb +0 -134
- data/lib/recurly/credit_payment.rb +0 -32
- data/lib/recurly/custom_field.rb +0 -15
- data/lib/recurly/delivery.rb +0 -19
- data/lib/recurly/error.rb +0 -13
- data/lib/recurly/gift_card.rb +0 -82
- data/lib/recurly/helper.rb +0 -51
- data/lib/recurly/invoice.rb +0 -273
- data/lib/recurly/invoice_collection.rb +0 -14
- data/lib/recurly/js.rb +0 -14
- data/lib/recurly/juris_detail.rb +0 -14
- data/lib/recurly/measured_unit.rb +0 -16
- data/lib/recurly/money.rb +0 -120
- data/lib/recurly/note.rb +0 -14
- data/lib/recurly/plan.rb +0 -40
- data/lib/recurly/purchase.rb +0 -234
- data/lib/recurly/redemption.rb +0 -46
- data/lib/recurly/resource/association.rb +0 -16
- data/lib/recurly/resource/errors.rb +0 -20
- data/lib/recurly/resource/pager.rb +0 -313
- data/lib/recurly/shipping_address.rb +0 -26
- data/lib/recurly/shipping_fee.rb +0 -17
- data/lib/recurly/shipping_method.rb +0 -13
- data/lib/recurly/subscription/add_ons.rb +0 -77
- data/lib/recurly/subscription.rb +0 -330
- data/lib/recurly/subscription_add_on.rb +0 -50
- data/lib/recurly/tax_detail.rb +0 -14
- data/lib/recurly/tax_type.rb +0 -12
- data/lib/recurly/transaction/errors.rb +0 -115
- data/lib/recurly/transaction.rb +0 -129
- data/lib/recurly/usage.rb +0 -28
- data/lib/recurly/webhook/account_notification.rb +0 -10
- data/lib/recurly/webhook/billing_info_updated_notification.rb +0 -6
- data/lib/recurly/webhook/canceled_account_notification.rb +0 -6
- data/lib/recurly/webhook/canceled_subscription_notification.rb +0 -6
- data/lib/recurly/webhook/closed_credit_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/closed_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/credit_payment_notification.rb +0 -12
- data/lib/recurly/webhook/dunning_notification.rb +0 -14
- data/lib/recurly/webhook/expired_subscription_notification.rb +0 -6
- data/lib/recurly/webhook/failed_charge_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/failed_payment_notification.rb +0 -6
- data/lib/recurly/webhook/gift_card_notification.rb +0 -8
- data/lib/recurly/webhook/invoice_notification.rb +0 -12
- data/lib/recurly/webhook/low_balance_gift_card_notification.rb +0 -6
- data/lib/recurly/webhook/new_account_notification.rb +0 -6
- data/lib/recurly/webhook/new_charge_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/new_credit_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/new_credit_payment_notification.rb +0 -6
- data/lib/recurly/webhook/new_dunning_event_notification.rb +0 -6
- data/lib/recurly/webhook/new_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/new_subscription_notification.rb +0 -6
- data/lib/recurly/webhook/new_usage_notification.rb +0 -8
- data/lib/recurly/webhook/notification.rb +0 -18
- data/lib/recurly/webhook/paid_charge_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/past_due_charge_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/past_due_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/processing_charge_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/processing_credit_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/processing_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/processing_payment_notification.rb +0 -6
- data/lib/recurly/webhook/purchased_gift_card_notification.rb +0 -7
- data/lib/recurly/webhook/reactivated_account_notification.rb +0 -6
- data/lib/recurly/webhook/redeemed_gift_card_notification.rb +0 -7
- data/lib/recurly/webhook/renewed_subscription_notification.rb +0 -6
- data/lib/recurly/webhook/reopened_charge_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/reopened_credit_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/scheduled_payment_notification.rb +0 -6
- data/lib/recurly/webhook/subscription_notification.rb +0 -12
- data/lib/recurly/webhook/successful_payment_notification.rb +0 -6
- data/lib/recurly/webhook/successful_refund_notification.rb +0 -6
- data/lib/recurly/webhook/transaction_authorized_notification.rb +0 -6
- data/lib/recurly/webhook/transaction_notification.rb +0 -12
- data/lib/recurly/webhook/transaction_status_updated_notification.rb +0 -6
- data/lib/recurly/webhook/updated_account_notification.rb +0 -6
- data/lib/recurly/webhook/updated_balance_gift_card_notification.rb +0 -7
- data/lib/recurly/webhook/updated_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/updated_subscription_notification.rb +0 -6
- data/lib/recurly/webhook/void_payment_notification.rb +0 -6
- data/lib/recurly/webhook/voided_credit_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/voided_credit_payment_notification.rb +0 -6
- data/lib/recurly/webhook.rb +0 -91
- data/lib/recurly/xml/nokogiri.rb +0 -60
- data/lib/recurly/xml/rexml.rb +0 -52
- data/lib/recurly/xml.rb +0 -122
@@ -0,0 +1,136 @@
|
|
1
|
+
module Recurly
|
2
|
+
class Pager
|
3
|
+
attr_accessor :client
|
4
|
+
attr_reader :data, :next
|
5
|
+
|
6
|
+
def initialize(client:, path:, options: {})
|
7
|
+
@client = client
|
8
|
+
@path = path
|
9
|
+
@options = options
|
10
|
+
rewind!
|
11
|
+
end
|
12
|
+
|
13
|
+
# Performs a request with the pager `limit` set to 1 and only returns the first
|
14
|
+
# result in the response.
|
15
|
+
def first
|
16
|
+
# Modify the @next url to set the :limit to 1
|
17
|
+
original_next = @next
|
18
|
+
@next = @path
|
19
|
+
fetch_next!(@options.merge(params: @options.fetch(:params, {}).merge({ limit: 1 })))
|
20
|
+
# Restore the @next url to the original
|
21
|
+
@next = original_next
|
22
|
+
@data.first
|
23
|
+
end
|
24
|
+
|
25
|
+
# Makes a HEAD request to the API to determine how many total records exist.
|
26
|
+
def count
|
27
|
+
resource = @client.send(:head, self.next, **@options)
|
28
|
+
resource.get_response.total_records
|
29
|
+
end
|
30
|
+
|
31
|
+
# Enumerates each "page" from the server.
|
32
|
+
# This method yields a given block with the array of items
|
33
|
+
# in the page `data` and the page number the pagination is on
|
34
|
+
# `page_num` which is 0-indexed.
|
35
|
+
#
|
36
|
+
# @example
|
37
|
+
# plans = client.list_plans()
|
38
|
+
# plans.each_page do |data|
|
39
|
+
# data.each do |plan|
|
40
|
+
# puts "Plan: #{plan.id}"
|
41
|
+
# end
|
42
|
+
# end
|
43
|
+
# @example
|
44
|
+
# plans = client.list_plans()
|
45
|
+
# plans.each_page.each_with_index do |data, page_num|
|
46
|
+
# puts "Page Number: #{page_num}"
|
47
|
+
# data.each do |plan|
|
48
|
+
# puts "Plan: #{plan.id}"
|
49
|
+
# end
|
50
|
+
# end
|
51
|
+
def each_page(&block)
|
52
|
+
if block_given?
|
53
|
+
page_enumerator.each(&block)
|
54
|
+
else
|
55
|
+
page_enumerator
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
# Enumerates each item on the server. Each item is yielded to the
|
60
|
+
# block presenting the effect of a continuous stream of items.
|
61
|
+
# In reality, the pager is fetching blocks of data (pages) under the hood.
|
62
|
+
# This method yields a given block with the next item to process.
|
63
|
+
#
|
64
|
+
# @example
|
65
|
+
# plans = client.list_plans()
|
66
|
+
# plans.each do |plan|
|
67
|
+
# puts "Plan: #{plan.id}"
|
68
|
+
# end
|
69
|
+
# @example
|
70
|
+
# plans = client.list_plans()
|
71
|
+
# plans.each.each_with_index do |plan, idx|
|
72
|
+
# puts "Plan #{idx}: #{plan.id}"
|
73
|
+
# end
|
74
|
+
def each(&block)
|
75
|
+
if block_given?
|
76
|
+
item_enumerator.each(&block)
|
77
|
+
else
|
78
|
+
item_enumerator
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def has_more?
|
83
|
+
!!@has_more
|
84
|
+
end
|
85
|
+
|
86
|
+
def requires_client?
|
87
|
+
true
|
88
|
+
end
|
89
|
+
|
90
|
+
private
|
91
|
+
|
92
|
+
def item_enumerator
|
93
|
+
Enumerator.new do |yielder|
|
94
|
+
page_enumerator.each do |data|
|
95
|
+
data.each do |item|
|
96
|
+
yielder << item
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
def page_enumerator
|
103
|
+
Enumerator.new do |yielder|
|
104
|
+
loop do
|
105
|
+
# Pass in @options when requesting the first page (@data.empty?)
|
106
|
+
next_options = @data.empty? ? @options : @options.merge(params: {})
|
107
|
+
fetch_next!(next_options)
|
108
|
+
yielder << data
|
109
|
+
unless has_more?
|
110
|
+
rewind!
|
111
|
+
break
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
def fetch_next!(options)
|
118
|
+
path = extract_path(self.next)
|
119
|
+
page = @client.send(:get, path, **options)
|
120
|
+
@data = page.data.map { |d| JSONParser.from_json(d) }
|
121
|
+
@has_more = page.has_more
|
122
|
+
@next = page.next
|
123
|
+
end
|
124
|
+
|
125
|
+
def rewind!
|
126
|
+
@data = []
|
127
|
+
@next = @path
|
128
|
+
end
|
129
|
+
|
130
|
+
# Returns just the path and parameters so we can safely reuse the connection
|
131
|
+
def extract_path(uri_or_path)
|
132
|
+
uri = URI(uri_or_path)
|
133
|
+
uri.kind_of?(URI::HTTP) ? uri.request_uri : uri_or_path
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Recurly
|
2
|
+
# This class represents a request to Recurly.
|
3
|
+
# It's used to validate requests data as well as
|
4
|
+
# cast and serialize the request data to JSON.
|
5
|
+
class Request
|
6
|
+
extend Schema::SchemaFactory
|
7
|
+
extend Schema::RequestCaster
|
8
|
+
extend Schema::ResourceCaster
|
9
|
+
include Schema::SchemaValidator
|
10
|
+
|
11
|
+
attr_reader :attributes
|
12
|
+
|
13
|
+
def ==(other_resource)
|
14
|
+
self.attributes == other_resource.attributes
|
15
|
+
end
|
16
|
+
|
17
|
+
def to_s
|
18
|
+
self.inspect
|
19
|
+
end
|
20
|
+
|
21
|
+
protected
|
22
|
+
|
23
|
+
def initialize(attributes = {})
|
24
|
+
@attributes = self.class.cast_request(attributes)
|
25
|
+
end
|
26
|
+
|
27
|
+
def schema
|
28
|
+
self.class.schema
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# This file is automatically created by Recurly's OpenAPI generation process
|
2
|
+
# and thus any edits you make by hand will be lost. If you wish to make a
|
3
|
+
# change to this file, please create a Github issue explaining the changes you
|
4
|
+
# need and we will usher them to the appropriate places.
|
5
|
+
module Recurly
|
6
|
+
module Requests
|
7
|
+
class AccountAcquisitionCost < Request
|
8
|
+
|
9
|
+
# @!attribute amount
|
10
|
+
# @return [Float] The amount of the corresponding currency used to acquire the account.
|
11
|
+
define_attribute :amount, Float
|
12
|
+
|
13
|
+
# @!attribute currency
|
14
|
+
# @return [String] 3-letter ISO 4217 currency code.
|
15
|
+
define_attribute :currency, String
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# This file is automatically created by Recurly's OpenAPI generation process
|
2
|
+
# and thus any edits you make by hand will be lost. If you wish to make a
|
3
|
+
# change to this file, please create a Github issue explaining the changes you
|
4
|
+
# need and we will usher them to the appropriate places.
|
5
|
+
module Recurly
|
6
|
+
module Requests
|
7
|
+
class AccountAcquisitionUpdate < Request
|
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
|
16
|
+
|
17
|
+
# @!attribute cost
|
18
|
+
# @return [AccountAcquisitionCost] Account balance
|
19
|
+
define_attribute :cost, :AccountAcquisitionCost
|
20
|
+
|
21
|
+
# @!attribute subchannel
|
22
|
+
# @return [String] An arbitrary subchannel string representing a distinction/subcategory within a broader channel.
|
23
|
+
define_attribute :subchannel, String
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
# This file is automatically created by Recurly's OpenAPI generation process
|
2
|
+
# and thus any edits you make by hand will be lost. If you wish to make a
|
3
|
+
# change to this file, please create a Github issue explaining the changes you
|
4
|
+
# need and we will usher them to the appropriate places.
|
5
|
+
module Recurly
|
6
|
+
module Requests
|
7
|
+
class AccountCreate < Request
|
8
|
+
|
9
|
+
# @!attribute acquisition
|
10
|
+
# @return [AccountAcquisitionUpdate]
|
11
|
+
define_attribute :acquisition, :AccountAcquisitionUpdate
|
12
|
+
|
13
|
+
# @!attribute address
|
14
|
+
# @return [Address]
|
15
|
+
define_attribute :address, :Address
|
16
|
+
|
17
|
+
# @!attribute bill_to
|
18
|
+
# @return [String] An enumerable describing the billing behavior of the account, specifically whether the account is self-paying or will rely on the parent account to pay.
|
19
|
+
define_attribute :bill_to, String
|
20
|
+
|
21
|
+
# @!attribute billing_info
|
22
|
+
# @return [BillingInfoCreate]
|
23
|
+
define_attribute :billing_info, :BillingInfoCreate
|
24
|
+
|
25
|
+
# @!attribute cc_emails
|
26
|
+
# @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.
|
27
|
+
define_attribute :cc_emails, String
|
28
|
+
|
29
|
+
# @!attribute code
|
30
|
+
# @return [String] The unique identifier of the account. This cannot be changed once the account is created.
|
31
|
+
define_attribute :code, String
|
32
|
+
|
33
|
+
# @!attribute company
|
34
|
+
# @return [String]
|
35
|
+
define_attribute :company, String
|
36
|
+
|
37
|
+
# @!attribute custom_fields
|
38
|
+
# @return [Array[CustomField]] The custom fields will only be altered when they are included in a request. Sending an empty array will not remove any existing values. To remove a field send the name with a null or empty value.
|
39
|
+
define_attribute :custom_fields, Array, { :item_type => :CustomField }
|
40
|
+
|
41
|
+
# @!attribute dunning_campaign_id
|
42
|
+
# @return [String] Unique ID to identify a dunning campaign. Used to specify if a non-default dunning campaign should be assigned to this account. For sites without multiple dunning campaigns enabled, the default dunning campaign will always be used.
|
43
|
+
define_attribute :dunning_campaign_id, String
|
44
|
+
|
45
|
+
# @!attribute email
|
46
|
+
# @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.
|
47
|
+
define_attribute :email, String
|
48
|
+
|
49
|
+
# @!attribute exemption_certificate
|
50
|
+
# @return [String] The tax exemption certificate number for the account. If the merchant has an integration for the Vertex tax provider, this optional value will be sent in any tax calculation requests for the account.
|
51
|
+
define_attribute :exemption_certificate, String
|
52
|
+
|
53
|
+
# @!attribute first_name
|
54
|
+
# @return [String]
|
55
|
+
define_attribute :first_name, String
|
56
|
+
|
57
|
+
# @!attribute invoice_template_id
|
58
|
+
# @return [String] Unique ID to identify an invoice template. Available when the site is on a Pro or Enterprise plan. Used to specify which invoice template, if any, should be used to generate invoices for the account.
|
59
|
+
define_attribute :invoice_template_id, String
|
60
|
+
|
61
|
+
# @!attribute last_name
|
62
|
+
# @return [String]
|
63
|
+
define_attribute :last_name, String
|
64
|
+
|
65
|
+
# @!attribute parent_account_code
|
66
|
+
# @return [String] The account code of the parent account to be associated with this account. Passing an empty value removes any existing parent association from this account. If both `parent_account_code` and `parent_account_id` are passed, the non-blank value in `parent_account_id` will be used. Only one level of parent child relationship is allowed. You cannot assign a parent account that itself has a parent account.
|
67
|
+
define_attribute :parent_account_code, String
|
68
|
+
|
69
|
+
# @!attribute parent_account_id
|
70
|
+
# @return [String] The UUID of the parent account to be associated with this account. Passing an empty value removes any existing parent association from this account. If both `parent_account_code` and `parent_account_id` are passed, the non-blank value in `parent_account_id` will be used. Only one level of parent child relationship is allowed. You cannot assign a parent account that itself has a parent account.
|
71
|
+
define_attribute :parent_account_id, String
|
72
|
+
|
73
|
+
# @!attribute preferred_locale
|
74
|
+
# @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.
|
75
|
+
define_attribute :preferred_locale, String
|
76
|
+
|
77
|
+
# @!attribute shipping_addresses
|
78
|
+
# @return [Array[ShippingAddressCreate]]
|
79
|
+
define_attribute :shipping_addresses, Array, { :item_type => :ShippingAddressCreate }
|
80
|
+
|
81
|
+
# @!attribute tax_exempt
|
82
|
+
# @return [Boolean] The tax status of the account. `true` exempts tax on the account, `false` applies tax on the account.
|
83
|
+
define_attribute :tax_exempt, :Boolean
|
84
|
+
|
85
|
+
# @!attribute transaction_type
|
86
|
+
# @return [String] An optional type designation for the payment gateway transaction created by this request. Supports 'moto' value, which is the acronym for mail order and telephone transactions.
|
87
|
+
define_attribute :transaction_type, String
|
88
|
+
|
89
|
+
# @!attribute username
|
90
|
+
# @return [String] A secondary value for the account.
|
91
|
+
define_attribute :username, String
|
92
|
+
|
93
|
+
# @!attribute vat_number
|
94
|
+
# @return [String] The VAT number of the account (to avoid having the VAT applied). This is only used for manually collected invoices.
|
95
|
+
define_attribute :vat_number, String
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
# This file is automatically created by Recurly's OpenAPI generation process
|
2
|
+
# and thus any edits you make by hand will be lost. If you wish to make a
|
3
|
+
# change to this file, please create a Github issue explaining the changes you
|
4
|
+
# need and we will usher them to the appropriate places.
|
5
|
+
module Recurly
|
6
|
+
module Requests
|
7
|
+
class AccountPurchase < Request
|
8
|
+
|
9
|
+
# @!attribute acquisition
|
10
|
+
# @return [AccountAcquisitionUpdate]
|
11
|
+
define_attribute :acquisition, :AccountAcquisitionUpdate
|
12
|
+
|
13
|
+
# @!attribute address
|
14
|
+
# @return [Address]
|
15
|
+
define_attribute :address, :Address
|
16
|
+
|
17
|
+
# @!attribute bill_to
|
18
|
+
# @return [String] An enumerable describing the billing behavior of the account, specifically whether the account is self-paying or will rely on the parent account to pay.
|
19
|
+
define_attribute :bill_to, String
|
20
|
+
|
21
|
+
# @!attribute billing_info
|
22
|
+
# @return [BillingInfoCreate]
|
23
|
+
define_attribute :billing_info, :BillingInfoCreate
|
24
|
+
|
25
|
+
# @!attribute cc_emails
|
26
|
+
# @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.
|
27
|
+
define_attribute :cc_emails, String
|
28
|
+
|
29
|
+
# @!attribute code
|
30
|
+
# @return [String] The unique identifier of the account. This cannot be changed once the account is created.
|
31
|
+
define_attribute :code, String
|
32
|
+
|
33
|
+
# @!attribute company
|
34
|
+
# @return [String]
|
35
|
+
define_attribute :company, String
|
36
|
+
|
37
|
+
# @!attribute custom_fields
|
38
|
+
# @return [Array[CustomField]] The custom fields will only be altered when they are included in a request. Sending an empty array will not remove any existing values. To remove a field send the name with a null or empty value.
|
39
|
+
define_attribute :custom_fields, Array, { :item_type => :CustomField }
|
40
|
+
|
41
|
+
# @!attribute dunning_campaign_id
|
42
|
+
# @return [String] Unique ID to identify a dunning campaign. Used to specify if a non-default dunning campaign should be assigned to this account. For sites without multiple dunning campaigns enabled, the default dunning campaign will always be used.
|
43
|
+
define_attribute :dunning_campaign_id, String
|
44
|
+
|
45
|
+
# @!attribute email
|
46
|
+
# @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.
|
47
|
+
define_attribute :email, String
|
48
|
+
|
49
|
+
# @!attribute exemption_certificate
|
50
|
+
# @return [String] The tax exemption certificate number for the account. If the merchant has an integration for the Vertex tax provider, this optional value will be sent in any tax calculation requests for the account.
|
51
|
+
define_attribute :exemption_certificate, String
|
52
|
+
|
53
|
+
# @!attribute first_name
|
54
|
+
# @return [String]
|
55
|
+
define_attribute :first_name, String
|
56
|
+
|
57
|
+
# @!attribute id
|
58
|
+
# @return [String] Optional, but if present allows an existing account to be used and updated as part of the purchase.
|
59
|
+
define_attribute :id, String
|
60
|
+
|
61
|
+
# @!attribute invoice_template_id
|
62
|
+
# @return [String] Unique ID to identify an invoice template. Available when the site is on a Pro or Enterprise plan. Used to specify which invoice template, if any, should be used to generate invoices for the account.
|
63
|
+
define_attribute :invoice_template_id, String
|
64
|
+
|
65
|
+
# @!attribute last_name
|
66
|
+
# @return [String]
|
67
|
+
define_attribute :last_name, String
|
68
|
+
|
69
|
+
# @!attribute parent_account_code
|
70
|
+
# @return [String] The account code of the parent account to be associated with this account. Passing an empty value removes any existing parent association from this account. If both `parent_account_code` and `parent_account_id` are passed, the non-blank value in `parent_account_id` will be used. Only one level of parent child relationship is allowed. You cannot assign a parent account that itself has a parent account.
|
71
|
+
define_attribute :parent_account_code, String
|
72
|
+
|
73
|
+
# @!attribute parent_account_id
|
74
|
+
# @return [String] The UUID of the parent account to be associated with this account. Passing an empty value removes any existing parent association from this account. If both `parent_account_code` and `parent_account_id` are passed, the non-blank value in `parent_account_id` will be used. Only one level of parent child relationship is allowed. You cannot assign a parent account that itself has a parent account.
|
75
|
+
define_attribute :parent_account_id, String
|
76
|
+
|
77
|
+
# @!attribute preferred_locale
|
78
|
+
# @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.
|
79
|
+
define_attribute :preferred_locale, String
|
80
|
+
|
81
|
+
# @!attribute tax_exempt
|
82
|
+
# @return [Boolean] The tax status of the account. `true` exempts tax on the account, `false` applies tax on the account.
|
83
|
+
define_attribute :tax_exempt, :Boolean
|
84
|
+
|
85
|
+
# @!attribute transaction_type
|
86
|
+
# @return [String] An optional type designation for the payment gateway transaction created by this request. Supports 'moto' value, which is the acronym for mail order and telephone transactions.
|
87
|
+
define_attribute :transaction_type, String
|
88
|
+
|
89
|
+
# @!attribute username
|
90
|
+
# @return [String] A secondary value for the account.
|
91
|
+
define_attribute :username, String
|
92
|
+
|
93
|
+
# @!attribute vat_number
|
94
|
+
# @return [String] The VAT number of the account (to avoid having the VAT applied). This is only used for manually collected invoices.
|
95
|
+
define_attribute :vat_number, String
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
# This file is automatically created by Recurly's OpenAPI generation process
|
2
|
+
# and thus any edits you make by hand will be lost. If you wish to make a
|
3
|
+
# change to this file, please create a Github issue explaining the changes you
|
4
|
+
# need and we will usher them to the appropriate places.
|
5
|
+
module Recurly
|
6
|
+
module Requests
|
7
|
+
class AccountUpdate < Request
|
8
|
+
|
9
|
+
# @!attribute address
|
10
|
+
# @return [Address]
|
11
|
+
define_attribute :address, :Address
|
12
|
+
|
13
|
+
# @!attribute bill_to
|
14
|
+
# @return [String] An enumerable describing the billing behavior of the account, specifically whether the account is self-paying or will rely on the parent account to pay.
|
15
|
+
define_attribute :bill_to, String
|
16
|
+
|
17
|
+
# @!attribute billing_info
|
18
|
+
# @return [BillingInfoCreate]
|
19
|
+
define_attribute :billing_info, :BillingInfoCreate
|
20
|
+
|
21
|
+
# @!attribute cc_emails
|
22
|
+
# @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.
|
23
|
+
define_attribute :cc_emails, String
|
24
|
+
|
25
|
+
# @!attribute company
|
26
|
+
# @return [String]
|
27
|
+
define_attribute :company, String
|
28
|
+
|
29
|
+
# @!attribute custom_fields
|
30
|
+
# @return [Array[CustomField]] The custom fields will only be altered when they are included in a request. Sending an empty array will not remove any existing values. To remove a field send the name with a null or empty value.
|
31
|
+
define_attribute :custom_fields, Array, { :item_type => :CustomField }
|
32
|
+
|
33
|
+
# @!attribute dunning_campaign_id
|
34
|
+
# @return [String] Unique ID to identify a dunning campaign. Used to specify if a non-default dunning campaign should be assigned to this account. For sites without multiple dunning campaigns enabled, the default dunning campaign will always be used.
|
35
|
+
define_attribute :dunning_campaign_id, String
|
36
|
+
|
37
|
+
# @!attribute email
|
38
|
+
# @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.
|
39
|
+
define_attribute :email, String
|
40
|
+
|
41
|
+
# @!attribute exemption_certificate
|
42
|
+
# @return [String] The tax exemption certificate number for the account. If the merchant has an integration for the Vertex tax provider, this optional value will be sent in any tax calculation requests for the account.
|
43
|
+
define_attribute :exemption_certificate, String
|
44
|
+
|
45
|
+
# @!attribute first_name
|
46
|
+
# @return [String]
|
47
|
+
define_attribute :first_name, String
|
48
|
+
|
49
|
+
# @!attribute invoice_template_id
|
50
|
+
# @return [String] Unique ID to identify an invoice template. Available when the site is on a Pro or Enterprise plan. Used to specify which invoice template, if any, should be used to generate invoices for the account.
|
51
|
+
define_attribute :invoice_template_id, String
|
52
|
+
|
53
|
+
# @!attribute last_name
|
54
|
+
# @return [String]
|
55
|
+
define_attribute :last_name, String
|
56
|
+
|
57
|
+
# @!attribute parent_account_code
|
58
|
+
# @return [String] The account code of the parent account to be associated with this account. Passing an empty value removes any existing parent association from this account. If both `parent_account_code` and `parent_account_id` are passed, the non-blank value in `parent_account_id` will be used. Only one level of parent child relationship is allowed. You cannot assign a parent account that itself has a parent account.
|
59
|
+
define_attribute :parent_account_code, String
|
60
|
+
|
61
|
+
# @!attribute parent_account_id
|
62
|
+
# @return [String] The UUID of the parent account to be associated with this account. Passing an empty value removes any existing parent association from this account. If both `parent_account_code` and `parent_account_id` are passed, the non-blank value in `parent_account_id` will be used. Only one level of parent child relationship is allowed. You cannot assign a parent account that itself has a parent account.
|
63
|
+
define_attribute :parent_account_id, String
|
64
|
+
|
65
|
+
# @!attribute preferred_locale
|
66
|
+
# @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.
|
67
|
+
define_attribute :preferred_locale, String
|
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 transaction_type
|
74
|
+
# @return [String] An optional type designation for the payment gateway transaction created by this request. Supports 'moto' value, which is the acronym for mail order and telephone transactions.
|
75
|
+
define_attribute :transaction_type, String
|
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,102 @@
|
|
1
|
+
# This file is automatically created by Recurly's OpenAPI generation process
|
2
|
+
# and thus any edits you make by hand will be lost. If you wish to make a
|
3
|
+
# change to this file, please create a Github issue explaining the changes you
|
4
|
+
# need and we will usher them to the appropriate places.
|
5
|
+
module Recurly
|
6
|
+
module Requests
|
7
|
+
class AddOnCreate < Request
|
8
|
+
|
9
|
+
# @!attribute accounting_code
|
10
|
+
# @return [String] Accounting code for invoice line items for this add-on. If no value is provided, it defaults to add-on's code. If `item_code`/`item_id` is part of the request then `accounting_code` must be absent.
|
11
|
+
define_attribute :accounting_code, String
|
12
|
+
|
13
|
+
# @!attribute add_on_type
|
14
|
+
# @return [String] Whether the add-on type is fixed, or usage-based.
|
15
|
+
define_attribute :add_on_type, String
|
16
|
+
|
17
|
+
# @!attribute avalara_service_type
|
18
|
+
# @return [Integer] Used by Avalara for Communications taxes. The transaction type in combination with the service type describe how the add-on is taxed. Refer to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types) for more available t/s types. If an `Item` is associated to the `AddOn`, then the `avalara_service_type` must be absent.
|
19
|
+
define_attribute :avalara_service_type, Integer
|
20
|
+
|
21
|
+
# @!attribute avalara_transaction_type
|
22
|
+
# @return [Integer] Used by Avalara for Communications taxes. The transaction type in combination with the service type describe how the add-on is taxed. Refer to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types) for more available t/s types. If an `Item` is associated to the `AddOn`, then the `avalara_transaction_type` must be absent.
|
23
|
+
define_attribute :avalara_transaction_type, Integer
|
24
|
+
|
25
|
+
# @!attribute code
|
26
|
+
# @return [String] The unique identifier for the add-on within its plan. If `item_code`/`item_id` is part of the request then `code` must be absent. If `item_code`/`item_id` is not present `code` is required.
|
27
|
+
define_attribute :code, String
|
28
|
+
|
29
|
+
# @!attribute currencies
|
30
|
+
# @return [Array[AddOnPricing]] * If `item_code`/`item_id` is part of the request and the item has a default currency then `currencies` is optional. If the item does not have a default currency, then `currencies` is required. If `item_code`/`item_id` is not present `currencies` is required. * If the add-on's `tier_type` is `tiered`, `volume`, or `stairstep`, then `currencies` must be absent. * Must be absent if `add_on_type` is `usage` and `usage_type` is `percentage`.
|
31
|
+
define_attribute :currencies, Array, { :item_type => :AddOnPricing }
|
32
|
+
|
33
|
+
# @!attribute default_quantity
|
34
|
+
# @return [Integer] Default quantity for the hosted pages.
|
35
|
+
define_attribute :default_quantity, Integer
|
36
|
+
|
37
|
+
# @!attribute display_quantity
|
38
|
+
# @return [Boolean] Determines if the quantity field is displayed on the hosted pages for the add-on.
|
39
|
+
define_attribute :display_quantity, :Boolean
|
40
|
+
|
41
|
+
# @!attribute item_code
|
42
|
+
# @return [String] Unique code to identify an item. Available when the `Credit Invoices` feature are enabled. If `item_id` and `item_code` are both present, `item_id` will be used.
|
43
|
+
define_attribute :item_code, String
|
44
|
+
|
45
|
+
# @!attribute item_id
|
46
|
+
# @return [String] System-generated unique identifier for an item. Available when the `Credit Invoices` feature is enabled. If `item_id` and `item_code` are both present, `item_id` will be used.
|
47
|
+
define_attribute :item_id, String
|
48
|
+
|
49
|
+
# @!attribute measured_unit_id
|
50
|
+
# @return [String] System-generated unique identifier for a measured unit to be associated with the add-on. Either `measured_unit_id` or `measured_unit_name` are required when `add_on_type` is `usage`. If `measured_unit_id` and `measured_unit_name` are both present, `measured_unit_id` will be used.
|
51
|
+
define_attribute :measured_unit_id, String
|
52
|
+
|
53
|
+
# @!attribute measured_unit_name
|
54
|
+
# @return [String] Name of a measured unit to be associated with the add-on. Either `measured_unit_id` or `measured_unit_name` are required when `add_on_type` is `usage`. If `measured_unit_id` and `measured_unit_name` are both present, `measured_unit_id` will be used.
|
55
|
+
define_attribute :measured_unit_name, String
|
56
|
+
|
57
|
+
# @!attribute name
|
58
|
+
# @return [String] Describes your add-on and will appear in subscribers' invoices. If `item_code`/`item_id` is part of the request then `name` must be absent. If `item_code`/`item_id` is not present `name` is required.
|
59
|
+
define_attribute :name, String
|
60
|
+
|
61
|
+
# @!attribute optional
|
62
|
+
# @return [Boolean] Whether the add-on is optional for the customer to include in their purchase on the hosted payment page. If false, the add-on will be included when a subscription is created through the Recurly UI. However, the add-on will not be included when a subscription is created through the API.
|
63
|
+
define_attribute :optional, :Boolean
|
64
|
+
|
65
|
+
# @!attribute percentage_tiers
|
66
|
+
# @return [Array[PercentageTiersByCurrency]] Array of objects which must have at least one set of tiers per currency and the currency code. The tier_type must be `volume` or `tiered`, if not, it must be absent. There must be one tier without an `ending_amount` value which represents the final tier.
|
67
|
+
define_attribute :percentage_tiers, Array, { :item_type => :PercentageTiersByCurrency }
|
68
|
+
|
69
|
+
# @!attribute plan_id
|
70
|
+
# @return [String] Plan ID
|
71
|
+
define_attribute :plan_id, String
|
72
|
+
|
73
|
+
# @!attribute revenue_schedule_type
|
74
|
+
# @return [String] When this add-on is invoiced, the line item will use this revenue schedule. If `item_code`/`item_id` is part of the request then `revenue_schedule_type` must be absent in the request as the value will be set from the item.
|
75
|
+
define_attribute :revenue_schedule_type, String
|
76
|
+
|
77
|
+
# @!attribute tax_code
|
78
|
+
# @return [String] Optional field used by Avalara, Vertex, and Recurly's EU VAT tax feature to determine taxation rules. If you have your own AvaTax or Vertex account configured, use their tax codes to assign specific tax rules. If you are using Recurly's EU VAT feature, you can use values of `unknown`, `physical`, or `digital`. If `item_code`/`item_id` is part of the request then `tax_code` must be absent.
|
79
|
+
define_attribute :tax_code, String
|
80
|
+
|
81
|
+
# @!attribute tier_type
|
82
|
+
# @return [String] The pricing model for the add-on. For more information, [click here](https://docs.recurly.com/docs/billing-models#section-quantity-based). See our [Guide](https://developers.recurly.com/guides/item-addon-guide.html) for an overview of how to configure quantity-based pricing models.
|
83
|
+
define_attribute :tier_type, String
|
84
|
+
|
85
|
+
# @!attribute tiers
|
86
|
+
# @return [Array[Tier]] If the tier_type is `flat`, then `tiers` must be absent. The `tiers` object must include one to many tiers with `ending_quantity` and `unit_amount` for the desired `currencies`. There must be one tier without an `ending_quantity` value which represents the final tier.
|
87
|
+
define_attribute :tiers, Array, { :item_type => :Tier }
|
88
|
+
|
89
|
+
# @!attribute usage_percentage
|
90
|
+
# @return [Float] The percentage taken of the monetary amount of usage tracked. This can be up to 4 decimal places. A value between 0.0 and 100.0. Required if `add_on_type` is usage, `tier_type` is `flat` and `usage_type` is percentage. Must be omitted otherwise.
|
91
|
+
define_attribute :usage_percentage, Float
|
92
|
+
|
93
|
+
# @!attribute usage_timeframe
|
94
|
+
# @return [String] The time at which usage totals are reset for billing purposes. Allows for `tiered` add-ons to accumulate usage over the course of multiple billing periods.
|
95
|
+
define_attribute :usage_timeframe, String
|
96
|
+
|
97
|
+
# @!attribute usage_type
|
98
|
+
# @return [String] Type of usage, required if `add_on_type` is `usage`. See our [Guide](https://developers.recurly.com/guides/usage-based-billing-guide.html) for an overview of how to configure usage add-ons.
|
99
|
+
define_attribute :usage_type, String
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# This file is automatically created by Recurly's OpenAPI generation process
|
2
|
+
# and thus any edits you make by hand will be lost. If you wish to make a
|
3
|
+
# change to this file, please create a Github issue explaining the changes you
|
4
|
+
# need and we will usher them to the appropriate places.
|
5
|
+
module Recurly
|
6
|
+
module Requests
|
7
|
+
class AddOnPricing < Request
|
8
|
+
|
9
|
+
# @!attribute currency
|
10
|
+
# @return [String] 3-letter ISO 4217 currency code.
|
11
|
+
define_attribute :currency, String
|
12
|
+
|
13
|
+
# @!attribute tax_inclusive
|
14
|
+
# @return [Boolean] This field is deprecated. Please do not use it.
|
15
|
+
define_attribute :tax_inclusive, :Boolean
|
16
|
+
|
17
|
+
# @!attribute unit_amount
|
18
|
+
# @return [Float] Allows up to 2 decimal places. Required unless `unit_amount_decimal` is provided.
|
19
|
+
define_attribute :unit_amount, Float
|
20
|
+
|
21
|
+
# @!attribute unit_amount_decimal
|
22
|
+
# @return [String] Allows up to 9 decimal places. Only supported when `add_on_type` = `usage`. If `unit_amount_decimal` is provided, `unit_amount` cannot be provided.
|
23
|
+
define_attribute :unit_amount_decimal, String
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|