metronome-sdk 3.5.0 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +53 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/client.rb +15 -1
  5. data/lib/metronome_sdk/internal/transport/base_client.rb +2 -0
  6. data/lib/metronome_sdk/internal/type/enum.rb +0 -25
  7. data/lib/metronome_sdk/models/commit.rb +27 -1
  8. data/lib/metronome_sdk/models/contract.rb +140 -1
  9. data/lib/metronome_sdk/models/contract_v2.rb +530 -6
  10. data/lib/metronome_sdk/models/contract_without_amendments.rb +142 -1
  11. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +105 -2
  12. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +103 -2
  13. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +33 -1
  14. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +33 -1
  15. data/lib/metronome_sdk/models/v1/alert_create_params.rb +1 -0
  16. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +29 -177
  17. data/lib/metronome_sdk/models/v1/contract_create_params.rb +147 -180
  18. data/lib/metronome_sdk/models/v1/contract_create_response.rb +1134 -3
  19. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_params.rb +119 -0
  20. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_response.rb +315 -0
  21. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +31 -1
  22. data/lib/metronome_sdk/models/v1/contracts/product_update_params.rb +31 -1
  23. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +1 -0
  24. data/lib/metronome_sdk/models/v1/customers/invoice.rb +8 -1
  25. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +29 -1
  26. data/lib/metronome_sdk/models/v1/package_create_params.rb +115 -18
  27. data/lib/metronome_sdk/models/v1/package_list_response.rb +110 -1
  28. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +114 -1
  29. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +303 -5
  30. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +3862 -3
  31. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +507 -6
  32. data/lib/metronome_sdk/resources/v1/contracts/products.rb +6 -2
  33. data/lib/metronome_sdk/resources/v1/contracts.rb +72 -3
  34. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +5 -1
  35. data/lib/metronome_sdk/resources/v1/packages.rb +6 -7
  36. data/lib/metronome_sdk/resources/v1.rb +0 -4
  37. data/lib/metronome_sdk/resources/v2/contracts.rb +5 -1
  38. data/lib/metronome_sdk/version.rb +1 -1
  39. data/lib/metronome_sdk.rb +2 -8
  40. data/rbi/metronome_sdk/models/commit.rbi +48 -0
  41. data/rbi/metronome_sdk/models/contract.rbi +354 -0
  42. data/rbi/metronome_sdk/models/contract_v2.rbi +1172 -4
  43. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +368 -0
  44. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +289 -6
  45. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +283 -6
  46. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +78 -3
  47. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -3
  48. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +5 -0
  49. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +54 -396
  50. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +370 -398
  51. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +2448 -4
  52. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +179 -0
  53. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_response.rbi +714 -0
  54. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +74 -0
  55. data/rbi/metronome_sdk/models/v1/contracts/product_update_params.rbi +74 -0
  56. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +5 -0
  57. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +9 -0
  58. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +75 -0
  59. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +310 -56
  60. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +307 -0
  61. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +307 -0
  62. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +734 -11
  63. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +8612 -4
  64. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1355 -219
  65. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +18 -0
  66. data/rbi/metronome_sdk/resources/v1/contracts.rbi +88 -3
  67. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +7 -0
  68. data/rbi/metronome_sdk/resources/v1/packages.rbi +8 -7
  69. data/rbi/metronome_sdk/resources/v1.rbi +0 -3
  70. data/rbi/metronome_sdk/resources/v2/contracts.rbi +10 -0
  71. data/sig/metronome_sdk/models/commit.rbs +19 -0
  72. data/sig/metronome_sdk/models/contract.rbs +151 -0
  73. data/sig/metronome_sdk/models/contract_v2.rbs +494 -6
  74. data/sig/metronome_sdk/models/contract_without_amendments.rbs +151 -0
  75. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +116 -6
  76. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +116 -6
  77. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +31 -3
  78. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +31 -3
  79. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +3 -1
  80. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +19 -137
  81. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +134 -137
  82. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +1045 -4
  83. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +96 -0
  84. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_response.rbs +299 -0
  85. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +20 -0
  86. data/sig/metronome_sdk/models/v1/contracts/product_update_params.rbs +20 -0
  87. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +3 -1
  88. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +7 -0
  89. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +29 -1
  90. data/sig/metronome_sdk/models/v1/package_create_params.rbs +115 -20
  91. data/sig/metronome_sdk/models/v1/package_list_response.rbs +115 -0
  92. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +115 -0
  93. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +283 -9
  94. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +3792 -4
  95. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +461 -15
  96. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +2 -0
  97. data/sig/metronome_sdk/resources/v1/contracts.rbs +16 -0
  98. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +2 -0
  99. data/sig/metronome_sdk/resources/v1/packages.rbs +1 -1
  100. data/sig/metronome_sdk/resources/v1.rbs +0 -2
  101. data/sig/metronome_sdk/resources/v2/contracts.rbs +2 -0
  102. metadata +8 -26
  103. data/lib/metronome_sdk/models/v1/payment.rb +0 -196
  104. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +0 -28
  105. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +0 -18
  106. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +0 -28
  107. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +0 -18
  108. data/lib/metronome_sdk/models/v1/payment_list_params.rb +0 -53
  109. data/lib/metronome_sdk/models/v1/payment_status.rb +0 -19
  110. data/lib/metronome_sdk/resources/v1/payments.rb +0 -102
  111. data/rbi/metronome_sdk/models/v1/payment.rbi +0 -403
  112. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +0 -48
  113. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +0 -35
  114. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +0 -48
  115. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +0 -35
  116. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +0 -91
  117. data/rbi/metronome_sdk/models/v1/payment_status.rbi +0 -33
  118. data/rbi/metronome_sdk/resources/v1/payments.rbi +0 -72
  119. data/sig/metronome_sdk/models/v1/payment.rbs +0 -243
  120. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +0 -30
  121. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +0 -15
  122. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +0 -30
  123. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +0 -15
  124. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +0 -56
  125. data/sig/metronome_sdk/models/v1/payment_status.rbs +0 -19
  126. data/sig/metronome_sdk/resources/v1/payments.rbs +0 -30
