metronome-sdk 2.0.0 → 2.2.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 (151) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +75 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +7 -1
  5. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +38 -26
  6. data/lib/metronome_sdk/internal/util.rb +7 -2
  7. data/lib/metronome_sdk/models/contract.rb +1 -0
  8. data/lib/metronome_sdk/models/contract_v2.rb +69 -23
  9. data/lib/metronome_sdk/models/hierarchy_configuration.rb +45 -21
  10. data/lib/metronome_sdk/models/subscription.rb +38 -1
  11. data/lib/metronome_sdk/models/v1/alert_create_params.rb +33 -1
  12. data/lib/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rb +10 -1
  13. data/lib/metronome_sdk/models/v1/contract_create_params.rb +195 -29
  14. data/lib/metronome_sdk/models/v1/contract_list_balances_params.rb +9 -1
  15. data/lib/metronome_sdk/models/v1/customer_create_params.rb +105 -3
  16. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +14 -10
  17. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rb +1 -0
  18. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb +1 -0
  19. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_response.rb +111 -0
  20. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +32 -1
  21. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +21 -2
  22. data/lib/metronome_sdk/models/v1/customers/billing_config_delete_params.rb +1 -0
  23. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rb +1 -0
  24. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +21 -2
  25. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +1 -1
  26. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +34 -1
  27. data/lib/metronome_sdk/models/v1/customers/invoice.rb +144 -4
  28. data/lib/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rb +8 -1
  29. data/lib/metronome_sdk/models/v1/payment.rb +7 -1
  30. data/lib/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rb +74 -0
  31. data/lib/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rb +12 -0
  32. data/lib/metronome_sdk/models/v1/settings/billing_provider_create_params.rb +74 -0
  33. data/lib/metronome_sdk/models/v1/settings/billing_provider_create_response.rb +31 -0
  34. data/lib/metronome_sdk/models/v1/settings/billing_provider_list_params.rb +26 -0
  35. data/lib/metronome_sdk/models/v1/settings/billing_provider_list_response.rb +105 -0
  36. data/lib/metronome_sdk/models/v1/usage_search_response.rb +6 -3
  37. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +17 -1
  38. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +17 -1
  39. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +300 -10
  40. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +177 -3
  41. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  42. data/lib/metronome_sdk/resources/v1/contracts.rb +10 -4
  43. data/lib/metronome_sdk/resources/v1/credit_grants.rb +10 -5
  44. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +3 -1
  45. data/lib/metronome_sdk/resources/v1/customers/billing_config.rb +12 -5
  46. data/lib/metronome_sdk/resources/v1/customers/commits.rb +2 -1
  47. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +2 -1
  48. data/lib/metronome_sdk/resources/v1/customers/plans.rb +8 -4
  49. data/lib/metronome_sdk/resources/v1/customers.rb +12 -8
  50. data/lib/metronome_sdk/resources/v1/plans.rb +8 -4
  51. data/lib/metronome_sdk/resources/v1/settings/billing_providers.rb +75 -0
  52. data/lib/metronome_sdk/resources/v1/settings.rb +57 -0
  53. data/lib/metronome_sdk/resources/v1.rb +4 -0
  54. data/lib/metronome_sdk/resources/v2/contracts.rb +10 -2
  55. data/lib/metronome_sdk/version.rb +1 -1
  56. data/lib/metronome_sdk.rb +11 -0
  57. data/manifest.yaml +2 -0
  58. data/rbi/metronome_sdk/internal/transport/base_client.rbi +5 -0
  59. data/rbi/metronome_sdk/internal/transport/pooled_net_requester.rbi +6 -2
  60. data/rbi/metronome_sdk/internal/type/base_model.rbi +8 -4
  61. data/rbi/metronome_sdk/models/contract.rbi +5 -0
  62. data/rbi/metronome_sdk/models/contract_v2.rbi +122 -33
  63. data/rbi/metronome_sdk/models/hierarchy_configuration.rbi +63 -27
  64. data/rbi/metronome_sdk/models/subscription.rbi +64 -3
  65. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +69 -0
  66. data/rbi/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbi +13 -0
  67. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +360 -33
  68. data/rbi/metronome_sdk/models/v1/contract_list_balances_params.rbi +11 -0
  69. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +215 -0
  70. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +18 -11
  71. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbi +5 -0
  72. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbi +5 -0
  73. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbi +281 -0
  74. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +67 -0
  75. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +29 -0
  76. data/rbi/metronome_sdk/models/v1/customers/billing_config_delete_params.rbi +5 -0
  77. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rbi +5 -0
  78. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +24 -0
  79. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +2 -2
  80. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +76 -0
  81. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +268 -0
  82. data/rbi/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbi +9 -0
  83. data/rbi/metronome_sdk/models/v1/payment.rbi +11 -3
  84. data/rbi/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbi +128 -0
  85. data/rbi/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rbi +25 -0
  86. data/rbi/metronome_sdk/models/v1/settings/billing_provider_create_params.rbi +162 -0
  87. data/rbi/metronome_sdk/models/v1/settings/billing_provider_create_response.rbi +75 -0
  88. data/rbi/metronome_sdk/models/v1/settings/billing_provider_list_params.rbi +50 -0
  89. data/rbi/metronome_sdk/models/v1/settings/billing_provider_list_response.rbi +245 -0
  90. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +11 -3
  91. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +22 -0
  92. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +22 -0
  93. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +630 -9
  94. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +367 -3
  95. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -0
  96. data/rbi/metronome_sdk/resources/v1/contracts.rbi +13 -1
  97. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +10 -5
  98. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +5 -0
  99. data/rbi/metronome_sdk/resources/v1/customers/billing_config.rbi +14 -4
  100. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +3 -2
  101. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +2 -1
  102. data/rbi/metronome_sdk/resources/v1/customers/plans.rbi +8 -4
  103. data/rbi/metronome_sdk/resources/v1/customers.rbi +19 -9
  104. data/rbi/metronome_sdk/resources/v1/plans.rbi +8 -4
  105. data/rbi/metronome_sdk/resources/v1/settings/billing_providers.rbi +63 -0
  106. data/rbi/metronome_sdk/resources/v1/settings.rbi +51 -0
  107. data/rbi/metronome_sdk/resources/v1.rbi +3 -0
  108. data/rbi/metronome_sdk/resources/v2/contracts.rbi +12 -0
  109. data/sig/metronome_sdk/internal/transport/base_client.rbs +2 -0
  110. data/sig/metronome_sdk/internal/transport/pooled_net_requester.rbs +4 -1
  111. data/sig/metronome_sdk/models/contract.rbs +2 -0
  112. data/sig/metronome_sdk/models/contract_v2.rbs +33 -6
  113. data/sig/metronome_sdk/models/subscription.rbs +22 -3
  114. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +28 -0
  115. data/sig/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbs +7 -0
  116. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +104 -0
  117. data/sig/metronome_sdk/models/v1/contract_list_balances_params.rbs +7 -0
  118. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +85 -0
  119. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbs +2 -0
  120. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbs +2 -0
  121. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbs +119 -0
  122. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +26 -1
  123. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +16 -0
  124. data/sig/metronome_sdk/models/v1/customers/billing_config_delete_params.rbs +2 -0
  125. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rbs +2 -0
  126. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +14 -0
  127. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +32 -0
  128. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +130 -0
  129. data/sig/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbs +7 -0
  130. data/sig/metronome_sdk/models/v1/payment.rbs +10 -3
  131. data/sig/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbs +61 -0
  132. data/sig/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rbs +13 -0
  133. data/sig/metronome_sdk/models/v1/settings/billing_provider_create_params.rbs +66 -0
  134. data/sig/metronome_sdk/models/v1/settings/billing_provider_create_response.rbs +34 -0
  135. data/sig/metronome_sdk/models/v1/settings/billing_provider_list_params.rbs +28 -0
  136. data/sig/metronome_sdk/models/v1/settings/billing_provider_list_response.rbs +102 -0
  137. data/sig/metronome_sdk/models/v1/usage_search_response.rbs +3 -1
  138. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +14 -0
  139. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +14 -0
  140. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +234 -3
  141. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +131 -3
  142. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  143. data/sig/metronome_sdk/resources/v1/contracts.rbs +3 -0
  144. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  145. data/sig/metronome_sdk/resources/v1/customers/billing_config.rbs +2 -0
  146. data/sig/metronome_sdk/resources/v1/customers.rbs +2 -1
  147. data/sig/metronome_sdk/resources/v1/settings/billing_providers.rbs +23 -0
  148. data/sig/metronome_sdk/resources/v1/settings.rbs +20 -0
  149. data/sig/metronome_sdk/resources/v1.rbs +2 -0
  150. data/sig/metronome_sdk/resources/v2/contracts.rbs +4 -0
  151. metadata +29 -2
@@ -110,7 +110,8 @@ module MetronomeSDK
110
110
  optional :aggregation_key, String
111
111
 
112
112
  # @!attribute aggregation_type
113
- # Specifies the type of aggregation performed on matching events.
113
+ # Specifies the type of aggregation performed on matching events. Includes
114
+ # "custom_sql" for events search endpoint responses.
114
115
  #
115
116
  # @return [Symbol, MetronomeSDK::Models::V1::UsageSearchResponseItem::MatchedBillableMetric::AggregationType, nil]
116
117
  optional :aggregation_type,
@@ -183,7 +184,7 @@ module MetronomeSDK
183
184
  #
184
185
  # @param aggregation_key [String] A key that specifies which property of the event is used to aggregate data. This
185
186
  #
186
- # @param aggregation_type [Symbol, MetronomeSDK::Models::V1::UsageSearchResponseItem::MatchedBillableMetric::AggregationType] Specifies the type of aggregation performed on matching events.
187
+ # @param aggregation_type [Symbol, MetronomeSDK::Models::V1::UsageSearchResponseItem::MatchedBillableMetric::AggregationType] Specifies the type of aggregation performed on matching events. Includes "custom
187
188
  #
188
189
  # @param archived_at [Time] RFC 3339 timestamp indicating when the billable metric was archived. If not prov