@@ -1,14 +1,1055 @@
1
1
  module MetronomeSDK
2
2
  module Models
3
3
  module V1
4
- type contract_create_response = { data: MetronomeSDK::ID }
4
+ type contract_create_response =
5
+ { data: MetronomeSDK::Models::V1::ContractCreateResponse::Data }
5
6
 
6
7
  class ContractCreateResponse < MetronomeSDK::Internal::Type::BaseModel
7
- attr_accessor data: MetronomeSDK::ID
8
+ attr_accessor data: MetronomeSDK::Models::V1::ContractCreateResponse::Data
8
9
 
9
- def initialize: (data: MetronomeSDK::ID) -> void
10
+ def initialize: (
11
+ data: MetronomeSDK::Models::V1::ContractCreateResponse::Data
12
+ ) -> void
10
13
 
11
- def to_hash: -> { data: MetronomeSDK::ID }
14
+ def to_hash: -> {
15
+ data: MetronomeSDK::Models::V1::ContractCreateResponse::Data
16
+ }
17
+
18
+ type data =
19
+ {
20
+ id: String,
21
+ contract: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract
22
+ }
23
+
24
+ class Data < MetronomeSDK::Internal::Type::BaseModel
25
+ attr_accessor id: String
26
+
27
+ attr_reader contract: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract?
28
+
29
+ def contract=: (
30
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract
31
+ ) -> MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract
32
+
33
+ def initialize: (
34
+ id: String,
35
+ ?contract: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract
36
+ ) -> void
37
+
38
+ def to_hash: -> {
39
+ id: String,
40
+ contract: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract
41
+ }
42
+
43
+ type contract =
44
+ {
45
+ id: String,
46
+ commits: ::Array[MetronomeSDK::Commit],
47
+ created_at: Time,
48
+ created_by: String,
49
+ customer_id: String,
50
+ overrides: ::Array[MetronomeSDK::Override],
51
+ scheduled_charges: ::Array[MetronomeSDK::ScheduledCharge],
52
+ starting_at: Time,
53
+ transitions: ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::Transition],
54
+ usage_filter: ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::UsageFilter],
55
+ usage_statement_schedule: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::UsageStatementSchedule,
56
+ credits: ::Array[MetronomeSDK::Credit],
57
+ custom_fields: ::Hash[Symbol, String],
58
+ customer_billing_provider_configuration: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration,
59
+ ending_before: Time,
60
+ has_more: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::HasMore,
61
+ hierarchy_configuration: MetronomeSDK::Models::hierarchy_configuration,
62
+ multiplier_override_prioritization: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::multiplier_override_prioritization,
63
+ name: String,
64
+ net_payment_terms_days: Float,
65
+ package_id: String,
66
+ prepaid_balance_threshold_configuration: MetronomeSDK::PrepaidBalanceThresholdConfiguration,
67
+ rate_card_id: String,
68
+ recurring_commits: ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit],
69
+ recurring_credits: ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit],
70
+ scheduled_charges_on_usage_invoices: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::scheduled_charges_on_usage_invoices,
71
+ spend_threshold_configuration: MetronomeSDK::SpendThresholdConfiguration,
72
+ subscriptions: ::Array[MetronomeSDK::Subscription],
73
+ uniqueness_key: String
74
+ }
75
+
76
+ class Contract < MetronomeSDK::Internal::Type::BaseModel
77
+ attr_accessor id: String
78
+
79
+ attr_accessor commits: ::Array[MetronomeSDK::Commit]
80
+
81
+ attr_accessor created_at: Time
82
+
83
+ attr_accessor created_by: String
84
+
85
+ attr_accessor customer_id: String
86
+
87
+ attr_accessor overrides: ::Array[MetronomeSDK::Override]
88
+
89
+ attr_accessor scheduled_charges: ::Array[MetronomeSDK::ScheduledCharge]
90
+
91
+ attr_accessor starting_at: Time
92
+
93
+ attr_accessor transitions: ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::Transition]
94
+
95
+ attr_accessor usage_filter: ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::UsageFilter]
96
+
97
+ attr_accessor usage_statement_schedule: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::UsageStatementSchedule
98
+
99
+ attr_reader credits: ::Array[MetronomeSDK::Credit]?
100
+
101
+ def credits=: (
102
+ ::Array[MetronomeSDK::Credit]
103
+ ) -> ::Array[MetronomeSDK::Credit]
104
+
105
+ attr_reader custom_fields: ::Hash[Symbol, String]?
106
+
107
+ def custom_fields=: (
108
+ ::Hash[Symbol, String]
109
+ ) -> ::Hash[Symbol, String]
110
+
111
+ attr_reader customer_billing_provider_configuration: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration?
112
+
113
+ def customer_billing_provider_configuration=: (
114
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration
115
+ ) -> MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration
116
+
117
+ attr_reader ending_before: Time?
118
+
119
+ def ending_before=: (Time) -> Time
120
+
121
+ attr_reader has_more: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::HasMore?
122
+
123
+ def has_more=: (
124
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::HasMore
125
+ ) -> MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::HasMore
126
+
127
+ attr_reader hierarchy_configuration: MetronomeSDK::Models::hierarchy_configuration?
128
+
129
+ def hierarchy_configuration=: (
130
+ MetronomeSDK::Models::hierarchy_configuration
131
+ ) -> MetronomeSDK::Models::hierarchy_configuration
132
+
133
+ attr_reader multiplier_override_prioritization: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::multiplier_override_prioritization?
134
+
135
+ def multiplier_override_prioritization=: (
136
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::multiplier_override_prioritization
137
+ ) -> MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::multiplier_override_prioritization
138
+
139
+ attr_reader name: String?
140
+
141
+ def name=: (String) -> String
142
+
143
+ attr_reader net_payment_terms_days: Float?
144
+
145
+ def net_payment_terms_days=: (Float) -> Float
146
+
147
+ attr_reader package_id: String?
148
+
149
+ def package_id=: (String) -> String
150
+
151
+ attr_reader prepaid_balance_threshold_configuration: MetronomeSDK::PrepaidBalanceThresholdConfiguration?
152
+
153
+ def prepaid_balance_threshold_configuration=: (
154
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration
155
+ ) -> MetronomeSDK::PrepaidBalanceThresholdConfiguration
156
+
157
+ attr_reader rate_card_id: String?
158
+
159
+ def rate_card_id=: (String) -> String
160
+
161
+ attr_reader recurring_commits: ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit]?
162
+
163
+ def recurring_commits=: (
164
+ ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit]
165
+ ) -> ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit]
166
+
167
+ attr_reader recurring_credits: ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit]?
168
+
169
+ def recurring_credits=: (
170
+ ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit]
171
+ ) -> ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit]
172
+
173
+ attr_reader scheduled_charges_on_usage_invoices: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::scheduled_charges_on_usage_invoices?
174
+
175
+ def scheduled_charges_on_usage_invoices=: (
176
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::scheduled_charges_on_usage_invoices
177
+ ) -> MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::scheduled_charges_on_usage_invoices
178
+
179
+ attr_reader spend_threshold_configuration: MetronomeSDK::SpendThresholdConfiguration?
180
+
181
+ def spend_threshold_configuration=: (
182
+ MetronomeSDK::SpendThresholdConfiguration
183
+ ) -> MetronomeSDK::SpendThresholdConfiguration
184
+
185
+ attr_reader subscriptions: ::Array[MetronomeSDK::Subscription]?
186
+
187
+ def subscriptions=: (
188
+ ::Array[MetronomeSDK::Subscription]
189
+ ) -> ::Array[MetronomeSDK::Subscription]
190
+
191
+ attr_reader uniqueness_key: String?
192
+
193
+ def uniqueness_key=: (String) -> String
194
+
195
+ def initialize: (
196
+ id: String,
197
+ commits: ::Array[MetronomeSDK::Commit],
198
+ created_at: Time,
199
+ created_by: String,
200
+ customer_id: String,
201
+ overrides: ::Array[MetronomeSDK::Override],
202
+ scheduled_charges: ::Array[MetronomeSDK::ScheduledCharge],
203
+ starting_at: Time,
204
+ transitions: ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::Transition],
205
+ usage_filter: ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::UsageFilter],
206
+ usage_statement_schedule: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::UsageStatementSchedule,
207
+ ?credits: ::Array[MetronomeSDK::Credit],
208
+ ?custom_fields: ::Hash[Symbol, String],
209
+ ?customer_billing_provider_configuration: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration,
210
+ ?ending_before: Time,
211
+ ?has_more: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::HasMore,
212
+ ?hierarchy_configuration: MetronomeSDK::Models::hierarchy_configuration,
213
+ ?multiplier_override_prioritization: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::multiplier_override_prioritization,
214
+ ?name: String,
215
+ ?net_payment_terms_days: Float,
216
+ ?package_id: String,
217
+ ?prepaid_balance_threshold_configuration: MetronomeSDK::PrepaidBalanceThresholdConfiguration,
218
+ ?rate_card_id: String,
219
+ ?recurring_commits: ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit],
220
+ ?recurring_credits: ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit],
221
+ ?scheduled_charges_on_usage_invoices: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::scheduled_charges_on_usage_invoices,
222
+ ?spend_threshold_configuration: MetronomeSDK::SpendThresholdConfiguration,
223
+ ?subscriptions: ::Array[MetronomeSDK::Subscription],
224
+ ?uniqueness_key: String
225
+ ) -> void
226
+
227
+ def to_hash: -> {
228
+ id: String,
229
+ commits: ::Array[MetronomeSDK::Commit],
230
+ created_at: Time,
231
+ created_by: String,
232
+ customer_id: String,
233
+ overrides: ::Array[MetronomeSDK::Override],
234
+ scheduled_charges: ::Array[MetronomeSDK::ScheduledCharge],
235
+ starting_at: Time,
236
+ transitions: ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::Transition],
237
+ usage_filter: ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::UsageFilter],
238
+ usage_statement_schedule: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::UsageStatementSchedule,
239
+ credits: ::Array[MetronomeSDK::Credit],
240
+ custom_fields: ::Hash[Symbol, String],
241
+ customer_billing_provider_configuration: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration,
242
+ ending_before: Time,
243
+ has_more: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::HasMore,
244
+ hierarchy_configuration: MetronomeSDK::Models::hierarchy_configuration,
245
+ multiplier_override_prioritization: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::multiplier_override_prioritization,
246
+ name: String,
247
+ net_payment_terms_days: Float,
248
+ package_id: String,
249
+ prepaid_balance_threshold_configuration: MetronomeSDK::PrepaidBalanceThresholdConfiguration,
250
+ rate_card_id: String,
251
+ recurring_commits: ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit],
252
+ recurring_credits: ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit],
253
+ scheduled_charges_on_usage_invoices: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::scheduled_charges_on_usage_invoices,
254
+ spend_threshold_configuration: MetronomeSDK::SpendThresholdConfiguration,
255
+ subscriptions: ::Array[MetronomeSDK::Subscription],
256
+ uniqueness_key: String
257
+ }
258
+
259
+ type transition =
260
+ {
261
+ from_contract_id: String,
262
+ to_contract_id: String,
263
+ type: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::Transition::type_
264
+ }
265
+
266
+ class Transition < MetronomeSDK::Internal::Type::BaseModel
267
+ attr_accessor from_contract_id: String
268
+
269
+ attr_accessor to_contract_id: String
270
+
271
+ attr_accessor type: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::Transition::type_
272
+
273
+ def initialize: (
274
+ from_contract_id: String,
275
+ to_contract_id: String,
276
+ type: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::Transition::type_
277
+ ) -> void
278
+
279
+ def to_hash: -> {
280
+ from_contract_id: String,
281
+ to_contract_id: String,
282
+ type: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::Transition::type_
283
+ }
284
+
285
+ type type_ = :SUPERSEDE | :RENEWAL
286
+
287
+ module Type
288
+ extend MetronomeSDK::Internal::Type::Enum
289
+
290
+ SUPERSEDE: :SUPERSEDE
291
+ RENEWAL: :RENEWAL
292
+
293
+ def self?.values: -> ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::Transition::type_]
294
+ end
295
+ end
296
+
297
+ type usage_filter =
298
+ {
299
+ group_key: String,
300
+ group_values: ::Array[String],
301
+ starting_at: Time,
302
+ ending_before: Time
303
+ }
304
+
305
+ class UsageFilter < MetronomeSDK::Internal::Type::BaseModel
306
+ attr_accessor group_key: String
307
+
308
+ attr_accessor group_values: ::Array[String]
309
+
310
+ attr_accessor starting_at: Time
311
+
312
+ attr_reader ending_before: Time?
313
+
314
+ def ending_before=: (Time) -> Time
315
+
316
+ def initialize: (
317
+ group_key: String,
318
+ group_values: ::Array[String],
319
+ starting_at: Time,
320
+ ?ending_before: Time
321
+ ) -> void
322
+
323
+ def to_hash: -> {
324
+ group_key: String,
325
+ group_values: ::Array[String],
326
+ starting_at: Time,
327
+ ending_before: Time
328
+ }
329
+ end
330
+
331
+ type usage_statement_schedule =
332
+ {
333
+ billing_anchor_date: Time,
334
+ frequency: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::UsageStatementSchedule::frequency
335
+ }
336
+
337
+ class UsageStatementSchedule < MetronomeSDK::Internal::Type::BaseModel
338
+ attr_accessor billing_anchor_date: Time
339
+
340
+ attr_accessor frequency: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::UsageStatementSchedule::frequency
341
+
342
+ def initialize: (
343
+ billing_anchor_date: Time,
344
+ frequency: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::UsageStatementSchedule::frequency
345
+ ) -> void
346
+
347
+ def to_hash: -> {
348
+ billing_anchor_date: Time,
349
+ frequency: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::UsageStatementSchedule::frequency
350
+ }
351
+
352
+ type frequency = :MONTHLY | :QUARTERLY | :ANNUAL | :WEEKLY
353
+
354
+ module Frequency
355
+ extend MetronomeSDK::Internal::Type::Enum
356
+
357
+ MONTHLY: :MONTHLY
358
+ QUARTERLY: :QUARTERLY
359
+ ANNUAL: :ANNUAL
360
+ WEEKLY: :WEEKLY
361
+
362
+ def self?.values: -> ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::UsageStatementSchedule::frequency]
363
+ end
364
+ end
365
+
366
+ type customer_billing_provider_configuration =
367
+ {
368
+ id: String,
369
+ billing_provider: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::billing_provider,
370
+ delivery_method: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::delivery_method
371
+ }
372
+
373
+ class CustomerBillingProviderConfiguration < MetronomeSDK::Internal::Type::BaseModel
374
+ attr_reader id: String?
375
+
376
+ def id=: (String) -> String
377
+
378
+ attr_reader billing_provider: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::billing_provider?
379
+
380
+ def billing_provider=: (
381
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::billing_provider
382
+ ) -> MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::billing_provider
383
+
384
+ attr_reader delivery_method: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::delivery_method?
385
+
386
+ def delivery_method=: (
387
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::delivery_method
388
+ ) -> MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::delivery_method
389
+
390
+ def initialize: (
391
+ ?id: String,
392
+ ?billing_provider: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::billing_provider,
393
+ ?delivery_method: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::delivery_method
394
+ ) -> void
395
+
396
+ def to_hash: -> {
397
+ id: String,
398
+ billing_provider: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::billing_provider,
399
+ delivery_method: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::delivery_method
400
+ }
401
+
402
+ type billing_provider =
403
+ :aws_marketplace
404
+ | :stripe
405
+ | :netsuite
406
+ | :custom
407
+ | :azure_marketplace
408
+ | :quickbooks_online
409
+ | :workday
410
+ | :gcp_marketplace
411
+ | :metronome
412
+
413
+ module BillingProvider
414
+ extend MetronomeSDK::Internal::Type::Enum
415
+
416
+ AWS_MARKETPLACE: :aws_marketplace
417
+ STRIPE: :stripe
418
+ NETSUITE: :netsuite
419
+ CUSTOM: :custom
420
+ AZURE_MARKETPLACE: :azure_marketplace
421
+ QUICKBOOKS_ONLINE: :quickbooks_online
422
+ WORKDAY: :workday
423
+ GCP_MARKETPLACE: :gcp_marketplace
424
+ METRONOME: :metronome
425
+
426
+ def self?.values: -> ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::billing_provider]
427
+ end
428
+
429
+ type delivery_method =
430
+ :direct_to_billing_provider | :aws_sqs | :tackle | :aws_sns
431
+
432
+ module DeliveryMethod
433
+ extend MetronomeSDK::Internal::Type::Enum
434
+
435
+ DIRECT_TO_BILLING_PROVIDER: :direct_to_billing_provider
436
+ AWS_SQS: :aws_sqs
437
+ TACKLE: :tackle
438
+ AWS_SNS: :aws_sns
439
+
440
+ def self?.values: -> ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::delivery_method]
441
+ end
442
+ end
443
+
444
+ type has_more = { commits: bool, credits: bool }
445
+
446
+ class HasMore < MetronomeSDK::Internal::Type::BaseModel
447
+ attr_accessor commits: bool
448
+
449
+ attr_accessor credits: bool
450
+
451
+ def initialize: (commits: bool, credits: bool) -> void
452
+
453
+ def to_hash: -> { commits: bool, credits: bool }
454
+ end
455
+
456
+ type multiplier_override_prioritization =
457
+ :LOWEST_MULTIPLIER | :EXPLICIT
458
+
459
+ module MultiplierOverridePrioritization
460
+ extend MetronomeSDK::Internal::Type::Enum
461
+
462
+ LOWEST_MULTIPLIER: :LOWEST_MULTIPLIER
463
+ EXPLICIT: :EXPLICIT
464
+
465
+ def self?.values: -> ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::multiplier_override_prioritization]
466
+ end
467
+
468
+ type recurring_commit =
469
+ {
470
+ id: String,
471
+ access_amount: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::AccessAmount,
472
+ commit_duration: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::CommitDuration,
473
+ priority: Float,
474
+ product: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::Product,
475
+ rate_type: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::rate_type,
476
+ starting_at: Time,
477
+ applicable_product_ids: ::Array[String],
478
+ applicable_product_tags: ::Array[String],
479
+ contract: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::Contract,
480
+ description: String,
481
+ ending_before: Time,
482
+ hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
483
+ invoice_amount: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::InvoiceAmount,
484
+ name: String,
485
+ netsuite_sales_order_id: String,
486
+ proration: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::proration,
487
+ recurrence_frequency: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::recurrence_frequency,
488
+ rollover_fraction: Float,
489
+ specifiers: ::Array[MetronomeSDK::CommitSpecifier],
490
+ subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
491
+ }
492
+
493
+ class RecurringCommit < MetronomeSDK::Internal::Type::BaseModel
494
+ attr_accessor id: String
495
+
496
+ attr_accessor access_amount: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::AccessAmount
497
+
498
+ attr_accessor commit_duration: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::CommitDuration
499
+
500
+ attr_accessor priority: Float
501
+
502
+ attr_accessor product: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::Product
503
+
504
+ attr_accessor rate_type: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::rate_type
505
+
506
+ attr_accessor starting_at: Time
507
+
508
+ attr_reader applicable_product_ids: ::Array[String]?
509
+
510
+ def applicable_product_ids=: (::Array[String]) -> ::Array[String]
511
+
512
+ attr_reader applicable_product_tags: ::Array[String]?
513
+
514
+ def applicable_product_tags=: (::Array[String]) -> ::Array[String]
515
+
516
+ attr_reader contract: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::Contract?
517
+
518
+ def contract=: (
519
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::Contract
520
+ ) -> MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::Contract
521
+
522
+ attr_reader description: String?
523
+
524
+ def description=: (String) -> String
525
+
526
+ attr_reader ending_before: Time?
527
+
528
+ def ending_before=: (Time) -> Time
529
+
530
+ attr_reader hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration?
531
+
532
+ def hierarchy_configuration=: (
533
+ MetronomeSDK::CommitHierarchyConfiguration
534
+ ) -> MetronomeSDK::CommitHierarchyConfiguration
535
+
536
+ attr_reader invoice_amount: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::InvoiceAmount?
537
+
538
+ def invoice_amount=: (
539
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::InvoiceAmount
540
+ ) -> MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::InvoiceAmount
541
+
542
+ attr_reader name: String?
543
+
544
+ def name=: (String) -> String
545
+
546
+ attr_reader netsuite_sales_order_id: String?
547
+
548
+ def netsuite_sales_order_id=: (String) -> String
549
+
550
+ attr_reader proration: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::proration?
551
+
552
+ def proration=: (
553
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::proration
554
+ ) -> MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::proration
555
+
556
+ attr_reader recurrence_frequency: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::recurrence_frequency?
557
+
558
+ def recurrence_frequency=: (
559
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::recurrence_frequency
560
+ ) -> MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::recurrence_frequency
561
+
562
+ attr_reader rollover_fraction: Float?
563
+
564
+ def rollover_fraction=: (Float) -> Float
565
+
566
+ attr_reader specifiers: ::Array[MetronomeSDK::CommitSpecifier]?
567
+
568
+ def specifiers=: (
569
+ ::Array[MetronomeSDK::CommitSpecifier]
570
+ ) -> ::Array[MetronomeSDK::CommitSpecifier]
571
+
572
+ attr_reader subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig?
573
+
574
+ def subscription_config=: (
575
+ MetronomeSDK::RecurringCommitSubscriptionConfig
576
+ ) -> MetronomeSDK::RecurringCommitSubscriptionConfig
577
+
578
+ def initialize: (
579
+ id: String,
580
+ access_amount: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::AccessAmount,
581
+ commit_duration: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::CommitDuration,
582
+ priority: Float,
583
+ product: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::Product,
584
+ rate_type: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::rate_type,
585
+ starting_at: Time,
586
+ ?applicable_product_ids: ::Array[String],
587
+ ?applicable_product_tags: ::Array[String],
588
+ ?contract: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::Contract,
589
+ ?description: String,
590
+ ?ending_before: Time,
591
+ ?hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
592
+ ?invoice_amount: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::InvoiceAmount,
593
+ ?name: String,
594
+ ?netsuite_sales_order_id: String,
595
+ ?proration: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::proration,
596
+ ?recurrence_frequency: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::recurrence_frequency,
597
+ ?rollover_fraction: Float,
598
+ ?specifiers: ::Array[MetronomeSDK::CommitSpecifier],
599
+ ?subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
600
+ ) -> void
601
+
602
+ def to_hash: -> {
603
+ id: String,
604
+ access_amount: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::AccessAmount,
605
+ commit_duration: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::CommitDuration,
606
+ priority: Float,
607
+ product: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::Product,
608
+ rate_type: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::rate_type,
609
+ starting_at: Time,
610
+ applicable_product_ids: ::Array[String],
611
+ applicable_product_tags: ::Array[String],
612
+ contract: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::Contract,
613
+ description: String,
614
+ ending_before: Time,
615
+ hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
616
+ invoice_amount: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::InvoiceAmount,
617
+ name: String,
618
+ netsuite_sales_order_id: String,
619
+ proration: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::proration,
620
+ recurrence_frequency: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::recurrence_frequency,
621
+ rollover_fraction: Float,
622
+ specifiers: ::Array[MetronomeSDK::CommitSpecifier],
623
+ subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
624
+ }
625
+
626
+ type access_amount =
627
+ { credit_type_id: String, unit_price: Float, quantity: Float }
628
+
629
+ class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
630
+ attr_accessor credit_type_id: String
631
+
632
+ attr_accessor unit_price: Float
633
+
634
+ attr_reader quantity: Float?
635
+
636
+ def quantity=: (Float) -> Float
637
+
638
+ def initialize: (
639
+ credit_type_id: String,
640
+ unit_price: Float,
641
+ ?quantity: Float
642
+ ) -> void
643
+
644
+ def to_hash: -> {
645
+ credit_type_id: String,
646
+ unit_price: Float,
647
+ quantity: Float
648
+ }
649
+ end
650
+
651
+ type commit_duration =
652
+ {
653
+ value: Float,
654
+ unit: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::CommitDuration::unit
655
+ }
656
+
657
+ class CommitDuration < MetronomeSDK::Internal::Type::BaseModel
658
+ attr_accessor value: Float
659
+
660
+ attr_reader unit: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::CommitDuration::unit?
661
+
662
+ def unit=: (
663
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::CommitDuration::unit
664
+ ) -> MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::CommitDuration::unit
665
+
666
+ def initialize: (
667
+ value: Float,
668
+ ?unit: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::CommitDuration::unit
669
+ ) -> void
670
+
671
+ def to_hash: -> {
672
+ value: Float,
673
+ unit: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::CommitDuration::unit
674
+ }
675
+
676
+ type unit = :PERIODS
677
+
678
+ module Unit
679
+ extend MetronomeSDK::Internal::Type::Enum
680
+
681
+ PERIODS: :PERIODS
682
+
683
+ def self?.values: -> ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::CommitDuration::unit]
684
+ end
685
+ end
686
+
687
+ type product = { id: String, name: String }
688
+
689
+ class Product < MetronomeSDK::Internal::Type::BaseModel
690
+ attr_accessor id: String
691
+
692
+ attr_accessor name: String
693
+
694
+ def initialize: (id: String, name: String) -> void
695
+
696
+ def to_hash: -> { id: String, name: String }
697
+ end
698
+
699
+ type rate_type = :COMMIT_RATE | :LIST_RATE
700
+
701
+ module RateType
702
+ extend MetronomeSDK::Internal::Type::Enum
703
+
704
+ COMMIT_RATE: :COMMIT_RATE
705
+ LIST_RATE: :LIST_RATE
706
+
707
+ def self?.values: -> ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::rate_type]
708
+ end
709
+
710
+ type contract = { id: String }
711
+
712
+ class Contract < MetronomeSDK::Internal::Type::BaseModel
713
+ attr_accessor id: String
714
+
715
+ def initialize: (id: String) -> void
716
+
717
+ def to_hash: -> { id: String }
718
+ end
719
+
720
+ type invoice_amount =
721
+ { credit_type_id: String, quantity: Float, unit_price: Float }
722
+
723
+ class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
724
+ attr_accessor credit_type_id: String
725
+
726
+ attr_accessor quantity: Float
727
+
728
+ attr_accessor unit_price: Float
729
+
730
+ def initialize: (
731
+ credit_type_id: String,
732
+ quantity: Float,
733
+ unit_price: Float
734
+ ) -> void
735
+
736
+ def to_hash: -> {
737
+ credit_type_id: String,
738
+ quantity: Float,
739
+ unit_price: Float
740
+ }
741
+ end
742
+
743
+ type proration = :NONE | :FIRST | :LAST | :FIRST_AND_LAST
744
+
745
+ module Proration
746
+ extend MetronomeSDK::Internal::Type::Enum
747
+
748
+ NONE: :NONE
749
+ FIRST: :FIRST
750
+ LAST: :LAST
751
+ FIRST_AND_LAST: :FIRST_AND_LAST
752
+
753
+ def self?.values: -> ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::proration]
754
+ end
755
+
756
+ type recurrence_frequency =
757
+ :MONTHLY | :QUARTERLY | :ANNUAL | :WEEKLY
758
+
759
+ module RecurrenceFrequency
760
+ extend MetronomeSDK::Internal::Type::Enum
761
+
762
+ MONTHLY: :MONTHLY
763
+ QUARTERLY: :QUARTERLY
764
+ ANNUAL: :ANNUAL
765
+ WEEKLY: :WEEKLY
766
+
767
+ def self?.values: -> ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::recurrence_frequency]
768
+ end
769
+ end
770
+
771
+ type recurring_credit =
772
+ {
773
+ id: String,
774
+ access_amount: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::AccessAmount,
775
+ commit_duration: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::CommitDuration,
776
+ priority: Float,
777
+ product: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::Product,
778
+ rate_type: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::rate_type,
779
+ starting_at: Time,
780
+ applicable_product_ids: ::Array[String],
781
+ applicable_product_tags: ::Array[String],
782
+ contract: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::Contract,
783
+ description: String,
784
+ ending_before: Time,
785
+ hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
786
+ name: String,
787
+ netsuite_sales_order_id: String,
788
+ proration: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::proration,
789
+ recurrence_frequency: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::recurrence_frequency,
790
+ rollover_fraction: Float,
791
+ specifiers: ::Array[MetronomeSDK::CommitSpecifier],
792
+ subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
793
+ }
794
+
795
+ class RecurringCredit < MetronomeSDK::Internal::Type::BaseModel
796
+ attr_accessor id: String
797
+
798
+ attr_accessor access_amount: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::AccessAmount
799
+
800
+ attr_accessor commit_duration: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::CommitDuration
801
+
802
+ attr_accessor priority: Float
803
+
804
+ attr_accessor product: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::Product
805
+
806
+ attr_accessor rate_type: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::rate_type
807
+
808
+ attr_accessor starting_at: Time
809
+
810
+ attr_reader applicable_product_ids: ::Array[String]?
811
+
812
+ def applicable_product_ids=: (::Array[String]) -> ::Array[String]
813
+
814
+ attr_reader applicable_product_tags: ::Array[String]?
815
+
816
+ def applicable_product_tags=: (::Array[String]) -> ::Array[String]
817
+
818
+ attr_reader contract: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::Contract?
819
+
820
+ def contract=: (
821
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::Contract
822
+ ) -> MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::Contract
823
+
824
+ attr_reader description: String?
825
+
826
+ def description=: (String) -> String
827
+
828
+ attr_reader ending_before: Time?
829
+
830
+ def ending_before=: (Time) -> Time
831
+
832
+ attr_reader hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration?
833
+
834
+ def hierarchy_configuration=: (
835
+ MetronomeSDK::CommitHierarchyConfiguration
836
+ ) -> MetronomeSDK::CommitHierarchyConfiguration
837
+
838
+ attr_reader name: String?
839
+
840
+ def name=: (String) -> String
841
+
842
+ attr_reader netsuite_sales_order_id: String?
843
+
844
+ def netsuite_sales_order_id=: (String) -> String
845
+
846
+ attr_reader proration: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::proration?
847
+
848
+ def proration=: (
849
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::proration
850
+ ) -> MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::proration
851
+
852
+ attr_reader recurrence_frequency: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::recurrence_frequency?
853
+
854
+ def recurrence_frequency=: (
855
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::recurrence_frequency
856
+ ) -> MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::recurrence_frequency
857
+
858
+ attr_reader rollover_fraction: Float?
859
+
860
+ def rollover_fraction=: (Float) -> Float
861
+
862
+ attr_reader specifiers: ::Array[MetronomeSDK::CommitSpecifier]?
863
+
864
+ def specifiers=: (
865
+ ::Array[MetronomeSDK::CommitSpecifier]
866
+ ) -> ::Array[MetronomeSDK::CommitSpecifier]
867
+
868
+ attr_reader subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig?
869
+
870
+ def subscription_config=: (
871
+ MetronomeSDK::RecurringCommitSubscriptionConfig
872
+ ) -> MetronomeSDK::RecurringCommitSubscriptionConfig
873
+
874
+ def initialize: (
875
+ id: String,
876
+ access_amount: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::AccessAmount,
877
+ commit_duration: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::CommitDuration,
878
+ priority: Float,
879
+ product: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::Product,
880
+ rate_type: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::rate_type,
881
+ starting_at: Time,
882
+ ?applicable_product_ids: ::Array[String],
883
+ ?applicable_product_tags: ::Array[String],
884
+ ?contract: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::Contract,
885
+ ?description: String,
886
+ ?ending_before: Time,
887
+ ?hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
888
+ ?name: String,
889
+ ?netsuite_sales_order_id: String,
890
+ ?proration: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::proration,
891
+ ?recurrence_frequency: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::recurrence_frequency,
892
+ ?rollover_fraction: Float,
893
+ ?specifiers: ::Array[MetronomeSDK::CommitSpecifier],
894
+ ?subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
895
+ ) -> void
896
+
897
+ def to_hash: -> {
898
+ id: String,
899
+ access_amount: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::AccessAmount,
900
+ commit_duration: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::CommitDuration,
901
+ priority: Float,
902
+ product: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::Product,
903
+ rate_type: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::rate_type,
904
+ starting_at: Time,
905
+ applicable_product_ids: ::Array[String],
906
+ applicable_product_tags: ::Array[String],
907
+ contract: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::Contract,
908
+ description: String,
909
+ ending_before: Time,
910
+ hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
911
+ name: String,
912
+ netsuite_sales_order_id: String,
913
+ proration: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::proration,
914
+ recurrence_frequency: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::recurrence_frequency,
915
+ rollover_fraction: Float,
916
+ specifiers: ::Array[MetronomeSDK::CommitSpecifier],
917
+ subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
918
+ }
919
+
920
+ type access_amount =
921
+ { credit_type_id: String, unit_price: Float, quantity: Float }
922
+
923
+ class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
924
+ attr_accessor credit_type_id: String
925
+
926
+ attr_accessor unit_price: Float
927
+
928
+ attr_reader quantity: Float?
929
+
930
+ def quantity=: (Float) -> Float
931
+
932
+ def initialize: (
933
+ credit_type_id: String,
934
+ unit_price: Float,
935
+ ?quantity: Float
936
+ ) -> void
937
+
938
+ def to_hash: -> {
939
+ credit_type_id: String,
940
+ unit_price: Float,
941
+ quantity: Float
942
+ }
943
+ end
944
+
945
+ type commit_duration =
946
+ {
947
+ value: Float,
948
+ unit: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::CommitDuration::unit
949
+ }
950
+
951
+ class CommitDuration < MetronomeSDK::Internal::Type::BaseModel
952
+ attr_accessor value: Float
953
+
954
+ attr_reader unit: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::CommitDuration::unit?
955
+
956
+ def unit=: (
957
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::CommitDuration::unit
958
+ ) -> MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::CommitDuration::unit
959
+
960
+ def initialize: (
961
+ value: Float,
962
+ ?unit: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::CommitDuration::unit
963
+ ) -> void
964
+
965
+ def to_hash: -> {
966
+ value: Float,
967
+ unit: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::CommitDuration::unit
968
+ }
969
+
970
+ type unit = :PERIODS
971
+
972
+ module Unit
973
+ extend MetronomeSDK::Internal::Type::Enum
974
+
975
+ PERIODS: :PERIODS
976
+
977
+ def self?.values: -> ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::CommitDuration::unit]
978
+ end
979
+ end
980
+
981
+ type product = { id: String, name: String }
982
+
983
+ class Product < MetronomeSDK::Internal::Type::BaseModel
984
+ attr_accessor id: String
985
+
986
+ attr_accessor name: String
987
+
988
+ def initialize: (id: String, name: String) -> void
989
+
990
+ def to_hash: -> { id: String, name: String }
991
+ end
992
+
993
+ type rate_type = :COMMIT_RATE | :LIST_RATE
994
+
995
+ module RateType
996
+ extend MetronomeSDK::Internal::Type::Enum
997
+
998
+ COMMIT_RATE: :COMMIT_RATE
999
+ LIST_RATE: :LIST_RATE
1000
+
1001
+ def self?.values: -> ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::rate_type]
1002
+ end
1003
+
1004
+ type contract = { id: String }
1005
+
1006
+ class Contract < MetronomeSDK::Internal::Type::BaseModel
1007
+ attr_accessor id: String
1008
+
1009
+ def initialize: (id: String) -> void
1010
+
1011
+ def to_hash: -> { id: String }
1012
+ end
1013
+
1014
+ type proration = :NONE | :FIRST | :LAST | :FIRST_AND_LAST
1015
+
1016
+ module Proration
1017
+ extend MetronomeSDK::Internal::Type::Enum
1018
+
1019
+ NONE: :NONE
1020
+ FIRST: :FIRST
1021
+ LAST: :LAST
1022
+ FIRST_AND_LAST: :FIRST_AND_LAST
1023
+
1024
+ def self?.values: -> ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::proration]
1025
+ end
1026
+
1027
+ type recurrence_frequency =
1028
+ :MONTHLY | :QUARTERLY | :ANNUAL | :WEEKLY
1029
+
1030
+ module RecurrenceFrequency
1031
+ extend MetronomeSDK::Internal::Type::Enum
1032
+
1033
+ MONTHLY: :MONTHLY
1034
+ QUARTERLY: :QUARTERLY
1035
+ ANNUAL: :ANNUAL
1036
+ WEEKLY: :WEEKLY
1037
+
1038
+ def self?.values: -> ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::recurrence_frequency]
1039
+ end
1040
+ end
1041
+
1042
+ type scheduled_charges_on_usage_invoices = :ALL
1043
+
1044
+ module ScheduledChargesOnUsageInvoices
1045
+ extend MetronomeSDK::Internal::Type::Enum
1046
+
1047
+ ALL: :ALL
1048
+
1049
+ def self?.values: -> ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::scheduled_charges_on_usage_invoices]
1050
+ end
1051
+ end
1052
+ end
12
1053
  end
13
1054
  end
14
1055
  end