189
190
  #
@@ -201,7 +202,8 @@ module MetronomeSDK
201
202
  #
202
203
  # @param sql [String] The SQL query associated with the billable metric
203
204
 
204
- # Specifies the type of aggregation performed on matching events.
205
+ # Specifies the type of aggregation performed on matching events. Includes
206
+ # "custom_sql" for events search endpoint responses.
205
207
  #
206
208
  # @see MetronomeSDK::Models::V1::UsageSearchResponseItem::MatchedBillableMetric#aggregation_type
207
209
  module AggregationType
@@ -212,6 +214,7 @@ module MetronomeSDK
212
214
  MAX = :MAX
213
215
  SUM = :SUM
214
216
  UNIQUE = :UNIQUE
217
+ CUSTOM_SQL = :custom_sql
215
218
 
216
219
  # @!method self.values
217
220
  # @return [Array<Symbol>]
@@ -41,6 +41,12 @@ module MetronomeSDK
41
41
  # @return [Array<String>, nil]
42
42
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
43
43
 
44
+ # @!attribute description
45
+ # Updated description for the commit
46
+ #
47
+ # @return [String, nil]
48
+ optional :description, String
49
+
44
50
  # @!attribute hierarchy_configuration
45
51
  # Optional configuration for commit hierarchy access control
46
52
  #
@@ -58,6 +64,12 @@ module MetronomeSDK
58
64
  # @return [MetronomeSDK::Models::V2::ContractEditCommitParams::InvoiceSchedule, nil]
59
65
  optional :invoice_schedule, -> { MetronomeSDK::V2::ContractEditCommitParams::InvoiceSchedule }
60
66
 
67
+ # @!attribute name
68
+ # Updated name for the commit
69
+ #
70
+ # @return [String, nil]
71
+ optional :name, String
72
+
61
73
  # @!attribute priority
62
74
  # If multiple commits are applicable, the one with the lower priority will apply
63
75
  # first.
@@ -91,7 +103,7 @@ module MetronomeSDK
91
103
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifierInput] },
92
104
  nil?: true
93
105
 
94
- # @!method initialize(commit_id:, customer_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, hierarchy_configuration: nil, invoice_contract_id: nil, invoice_schedule: nil, priority: nil, product_id: nil, rate_type: nil, specifiers: nil, request_options: {})
106
+ # @!method initialize(commit_id:, customer_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, hierarchy_configuration: nil, invoice_contract_id: nil, invoice_schedule: nil, name: nil, priority: nil, product_id: nil, rate_type: nil, specifiers: nil, request_options: {})
95
107
  # Some parameter documentations has been truncated, see
96
108
  # {MetronomeSDK::Models::V2::ContractEditCommitParams} for more details.
97
109
  #
@@ -105,12 +117,16 @@ module MetronomeSDK
105
117
  #
106
118
  # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If applicable*product_ids, applicable_product*
107
119
  #
120
+ # @param description [String] Updated description for the commit
121
+ #
108
122
  # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for commit hierarchy access control
109
123
  #
110
124
  # @param invoice_contract_id [String] ID of contract to use for invoicing
111
125
  #
112
126
  # @param invoice_schedule [MetronomeSDK::Models::V2::ContractEditCommitParams::InvoiceSchedule]
113
127
  #
128
+ # @param name [String] Updated name for the commit
129
+ #
114
130
  # @param priority [Float, nil] If multiple commits are applicable, the one with the lower priority will apply f
115
131
  #
116
132
  # @param product_id [String]
@@ -39,12 +39,24 @@ module MetronomeSDK
39
39
  # @return [Array<String>, nil]
40
40
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
41
41
 
42
+ # @!attribute description
43
+ # Updated description for the credit
44
+ #
45
+ # @return [String, nil]
46
+ optional :description, String
47
+
42
48
  # @!attribute hierarchy_configuration
43
49
  # Optional configuration for credit hierarchy access control
44
50
  #
45
51
  # @return [MetronomeSDK::Models::CommitHierarchyConfiguration, nil]
46
52
  optional :hierarchy_configuration, -> { MetronomeSDK::CommitHierarchyConfiguration }
47
53
 
54
+ # @!attribute name
55
+ # Updated name for the credit
56
+ #
57
+ # @return [String, nil]
58
+ optional :name, String
59
+
48
60
  # @!attribute priority
49
61
  # If multiple commits are applicable, the one with the lower priority will apply
50
62
  # first.
@@ -78,7 +90,7 @@ module MetronomeSDK
78
90
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifierInput] },
79
91
  nil?: true
80
92
 
81
- # @!method initialize(credit_id:, customer_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, hierarchy_configuration: nil, priority: nil, product_id: nil, rate_type: nil, specifiers: nil, request_options: {})
93
+ # @!method initialize(credit_id:, customer_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, hierarchy_configuration: nil, name: nil, priority: nil, product_id: nil, rate_type: nil, specifiers: nil, request_options: {})
82
94
  # Some parameter documentations has been truncated, see
83
95
  # {MetronomeSDK::Models::V2::ContractEditCreditParams} for more details.
84
96
  #
@@ -92,8 +104,12 @@ module MetronomeSDK
92
104
  #
93
105
  # @param applicable_product_tags [Array<String>, nil] Which tags the credit applies to. If both applicable*product_ids and applicable*
94
106
  #
107
+ # @param description [String] Updated description for the credit
108
+ #
95
109
  # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for credit hierarchy access control
96
110
  #
111
+ # @param name [String] Updated name for the credit
112
+ #
97
113
  # @param priority [Float, nil] If multiple commits are applicable, the one with the lower priority will apply f
98
114
  #
99
115
  # @param product_id [String]
@@ -347,6 +347,7 @@ module MetronomeSDK
347
347
  QUICKBOOKS_ONLINE = :quickbooks_online
348
348
  WORKDAY = :workday
349
349
  GCP_MARKETPLACE = :gcp_marketplace
350
+ METRONOME = :metronome
350
351
 
351
352
  # @!method self.values
352
353
  # @return [Array<Symbol>]
@@ -2132,20 +2133,25 @@ module MetronomeSDK
2132
2133
  required :subscription_id, String
2133
2134
 
2134
2135
  # @!attribute allocation
2135
- # If set to POOLED, allocation added per seat is pooled across the account.
2136
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
2137
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
2136
2138
  #
2137
2139
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation, nil]
2138
2140
  optional :allocation,
2139
2141
  enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation }
2140
2142
 
2141
2143
  # @!method initialize(apply_seat_increase_config:, subscription_id:, allocation: nil)
2144
+ # Some parameter documentations has been truncated, see
2145
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig}
2146
+ # for more details.
2147
+ #
2142
2148
  # Attach a subscription to the recurring commit/credit.
2143
2149
  #
2144
2150
  # @param apply_seat_increase_config [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig]
2145
2151
  #
2146
2152
  # @param subscription_id [String] ID of the subscription to configure on the recurring commit/credit.
2147
2153
  #
2148
- # @param allocation [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account.
2154
+ # @param allocation [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account. If set
2149
2155
 
2150
2156
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig#apply_seat_increase_config
2151
2157
  class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
@@ -2159,7 +2165,8 @@ module MetronomeSDK
2159
2165
  # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
2160
2166
  end
2161
2167
 
2162
- # If set to POOLED, allocation added per seat is pooled across the account.
2168
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
2169
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
2163
2170
  #
2164
2171
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig#allocation
2165
2172
  module Allocation
@@ -2476,20 +2483,25 @@ module MetronomeSDK
2476
2483
  required :subscription_id, String
2477
2484
 
2478
2485
  # @!attribute allocation
2479
- # If set to POOLED, allocation added per seat is pooled across the account.
2486
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
2487
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
2480
2488
  #
2481
2489
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation, nil]
2482
2490
  optional :allocation,
2483
2491
  enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation }
2484
2492
 
2485
2493
  # @!method initialize(apply_seat_increase_config:, subscription_id:, allocation: nil)
2494
+ # Some parameter documentations has been truncated, see
2495
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig}
2496
+ # for more details.
2497
+ #
2486
2498
  # Attach a subscription to the recurring commit/credit.
2487
2499
  #
2488
2500
  # @param apply_seat_increase_config [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig]
2489
2501
  #
2490
2502
  # @param subscription_id [String] ID of the subscription to configure on the recurring commit/credit.
2491
2503
  #
2492
- # @param allocation [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account.
2504
+ # @param allocation [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account. If set
2493
2505
 
2494
2506
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig#apply_seat_increase_config
2495
2507
  class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
@@ -2503,7 +2515,8 @@ module MetronomeSDK
2503
2515
  # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
2504
2516
  end
2505
2517
 
2506
- # If set to POOLED, allocation added per seat is pooled across the account.
2518
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
2519
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
2507
2520
  #
2508
2521
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig#allocation
2509
2522
  module Allocation
@@ -2935,11 +2948,21 @@ module MetronomeSDK
2935
2948
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
2936
2949
  # directly on the subscription. `initial_quantity` must be provided with this
2937
2950
  # option. Compatible with recurring commits/credits that use POOLED allocation.
2951
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
2952
+ # user_123) to increment and decrement a subscription quantity, rather than
2953
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
2954
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
2955
+ # provided with this option.
2938
2956
  #
2939
2957
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::QuantityManagementMode, nil]
2940
2958
  optional :quantity_management_mode,
2941
2959
  enum: -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::QuantityManagementMode }
2942
2960
 
2961
+ # @!attribute seat_config
2962
+ #
2963
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SeatConfig, nil]
2964
+ optional :seat_config, -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::SeatConfig }
2965
+
2943
2966
  # @!attribute starting_at
2944
2967
  # Inclusive start time for the subscription. If not provided, defaults to contract
2945
2968
  # start date
@@ -2954,7 +2977,7 @@ module MetronomeSDK
2954
2977
  # @return [String, nil]
2955
2978
  optional :temporary_id, String
2956
2979
 
2957
- # @!method initialize(collection_schedule:, proration:, subscription_rate:, custom_fields: nil, description: nil, ending_before: nil, initial_quantity: nil, name: nil, quantity_management_mode: nil, starting_at: nil, temporary_id: nil)
2980
+ # @!method initialize(collection_schedule:, proration:, subscription_rate:, custom_fields: nil, description: nil, ending_before: nil, initial_quantity: nil, name: nil, quantity_management_mode: nil, seat_config: nil, starting_at: nil, temporary_id: nil)
2958
2981
  # Some parameter documentations has been truncated, see
2959
2982
  # {MetronomeSDK::Models::V2::ContractEditParams::AddSubscription} for more
2960
2983
  # details.
@@ -2977,6 +3000,8 @@ module MetronomeSDK
2977
3000
  #
2978
3001
  # @param quantity_management_mode [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::QuantityManagementMode] Determines how the subscription's quantity is controlled. Defaults to QUANTITY_O
2979
3002
  #
3003
+ # @param seat_config [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SeatConfig]
3004
+ #
2980
3005
  # @param starting_at [Time] Inclusive start time for the subscription. If not provided, defaults to contract
2981
3006
  #
2982
3007
  # @param temporary_id [String] A temporary ID used to reference the subscription in recurring commit/credit sub
@@ -3084,6 +3109,11 @@ module MetronomeSDK
3084
3109
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
3085
3110
  # directly on the subscription. `initial_quantity` must be provided with this
3086
3111
  # option. Compatible with recurring commits/credits that use POOLED allocation.
3112
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
3113
+ # user_123) to increment and decrement a subscription quantity, rather than
3114
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
3115
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
3116
+ # provided with this option.
3087
3117
  #
3088
3118
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription#quantity_management_mode
3089
3119
  module QuantityManagementMode
@@ -3095,6 +3125,43 @@ module MetronomeSDK
3095
3125
  # @!method self.values
3096
3126
  # @return [Array<Symbol>]
3097
3127
  end
3128
+
3129
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription#seat_config
3130
+ class SeatConfig < MetronomeSDK::Internal::Type::BaseModel
3131
+ # @!attribute initial_seat_ids
3132
+ # The initial assigned seats on this subscription.
3133
+ #
3134
+ # @return [Array<String>]
3135
+ required :initial_seat_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
3136
+
3137
+ # @!attribute seat_group_key
3138
+ # The property name, sent on usage events, that identifies the seat ID associated
3139
+ # with the usage event. For example, the property name might be seat_id or
3140
+ # user_id. The property must be set as a group key on billable metrics and a
3141
+ # presentation/pricing group key on contract products. This allows linked
3142
+ # recurring credits with an allocation per seat to be consumed by only one seat's
3143
+ # usage.
3144
+ #
3145
+ # @return [String]
3146
+ required :seat_group_key, String
3147
+
3148
+ # @!attribute initial_unassigned_seats
3149
+ # The initial amount of unassigned seats on this subscription.
3150
+ #
3151
+ # @return [Float, nil]
3152
+ optional :initial_unassigned_seats, Float
3153
+
3154
+ # @!method initialize(initial_seat_ids:, seat_group_key:, initial_unassigned_seats: nil)
3155
+ # Some parameter documentations has been truncated, see
3156
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SeatConfig} for
3157
+ # more details.
3158
+ #
3159
+ # @param initial_seat_ids [Array<String>] The initial assigned seats on this subscription.
3160
+ #
3161
+ # @param seat_group_key [String] The property name, sent on usage events, that identifies the seat ID associated
3162
+ #
3163
+ # @param initial_unassigned_seats [Float] The initial amount of unassigned seats on this subscription.
3164
+ end
3098
3165
  end
3099
3166
 
3100
3167
  class ArchiveCommit < MetronomeSDK::Internal::Type::BaseModel
@@ -3164,6 +3231,11 @@ module MetronomeSDK
3164
3231
  # @return [Array<String>, nil]
3165
3232
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
3166
3233
 
3234
+ # @!attribute description
3235
+ #
3236
+ # @return [String, nil]
3237
+ optional :description, String
3238
+
3167
3239
  # @!attribute hierarchy_configuration
3168
3240
  # Optional configuration for commit hierarchy access control
3169
3241
  #
@@ -3175,6 +3247,11 @@ module MetronomeSDK
3175
3247
  # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule, nil]
3176
3248
  optional :invoice_schedule, -> { MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule }
3177
3249
 
3250
+ # @!attribute name
3251
+ #
3252
+ # @return [String, nil]
3253
+ optional :name, String
3254
+
3178
3255
  # @!attribute netsuite_sales_order_id
3179
3256
  #
3180
3257
  # @return [String, nil]
@@ -3203,7 +3280,7 @@ module MetronomeSDK
3203
3280
  # @return [Float, nil]
3204
3281
  optional :rollover_fraction, Float, nil?: true
3205
3282
 
3206
- # @!method initialize(commit_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, hierarchy_configuration: nil, invoice_schedule: nil, netsuite_sales_order_id: nil, priority: nil, product_id: nil, rate_type: nil, rollover_fraction: nil)
3283
+ # @!method initialize(commit_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, hierarchy_configuration: nil, invoice_schedule: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, product_id: nil, rate_type: nil, rollover_fraction: nil)
3207
3284
  # Some parameter documentations has been truncated, see
3208
3285
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit} for more details.
3209
3286
  #
@@ -3215,10 +3292,14 @@ module MetronomeSDK
3215
3292
  #
3216
3293
  # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If applicable*product_ids, applicable_product*
3217
3294
  #
3295
+ # @param description [String]
3296
+ #
3218
3297
  # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for commit hierarchy access control
3219
3298
  #
3220
3299
  # @param invoice_schedule [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule]
3221
3300
  #
3301
+ # @param name [String]
3302
+ #
3222
3303
  # @param netsuite_sales_order_id [String, nil]
3223
3304
  #
3224
3305
  # @param priority [Float, nil]
@@ -3456,12 +3537,22 @@ module MetronomeSDK
3456
3537
  # @return [Array<String>, nil]
3457
3538
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
3458
3539
 
3540
+ # @!attribute description
3541
+ #
3542
+ # @return [String, nil]
3543
+ optional :description, String
3544
+
3459
3545
  # @!attribute hierarchy_configuration
3460
3546
  # Optional configuration for commit hierarchy access control
3461
3547
  #
3462
3548
  # @return [MetronomeSDK::Models::CommitHierarchyConfiguration, nil]
3463
3549
  optional :hierarchy_configuration, -> { MetronomeSDK::CommitHierarchyConfiguration }
3464
3550
 
3551
+ # @!attribute name
3552
+ #
3553
+ # @return [String, nil]
3554
+ optional :name, String
3555
+
3465
3556
  # @!attribute netsuite_sales_order_id
3466
3557
  #
3467
3558
  # @return [String, nil]
@@ -3485,7 +3576,7 @@ module MetronomeSDK
3485
3576
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::RateType, nil]
3486
3577
  optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::UpdateCredit::RateType }
3487
3578
 
3488
- # @!method initialize(credit_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, hierarchy_configuration: nil, netsuite_sales_order_id: nil, priority: nil, product_id: nil, rate_type: nil)
3579
+ # @!method initialize(credit_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, hierarchy_configuration: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, product_id: nil, rate_type: nil)
3489
3580
  # Some parameter documentations has been truncated, see
3490
3581
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit} for more details.
3491
3582
  #
@@ -3497,8 +3588,12 @@ module MetronomeSDK
3497
3588
  #
3498
3589
  # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If applicable*product_ids, applicable_product*
3499
3590
  #
3591
+ # @param description [String]
3592
+ #
3500
3593
  # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for commit hierarchy access control
3501
3594
  #
3595
+ # @param name [String]
3596
+ #
3502
3597
  # @param netsuite_sales_order_id [String, nil]
3503
3598
  #
3504
3599
  # @param priority [Float, nil]
@@ -4042,6 +4137,14 @@ module MetronomeSDK
4042
4137
  # @return [Time, nil]
4043
4138
  optional :ending_before, Time, nil?: true
4044
4139
 
4140
+ # @!attribute quantity_management_mode_update
4141
+ # Update the subscription's quantity management mode from QUANTITY_ONLY to
4142
+ # SEAT_BASED with the provided seat_group_key.
4143
+ #
4144
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate, nil]
4145
+ optional :quantity_management_mode_update,
4146
+ -> { MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate }
4147
+
4045
4148
  # @!attribute quantity_updates
4046
4149
  # Quantity changes are applied on the effective date based on the order which they
4047
4150
  # are sent. For example, if I scheduled the quantity to be 12 on May 21 and then
@@ -4051,7 +4154,12 @@ module MetronomeSDK
4051
4154
  optional :quantity_updates,
4052
4155
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityUpdate] }
4053
4156
 
4054
- # @!method initialize(subscription_id:, ending_before: nil, quantity_updates: nil)
4157
+ # @!attribute seat_updates
4158
+ #
4159
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates, nil]
4160
+ optional :seat_updates, -> { MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates }
4161
+
4162
+ # @!method initialize(subscription_id:, ending_before: nil, quantity_management_mode_update: nil, quantity_updates: nil, seat_updates: nil)
4055
4163
  # Some parameter documentations has been truncated, see
4056
4164
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription} for more
4057
4165
  # details.
@@ -4060,7 +4168,54 @@ module MetronomeSDK
4060
4168
  #
4061
4169
  # @param ending_before [Time, nil]
4062
4170
  #
4171
+ # @param quantity_management_mode_update [MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate] Update the subscription's quantity management mode from QUANTITY_ONLY to SEAT_BA
4172
+ #
4063
4173
  # @param quantity_updates [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityUpdate>] Quantity changes are applied on the effective date based on the order which they
4174
+ #
4175
+ # @param seat_updates [MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates]
4176
+
4177
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription#quantity_management_mode_update
4178
+ class QuantityManagementModeUpdate < MetronomeSDK::Internal::Type::BaseModel
4179
+ # @!attribute quantity_management_mode
4180
+ #
4181
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::QuantityManagementMode]
4182
+ required :quantity_management_mode,
4183
+ enum: -> { MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::QuantityManagementMode }
4184
+
4185
+ # @!attribute seat_config
4186
+ #
4187
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::SeatConfig]
4188
+ required :seat_config,
4189
+ -> { MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::SeatConfig }
4190
+
4191
+ # @!method initialize(quantity_management_mode:, seat_config:)
4192
+ # Update the subscription's quantity management mode from QUANTITY_ONLY to
4193
+ # SEAT_BASED with the provided seat_group_key.
4194
+ #
4195
+ # @param quantity_management_mode [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::QuantityManagementMode]
4196
+ # @param seat_config [MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::SeatConfig]
4197
+
4198
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate#quantity_management_mode
4199
+ module QuantityManagementMode
4200
+ extend MetronomeSDK::Internal::Type::Enum
4201
+
4202
+ SEAT_BASED = :SEAT_BASED
4203
+
4204
+ # @!method self.values
4205
+ # @return [Array<Symbol>]
4206
+ end
4207
+
4208
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate#seat_config
4209
+ class SeatConfig < MetronomeSDK::Internal::Type::BaseModel
4210
+ # @!attribute seat_group_key
4211
+ #
4212
+ # @return [String]
4213
+ required :seat_group_key, String
4214
+
4215
+ # @!method initialize(seat_group_key:)
4216
+ # @param seat_group_key [String]
4217
+ end
4218
+ end
4064
4219
 
4065
4220
  class QuantityUpdate < MetronomeSDK::Internal::Type::BaseModel
4066
4221
  # @!attribute starting_at
@@ -4094,6 +4249,141 @@ module MetronomeSDK
4094
4249
  #
4095
4250
  # @param quantity_delta [Float] The delta to add to the subscription's quantity. Must be provided if quantity is
4096
4251
  end
4252
+
4253
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription#seat_updates
4254
+ class SeatUpdates < MetronomeSDK::Internal::Type::BaseModel
4255
+ # @!attribute add_seat_ids
4256
+ # Adds seat IDs to the subscription. If there are unassigned seats, the new seat
4257
+ # IDs will fill these unassigned seats and not increase the total subscription
4258
+ # quantity. Otherwise, if there are more new seat IDs than unassigned seats, the
4259
+ # total subscription quantity will increase.
4260
+ #
4261
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddSeatID>, nil]
4262
+ optional :add_seat_ids,
4263
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddSeatID] }
4264
+
4265
+ # @!attribute add_unassigned_seats
4266
+ # Adds unassigned seats to the subscription. This will increase the total
4267
+ # subscription quantity.
4268
+ #
4269
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddUnassignedSeat>, nil]
4270
+ optional :add_unassigned_seats,
4271
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddUnassignedSeat] }
4272
+
4273
+ # @!attribute remove_seat_ids
4274
+ # Removes seat IDs from the subscription, if possible. If a seat ID is removed,
4275
+ # the total subscription quantity will decrease. Otherwise, if the seat ID is not
4276
+ # found on the subscription, this is a no-op.
4277
+ #
4278
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveSeatID>, nil]
4279
+ optional :remove_seat_ids,
4280
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveSeatID] }
4281
+
4282
+ # @!attribute remove_unassigned_seats
4283
+ # Removes unassigned seats from the subscription. This will decrease the total
4284
+ # subscription quantity if there are are unassigned seats.
4285
+ #
4286
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveUnassignedSeat>, nil]
4287
+ optional :remove_unassigned_seats,
4288
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveUnassignedSeat] }
4289
+
4290
+ # @!method initialize(add_seat_ids: nil, add_unassigned_seats: nil, remove_seat_ids: nil, remove_unassigned_seats: nil)
4291
+ # Some parameter documentations has been truncated, see
4292
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates}
4293
+ # for more details.
4294
+ #
4295
+ # @param add_seat_ids [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddSeatID>] Adds seat IDs to the subscription. If there are unassigned seats, the new seat
4296
+ #
4297
+ # @param add_unassigned_seats [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddUnassignedSeat>] Adds unassigned seats to the subscription. This will increase the total subscrip
4298
+ #
4299
+ # @param remove_seat_ids [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveSeatID>] Removes seat IDs from the subscription, if possible. If a seat ID is removed, t
4300
+ #
4301
+ # @param remove_unassigned_seats [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveUnassignedSeat>] Removes unassigned seats from the subscription. This will decrease the total sub
4302
+
4303
+ class AddSeatID < MetronomeSDK::Internal::Type::BaseModel
4304
+ # @!attribute seat_ids
4305
+ #
4306
+ # @return [Array<String>]
4307
+ required :seat_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
4308
+
4309
+ # @!attribute starting_at
4310
+ # Assigned seats will be added/removed starting at this date.
4311
+ #
4312
+ # @return [Time]
4313
+ required :starting_at, Time
4314
+
4315
+ # @!method initialize(seat_ids:, starting_at:)
4316
+ # @param seat_ids [Array<String>]
4317
+ #
4318
+ # @param starting_at [Time] Assigned seats will be added/removed starting at this date.
4319
+ end
4320
+
4321
+ class AddUnassignedSeat < MetronomeSDK::Internal::Type::BaseModel
4322
+ # @!attribute quantity
4323
+ # The number of unassigned seats on the subscription will increase/decrease by
4324
+ # this delta. Must be greater than 0.
4325
+ #
4326
+ # @return [Float]
4327
+ required :quantity, Float
4328
+
4329
+ # @!attribute starting_at
4330
+ # Unassigned seats will be updated starting at this date.
4331
+ #
4332
+ # @return [Time]
4333
+ required :starting_at, Time
4334
+
4335
+ # @!method initialize(quantity:, starting_at:)
4336
+ # Some parameter documentations has been truncated, see
4337
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddUnassignedSeat}
4338
+ # for more details.
4339
+ #
4340
+ # @param quantity [Float] The number of unassigned seats on the subscription will increase/decrease by thi
4341
+ #
4342
+ # @param starting_at [Time] Unassigned seats will be updated starting at this date.
4343
+ end
4344
+
4345
+ class RemoveSeatID < MetronomeSDK::Internal::Type::BaseModel
4346
+ # @!attribute seat_ids
4347
+ #
4348
+ # @return [Array<String>]
4349
+ required :seat_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
4350
+
4351
+ # @!attribute starting_at
4352
+ # Assigned seats will be added/removed starting at this date.
4353
+ #
4354
+ # @return [Time]
4355
+ required :starting_at, Time
4356
+
4357
+ # @!method initialize(seat_ids:, starting_at:)
4358
+ # @param seat_ids [Array<String>]
4359
+ #
4360
+ # @param starting_at [Time] Assigned seats will be added/removed starting at this date.
4361
+ end
4362
+
4363
+ class RemoveUnassignedSeat < MetronomeSDK::Internal::Type::BaseModel
4364
+ # @!attribute quantity
4365
+ # The number of unassigned seats on the subscription will increase/decrease by
4366
+ # this delta. Must be greater than 0.
4367
+ #
4368
+ # @return [Float]
4369
+ required :quantity, Float
4370
+
4371
+ # @!attribute starting_at
4372
+ # Unassigned seats will be updated starting at this date.
4373
+ #
4374
+ # @return [Time]
4375
+ required :starting_at, Time
4376
+
4377
+ # @!method initialize(quantity:, starting_at:)
4378
+ # Some parameter documentations has been truncated, see
4379
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveUnassignedSeat}
4380
+ # for more details.
4381
+ #
4382
+ # @param quantity [Float] The number of unassigned seats on the subscription will increase/decrease by thi
4383
+ #
4384
+ # @param starting_at [Time] Unassigned seats will be updated starting at this date.
4385
+ end
4386
+ end
4097
4387
  end
4098
4388
  end
4099
4389
  end