metronome-sdk 2.1.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 (96) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +39 -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 +18 -12
  6. data/lib/metronome_sdk/internal/util.rb +7 -2
  7. data/lib/metronome_sdk/models/contract_v2.rb +29 -2
  8. data/lib/metronome_sdk/models/subscription.rb +32 -5
  9. data/lib/metronome_sdk/models/v1/alert_create_params.rb +33 -1
  10. data/lib/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rb +10 -1
  11. data/lib/metronome_sdk/models/v1/contract_create_params.rb +136 -20
  12. data/lib/metronome_sdk/models/v1/customer_create_params.rb +94 -2
  13. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_response.rb +111 -0
  14. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +32 -1
  15. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +15 -1
  16. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +15 -1
  17. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +33 -1
  18. data/lib/metronome_sdk/models/v1/customers/invoice.rb +20 -2
  19. data/lib/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rb +8 -1
  20. data/lib/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rb +10 -1
  21. data/lib/metronome_sdk/models/v1/settings/billing_provider_create_params.rb +1 -0
  22. data/lib/metronome_sdk/models/v1/usage_search_response.rb +6 -3
  23. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +17 -1
  24. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +17 -1
  25. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +285 -22
  26. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +177 -3
  27. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  28. data/lib/metronome_sdk/resources/v1/contracts.rb +6 -2
  29. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +3 -1
  30. data/lib/metronome_sdk/resources/v1/customers/billing_config.rb +5 -1
  31. data/lib/metronome_sdk/resources/v1/customers.rb +5 -3
  32. data/lib/metronome_sdk/resources/v1/settings.rb +3 -1
  33. data/lib/metronome_sdk/resources/v2/contracts.rb +10 -2
  34. data/lib/metronome_sdk/version.rb +1 -1
  35. data/lib/metronome_sdk.rb +3 -0
  36. data/manifest.yaml +2 -0
  37. data/rbi/metronome_sdk/internal/transport/base_client.rbi +5 -0
  38. data/rbi/metronome_sdk/internal/transport/pooled_net_requester.rbi +6 -2
  39. data/rbi/metronome_sdk/internal/type/base_model.rbi +8 -4
  40. data/rbi/metronome_sdk/models/contract_v2.rbi +63 -6
  41. data/rbi/metronome_sdk/models/subscription.rbi +55 -9
  42. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +69 -0
  43. data/rbi/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbi +13 -0
  44. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +288 -24
  45. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +204 -0
  46. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbi +281 -0
  47. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +67 -0
  48. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +18 -0
  49. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +18 -0
  50. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +71 -0
  51. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +32 -0
  52. data/rbi/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbi +9 -0
  53. data/rbi/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbi +13 -0
  54. data/rbi/metronome_sdk/models/v1/settings/billing_provider_create_params.rbi +5 -0
  55. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +11 -3
  56. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +22 -0
  57. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +22 -0
  58. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +616 -27
  59. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +367 -3
  60. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -0
  61. data/rbi/metronome_sdk/resources/v1/contracts.rbi +9 -0
  62. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +5 -0
  63. data/rbi/metronome_sdk/resources/v1/customers/billing_config.rbi +6 -0
  64. data/rbi/metronome_sdk/resources/v1/customers.rbi +8 -1
  65. data/rbi/metronome_sdk/resources/v1/settings.rbi +4 -0
  66. data/rbi/metronome_sdk/resources/v2/contracts.rbi +12 -0
  67. data/sig/metronome_sdk/internal/transport/base_client.rbs +2 -0
  68. data/sig/metronome_sdk/internal/transport/pooled_net_requester.rbs +4 -1
  69. data/sig/metronome_sdk/models/contract_v2.rbs +31 -6
  70. data/sig/metronome_sdk/models/subscription.rbs +22 -3
  71. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +28 -0
  72. data/sig/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbs +7 -0
  73. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +104 -0
  74. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +83 -0
  75. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbs +119 -0
  76. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +26 -1
  77. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +14 -0
  78. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +14 -0
  79. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +30 -0
  80. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +18 -0
  81. data/sig/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbs +7 -0
  82. data/sig/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbs +8 -1
  83. data/sig/metronome_sdk/models/v1/settings/billing_provider_create_params.rbs +3 -1
  84. data/sig/metronome_sdk/models/v1/usage_search_response.rbs +3 -1
  85. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +14 -0
  86. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +14 -0
  87. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +232 -3
  88. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +131 -3
  89. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  90. data/sig/metronome_sdk/resources/v1/contracts.rbs +2 -0
  91. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  92. data/sig/metronome_sdk/resources/v1/customers/billing_config.rbs +2 -0
  93. data/sig/metronome_sdk/resources/v1/customers.rbs +2 -1
  94. data/sig/metronome_sdk/resources/v1/settings.rbs +1 -0
  95. data/sig/metronome_sdk/resources/v2/contracts.rbs +4 -0
  96. metadata +5 -2
@@ -1854,6 +1854,11 @@ module MetronomeSDK
1854
1854
  # @return [Array<String>, nil]
1855
1855
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
1856
1856
 
1857
+ # @!attribute description
1858
+ #
1859
+ # @return [String, nil]
1860
+ optional :description, String
1861
+
1857
1862
  # @!attribute hierarchy_configuration
1858
1863
  # Optional configuration for commit hierarchy access control
1859
1864
  #
@@ -1913,7 +1918,7 @@ module MetronomeSDK
1913
1918
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifierInput] },
1914
1919
  nil?: true
1915
1920
 
1916
- # @!method initialize(id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: 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, specifiers: nil)
1921
+ # @!method initialize(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, specifiers: nil)
1917
1922
  # Some parameter documentations has been truncated, see
1918
1923
  # {MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit}
1919
1924
  # for more details.
@@ -1926,6 +1931,8 @@ module MetronomeSDK
1926
1931
  #
1927
1932
  # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If applicable*product_ids, applicable_product*
1928
1933
  #
1934
+ # @param description [String]
1935
+ #
1929
1936
  # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for commit hierarchy access control
1930
1937
  #
1931
1938
  # @param invoice_schedule [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::InvoiceSchedule]
@@ -2187,6 +2194,11 @@ module MetronomeSDK
2187
2194
  optional :access_schedule,
2188
2195
  -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::AccessSchedule }
2189
2196
 
2197
+ # @!attribute description
2198
+ #
2199
+ # @return [String, nil]
2200
+ optional :description, String
2201
+
2190
2202
  # @!attribute hierarchy_configuration
2191
2203
  # Optional configuration for credit hierarchy access control
2192
2204
  #
@@ -2222,7 +2234,7 @@ module MetronomeSDK
2222
2234
  # @return [Float, nil]
2223
2235
  optional :rollover_fraction, Float, nil?: true
2224
2236
 
2225
- # @!method initialize(id:, access_schedule: nil, hierarchy_configuration: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, rollover_fraction: nil)
2237
+ # @!method initialize(id:, access_schedule: nil, description: nil, hierarchy_configuration: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, rollover_fraction: nil)
2226
2238
  # Some parameter documentations has been truncated, see
2227
2239
  # {MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit}
2228
2240
  # for more details.
@@ -2231,6 +2243,8 @@ module MetronomeSDK
2231
2243
  #
2232
2244
  # @param access_schedule [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::AccessSchedule]
2233
2245
  #
2246
+ # @param description [String]
2247
+ #
2234
2248
  # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for credit hierarchy access control
2235
2249
  #
2236
2250
  # @param name [String]
@@ -3051,10 +3065,21 @@ module MetronomeSDK
3051
3065
  optional :quantity_updates,
3052
3066
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSubscription::QuantityUpdate] }
3053
3067
 
3054
- # @!method initialize(id:, ending_before: nil, quantity_updates: nil)
3068
+ # @!attribute seat_updates
3069
+ # Manage subscription seats for subscriptions in SEAT_BASED mode.
3070
+ #
3071
+ # @return [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSubscription::SeatUpdates, nil]
3072
+ optional :seat_updates,
3073
+ -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSubscription::SeatUpdates }
3074
+
3075
+ # @!method initialize(id:, ending_before: nil, quantity_updates: nil, seat_updates: nil)
3055
3076
  # @param id [String]
3077
+ #
3056
3078
  # @param ending_before [Time]
3079
+ #
3057
3080
  # @param quantity_updates [Array<MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSubscription::QuantityUpdate>]
3081
+ #
3082
+ # @param seat_updates [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSubscription::SeatUpdates] Manage subscription seats for subscriptions in SEAT_BASED mode.
3058
3083
 
3059
3084
  class QuantityUpdate < MetronomeSDK::Internal::Type::BaseModel
3060
3085
  # @!attribute starting_at
@@ -3077,6 +3102,155 @@ module MetronomeSDK
3077
3102
  # @param quantity [Float]
3078
3103
  # @param quantity_delta [Float]
3079
3104
  end
3105
+
3106
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSubscription#seat_updates
3107
+ class SeatUpdates < MetronomeSDK::Internal::Type::BaseModel
3108
+ # @!attribute add_seat_ids
3109
+ # Adds seat IDs to the subscription. If there are unassigned seats, the new seat
3110
+ # IDs will fill these unassigned seats and not increase the total subscription
3111
+ # quantity. Otherwise, if there are more new seat IDs than unassigned seats, the
3112
+ # total subscription quantity will increase.
3113
+ #
3114
+ # @return [Array<MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSubscription::SeatUpdates::AddSeatID>, nil]
3115
+ optional :add_seat_ids,
3116
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSubscription::SeatUpdates::AddSeatID] }
3117
+
3118
+ # @!attribute add_unassigned_seats
3119
+ # Adds unassigned seats to the subscription. This will increase the total
3120
+ # subscription quantity.
3121
+ #
3122
+ # @return [Array<MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSubscription::SeatUpdates::AddUnassignedSeat>, nil]
3123
+ optional :add_unassigned_seats,
3124
+ -> do
3125
+ MetronomeSDK::Internal::Type::ArrayOf[
3126
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSubscription::SeatUpdates::AddUnassignedSeat
3127
+ ]
3128
+ end
3129
+
3130
+ # @!attribute remove_seat_ids
3131
+ # Removes seat IDs from the subscription, if possible. If a seat ID is removed,
3132
+ # the total subscription quantity will decrease. Otherwise, if the seat ID is not
3133
+ # found on the subscription, this is a no-op.
3134
+ #
3135
+ # @return [Array<MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSubscription::SeatUpdates::RemoveSeatID>, nil]
3136
+ optional :remove_seat_ids,
3137
+ -> do
3138
+ MetronomeSDK::Internal::Type::ArrayOf[
3139
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSubscription::SeatUpdates::RemoveSeatID
3140
+ ]
3141
+ end
3142
+
3143
+ # @!attribute remove_unassigned_seats
3144
+ # Removes unassigned seats from the subscription. This will decrease the total
3145
+ # subscription quantity if there are are unassigned seats.
3146
+ #
3147
+ # @return [Array<MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSubscription::SeatUpdates::RemoveUnassignedSeat>, nil]
3148
+ optional :remove_unassigned_seats,
3149
+ -> do
3150
+ MetronomeSDK::Internal::Type::ArrayOf[
3151
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSubscription::SeatUpdates::RemoveUnassignedSeat
3152
+ ]
3153
+ end
3154
+
3155
+ # @!method initialize(add_seat_ids: nil, add_unassigned_seats: nil, remove_seat_ids: nil, remove_unassigned_seats: nil)
3156
+ # Some parameter documentations has been truncated, see
3157
+ # {MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSubscription::SeatUpdates}
3158
+ # for more details.
3159
+ #
3160
+ # Manage subscription seats for subscriptions in SEAT_BASED mode.
3161
+ #
3162
+ # @param add_seat_ids [Array<MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSubscription::SeatUpdates::AddSeatID>] Adds seat IDs to the subscription. If there are unassigned seats, the new seat
3163
+ #
3164
+ # @param add_unassigned_seats [Array<MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSubscription::SeatUpdates::AddUnassignedSeat>] Adds unassigned seats to the subscription. This will increase the total subscrip
3165
+ #
3166
+ # @param remove_seat_ids [Array<MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSubscription::SeatUpdates::RemoveSeatID>] Removes seat IDs from the subscription, if possible. If a seat ID is removed, t
3167
+ #
3168
+ # @param remove_unassigned_seats [Array<MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSubscription::SeatUpdates::RemoveUnassignedSeat>] Removes unassigned seats from the subscription. This will decrease the total sub
3169
+
3170
+ class AddSeatID < MetronomeSDK::Internal::Type::BaseModel
3171
+ # @!attribute seat_ids
3172
+ #
3173
+ # @return [Array<String>]
3174
+ required :seat_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
3175
+
3176
+ # @!attribute starting_at
3177
+ # Assigned seats will be added/removed starting at this date.
3178
+ #
3179
+ # @return [Time]
3180
+ required :starting_at, Time
3181
+
3182
+ # @!method initialize(seat_ids:, starting_at:)
3183
+ # @param seat_ids [Array<String>]
3184
+ #
3185
+ # @param starting_at [Time] Assigned seats will be added/removed starting at this date.
3186
+ end
3187
+
3188
+ class AddUnassignedSeat < MetronomeSDK::Internal::Type::BaseModel
3189
+ # @!attribute quantity
3190
+ # The number of unassigned seats on the subscription will increase/decrease by
3191
+ # this delta. Must be greater than 0.
3192
+ #
3193
+ # @return [Float]
3194
+ required :quantity, Float
3195
+
3196
+ # @!attribute starting_at
3197
+ # Unassigned seats will be updated starting at this date.
3198
+ #
3199
+ # @return [Time]
3200
+ required :starting_at, Time
3201
+
3202
+ # @!method initialize(quantity:, starting_at:)
3203
+ # Some parameter documentations has been truncated, see
3204
+ # {MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSubscription::SeatUpdates::AddUnassignedSeat}
3205
+ # for more details.
3206
+ #
3207
+ # @param quantity [Float] The number of unassigned seats on the subscription will increase/decrease by thi
3208
+ #
3209
+ # @param starting_at [Time] Unassigned seats will be updated starting at this date.
3210
+ end
3211
+
3212
+ class RemoveSeatID < MetronomeSDK::Internal::Type::BaseModel
3213
+ # @!attribute seat_ids
3214
+ #
3215
+ # @return [Array<String>]
3216
+ required :seat_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
3217
+
3218
+ # @!attribute starting_at
3219
+ # Assigned seats will be added/removed starting at this date.
3220
+ #
3221
+ # @return [Time]
3222
+ required :starting_at, Time
3223
+
3224
+ # @!method initialize(seat_ids:, starting_at:)
3225
+ # @param seat_ids [Array<String>]
3226
+ #
3227
+ # @param starting_at [Time] Assigned seats will be added/removed starting at this date.
3228
+ end
3229
+
3230
+ class RemoveUnassignedSeat < MetronomeSDK::Internal::Type::BaseModel
3231
+ # @!attribute quantity
3232
+ # The number of unassigned seats on the subscription will increase/decrease by
3233
+ # this delta. Must be greater than 0.
3234
+ #
3235
+ # @return [Float]
3236
+ required :quantity, Float
3237
+
3238
+ # @!attribute starting_at
3239
+ # Unassigned seats will be updated starting at this date.
3240
+ #
3241
+ # @return [Time]
3242
+ required :starting_at, Time
3243
+
3244
+ # @!method initialize(quantity:, starting_at:)
3245
+ # Some parameter documentations has been truncated, see
3246
+ # {MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSubscription::SeatUpdates::RemoveUnassignedSeat}
3247
+ # for more details.
3248
+ #
3249
+ # @param quantity [Float] The number of unassigned seats on the subscription will increase/decrease by thi
3250
+ #
3251
+ # @param starting_at [Time] Unassigned seats will be updated starting at this date.
3252
+ end
3253
+ end
3080
3254
  end
3081
3255
  end
3082
3256
  end
@@ -53,7 +53,7 @@ module MetronomeSDK
53
53
  # threshold notification evaluations in real-time as usage events stream in,
54
54
  # unlike competitors who rely on periodic polling or batch evaluation cycles
55
55
  #
56
- # @overload create(alert_type:, name:, threshold:, billable_metric_id: nil, credit_grant_type_filters: nil, credit_type_id: nil, custom_field_filters: nil, customer_id: nil, evaluate_on_create: nil, group_values: nil, invoice_types_filter: nil, plan_id: nil, uniqueness_key: nil, request_options: {})
56
+ # @overload create(alert_type:, name:, threshold:, billable_metric_id: nil, credit_grant_type_filters: nil, credit_type_id: nil, custom_field_filters: nil, customer_id: nil, evaluate_on_create: nil, group_values: nil, invoice_types_filter: nil, plan_id: nil, seat_filter: nil, uniqueness_key: nil, request_options: {})
57
57
  #
58
58
  # @param alert_type [Symbol, MetronomeSDK::Models::V1::AlertCreateParams::AlertType] Type of the threshold notification
59
59
  #
@@ -79,6 +79,8 @@ module MetronomeSDK
79
79
  #
80
80
  # @param plan_id [String] If provided, will create this threshold notification for this specific plan. To
81
81
  #
82
+ # @param seat_filter [MetronomeSDK::Models::V1::AlertCreateParams::SeatFilter] Required for `low_remaining_seat_balance_reached` notifications. The alert is sc
83
+ #
82
84
  # @param uniqueness_key [String] Prevents the creation of duplicates. If a request to create a record is made wit
83
85
  #
84
86
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
@@ -140,7 +140,7 @@ module MetronomeSDK
140
140
  # `usage_filters` to route the correct usage to each contract.
141
141
  # [Read more about usage filters](https://docs.metronome.com/manage-product-access/provision-customer/#create-a-usage-filter).
142
142
  #
143
- # @overload create(customer_id:, starting_at:, billing_provider_configuration: nil, commits: nil, credits: nil, custom_fields: nil, discounts: nil, ending_before: nil, hierarchy_configuration: nil, multiplier_override_prioritization: nil, name: nil, net_payment_terms_days: nil, netsuite_sales_order_id: nil, overrides: nil, prepaid_balance_threshold_configuration: nil, priority: nil, professional_services: nil, rate_card_alias: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, reseller_royalties: nil, salesforce_opportunity_id: nil, scheduled_charges: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, subscriptions: nil, total_contract_value: nil, transition: nil, uniqueness_key: nil, usage_filter: nil, usage_statement_schedule: nil, request_options: {})
143
+ # @overload create(customer_id:, starting_at:, billing_provider_configuration: nil, commits: nil, credits: nil, custom_fields: nil, discounts: nil, ending_before: nil, hierarchy_configuration: nil, multiplier_override_prioritization: nil, name: nil, net_payment_terms_days: nil, netsuite_sales_order_id: nil, overrides: nil, prepaid_balance_threshold_configuration: nil, priority: nil, professional_services: nil, rate_card_alias: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, reseller_royalties: nil, revenue_system_configuration: nil, salesforce_opportunity_id: nil, scheduled_charges: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, subscriptions: nil, total_contract_value: nil, transition: nil, uniqueness_key: nil, usage_filter: nil, usage_statement_schedule: nil, request_options: {})
144
144
  #
145
145
  # @param customer_id [String]
146
146
  #
@@ -186,6 +186,8 @@ module MetronomeSDK
186
186
  #
187
187
  # @param reseller_royalties [Array<MetronomeSDK::Models::V1::ContractCreateParams::ResellerRoyalty>] This field's availability is dependent on your client's configuration.
188
188
  #
189
+ # @param revenue_system_configuration [MetronomeSDK::Models::V1::ContractCreateParams::RevenueSystemConfiguration] The revenue system configuration associated with a contract. Provide either an I
190
+ #
189
191
  # @param salesforce_opportunity_id [String] This field's availability is dependent on your client's configuration.
190
192
  #
191
193
  # @param scheduled_charges [Array<MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge>]
@@ -318,7 +320,7 @@ module MetronomeSDK
318
320
  # upstream of the commit, whether that is via contract editing, rate editing, or
319
321
  # other actions that cause an invoice to be recalculated.
320
322
  #
321
- # @overload add_manual_balance_entry(id:, amount:, customer_id:, reason:, segment_id:, contract_id: nil, timestamp: nil, request_options: {})
323
+ # @overload add_manual_balance_entry(id:, amount:, customer_id:, reason:, segment_id:, contract_id: nil, per_group_amounts: nil, timestamp: nil, request_options: {})
322
324
  #
323
325
  # @param id [String] ID of the balance (commit or credit) to update.
324
326
  #
@@ -332,6 +334,8 @@ module MetronomeSDK
332
334
  #
333
335
  # @param contract_id [String] ID of the contract to update. Leave blank to update a customer level balance.
334
336
  #
337
+ # @param per_group_amounts [Hash{Symbol=>Float}] If using individually configured commits/credits attached to seat managed subscr
338
+ #
335
339
  # @param timestamp [Time] RFC 3339 timestamp indicating when the manual adjustment takes place. If not pro
336
340
  #
337
341
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
@@ -64,7 +64,7 @@ module MetronomeSDK
64
64
  # - Error handling: Returns 404 if either the customer or alert_id doesn't exist
65
65
  # or isn't accessible to your organization
66
66
  #
67
- # @overload retrieve(alert_id:, customer_id:, group_values: nil, plans_or_contracts: nil, request_options: {})
67
+ # @overload retrieve(alert_id:, customer_id:, group_values: nil, plans_or_contracts: nil, seat_filter: nil, request_options: {})
68
68
  #
69
69
  # @param alert_id [String] The Metronome ID of the threshold notification
70
70
  #
@@ -74,6 +74,8 @@ module MetronomeSDK
74
74
  #
75
75
  # @param plans_or_contracts [Symbol, MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::PlansOrContracts] When parallel threshold notifications are enabled during migration, this flag de
76
76
  #
77
+ # @param seat_filter [MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::SeatFilter] Only allowed for `low_remaining_seat_balance_reached` notifications. This filter
78
+ #
77
79
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
78
80
  #
79
81
  # @return [MetronomeSDK::Models::V1::Customers::AlertRetrieveResponse]
@@ -12,7 +12,7 @@ module MetronomeSDK
12
12
  # Set the billing configuration for a given customer. This is a Plans (deprecated)
13
13
  # endpoint. New clients should implement using Contracts.
14
14
  #
15
- # @overload create(customer_id:, billing_provider_type:, billing_provider_customer_id:, aws_product_code: nil, aws_region: nil, stripe_collection_method: nil, request_options: {})
15
+ # @overload create(customer_id:, billing_provider_type:, billing_provider_customer_id:, aws_customer_account_id: nil, aws_customer_id: nil, aws_product_code: nil, aws_region: nil, stripe_collection_method: nil, request_options: {})
16
16
  #
17
17
  # @param customer_id [String] Path param:
18
18
  #
@@ -20,6 +20,10 @@ module MetronomeSDK
20
20
  #
21
21
  # @param billing_provider_customer_id [String] Body param: The customer ID in the billing provider's system. For Azure, this is
22
22
  #
23
+ # @param aws_customer_account_id [String] Body param:
24
+ #
25
+ # @param aws_customer_id [String] Body param:
26
+ #
23
27
  # @param aws_product_code [String] Body param:
24
28
  #
25
29
  # @param aws_region [Symbol, MetronomeSDK::Models::V1::Customers::BillingConfigCreateParams::AwsRegion] Body param:
@@ -63,7 +63,7 @@ module MetronomeSDK
63
63
  # For details on different billing configurations for different systems, review
64
64
  # the `/setCustomerBillingConfiguration` end-point.
65
65
  #
66
- # @overload create(name:, billing_config: nil, custom_fields: nil, customer_billing_provider_configurations: nil, external_id: nil, ingest_aliases: nil, request_options: {})
66
+ # @overload create(name:, billing_config: nil, custom_fields: nil, customer_billing_provider_configurations: nil, customer_revenue_system_configurations: nil, external_id: nil, ingest_aliases: nil, request_options: {})
67
67
  #
68
68
  # @param name [String] This will be truncated to 160 characters if the provided name is longer.
69
69
  #
@@ -73,6 +73,8 @@ module MetronomeSDK
73
73
  #
74
74
  # @param customer_billing_provider_configurations [Array<MetronomeSDK::Models::V1::CustomerCreateParams::CustomerBillingProviderConfiguration>]
75
75
  #
76
+ # @param customer_revenue_system_configurations [Array<MetronomeSDK::Models::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration>]
77
+ #
76
78
  # @param external_id [String] (deprecated, use ingest_aliases instead) an alias that can be used to refer to t
77
79
  #
78
80
  # @param ingest_aliases [Array<String>] Aliases that can be used to refer to this customer in usage events
@@ -386,7 +388,7 @@ module MetronomeSDK
386
388
  # @param data [Array<MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data>]
387
389
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
388
390
  #
389
- # @return [nil]
391
+ # @return [MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse]
390
392
  #
391
393
  # @see MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams
392
394
  def set_billing_configurations(params)
@@ -395,7 +397,7 @@ module MetronomeSDK
395
397
  method: :post,
396
398
  path: "v1/setCustomerBillingProviderConfigurations",
397
399
  body: parsed,
398
- model: NilClass,
400
+ model: MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse,
399
401
  options: options
400
402
  )
401
403
  end
@@ -16,7 +16,7 @@ module MetronomeSDK
16
16
  # Avalara credentials to the appropriate billing entity. These credentials are
17
17
  # only used for PLG Invoicing today.
18
18
  #
19
- # @overload upsert_avalara_credentials(avalara_environment:, avalara_password:, avalara_username:, delivery_method_ids:, request_options: {})
19
+ # @overload upsert_avalara_credentials(avalara_environment:, avalara_password:, avalara_username:, delivery_method_ids:, commit_transactions: nil, request_options: {})
20
20
  #
21
21
  # @param avalara_environment [Symbol, MetronomeSDK::Models::V1::SettingUpsertAvalaraCredentialsParams::AvalaraEnvironment] The Avalara environment to use (SANDBOX or PRODUCTION).
22
22
  #
@@ -26,6 +26,8 @@ module MetronomeSDK
26
26
  #
27
27
  # @param delivery_method_ids [Array<String>] The delivery method IDs of the billing provider configurations to update, can be
28
28
  #
29
+ # @param commit_transactions [Boolean] Commit transactions if you want Metronome tax calculations used for reporting an
30
+ #
29
31
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
30
32
  #
31
33
  # @return [MetronomeSDK::Models::V1::SettingUpsertAvalaraCredentialsResponse]
@@ -228,7 +228,7 @@ module MetronomeSDK
228
228
  # finalized invoice. You can void the invoice beforehand and then remove the
229
229
  # access schedule segment.
230
230
  #
231
- # @overload edit_commit(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: {})
231
+ # @overload edit_commit(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: {})
232
232
  #
233
233
  # @param commit_id [String] ID of the commit to edit
234
234
  #
@@ -240,12 +240,16 @@ module MetronomeSDK
240
240
  #
241
241
  # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If applicable*product_ids, applicable_product*
242
242
  #
243
+ # @param description [String] Updated description for the commit
244
+ #
243
245
  # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for commit hierarchy access control
244
246
  #
245
247
  # @param invoice_contract_id [String] ID of contract to use for invoicing
246
248
  #
247
249
  # @param invoice_schedule [MetronomeSDK::Models::V2::ContractEditCommitParams::InvoiceSchedule]
248
250
  #
251
+ # @param name [String] Updated name for the commit
252
+ #
249
253
  # @param priority [Float, nil] If multiple commits are applicable, the one with the lower priority will apply f
250
254
  #
251
255
  # @param product_id [String]
@@ -290,7 +294,7 @@ module MetronomeSDK
290
294
  # invoice. You can void the invoice beforehand and then remove the access
291
295
  # schedule segment.
292
296
  #
293
- # @overload edit_credit(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: {})
297
+ # @overload edit_credit(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: {})
294
298
  #
295
299
  # @param credit_id [String] ID of the credit to edit
296
300
  #
@@ -302,8 +306,12 @@ module MetronomeSDK
302
306
  #
303
307
  # @param applicable_product_tags [Array<String>, nil] Which tags the credit applies to. If both applicable*product_ids and applicable*
304
308
  #
309
+ # @param description [String] Updated description for the credit
310
+ #
305
311
  # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for credit hierarchy access control
306
312
  #
313
+ # @param name [String] Updated name for the credit
314
+ #
307
315
  # @param priority [Float, nil] If multiple commits are applicable, the one with the lower priority will apply f
308
316
  #
309
317
  # @param product_id [String]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MetronomeSDK
4
- VERSION = "2.1.0"
4
+ VERSION = "2.2.0"
5
5
  end
data/lib/metronome_sdk.rb CHANGED
@@ -3,12 +3,14 @@
3
3
  # Standard libraries.
4
4
  # rubocop:disable Lint/RedundantRequireStatement
5
5
  require "English"
6
+ require "base64"
6
7
  require "cgi"
7
8
  require "date"
8
9
  require "erb"
9
10
  require "etc"
10
11
  require "json"
11
12
  require "net/http"
13
+ require "openssl"
12
14
  require "pathname"
13
15
  require "rbconfig"
14
16
  require "securerandom"
@@ -235,6 +237,7 @@ require_relative "metronome_sdk/models/v1/customers/plan_list_price_adjustments_
235
237
  require_relative "metronome_sdk/models/v1/customers/plan_list_price_adjustments_response"
236
238
  require_relative "metronome_sdk/models/v1/customers/plan_list_response"
237
239
  require_relative "metronome_sdk/models/v1/customer_set_billing_configurations_params"
240
+ require_relative "metronome_sdk/models/v1/customer_set_billing_configurations_response"
238
241
  require_relative "metronome_sdk/models/v1/customer_set_ingest_aliases_params"
239
242
  require_relative "metronome_sdk/models/v1/customer_set_name_params"
240
243
  require_relative "metronome_sdk/models/v1/customer_set_name_response"
data/manifest.yaml CHANGED
@@ -1,11 +1,13 @@
1
1
  dependencies:
2
2
  - English
3
+ - base64
3
4
  - cgi
4
5
  - date
5
6
  - erb
6
7
  - etc
7
8
  - json
8
9
  - net/http
10
+ - openssl
9
11
  - pathname
10
12
  - rbconfig
11
13
  - securerandom
@@ -180,6 +180,11 @@ module MetronomeSDK
180
180
  private def auth_headers
181
181
  end
182
182
 
183
+ # @api private
184
+ sig { returns(String) }
185
+ private def user_agent
186
+ end
187
+
183
188
  # @api private
184
189
  sig { returns(String) }
185
190
  private def generate_idempotency_key
@@ -26,8 +26,12 @@ module MetronomeSDK
26
26
 
27
27
  class << self
28
28
  # @api private
29
- sig { params(url: URI::Generic).returns(Net::HTTP) }
30
- def connect(url)
29
+ sig do
30
+ params(cert_store: OpenSSL::X509::Store, url: URI::Generic).returns(
31
+ Net::HTTP
32
+ )
33
+ end
34
+ def connect(cert_store:, url:)
31
35
  end
32
36
 
33
37
  # @api private
@@ -31,7 +31,7 @@ module MetronomeSDK
31
31
  #
32
32
  # Assumes superclass fields are totally defined before fields are accessed /
33
33
  # defined on subclasses.
34
- sig { params(child: T.self_type).void }
34
+ sig { params(child: MetronomeSDK::Internal::Type::BaseModel).void }
35
35
  def inherited(child)
36
36
  end
37
37
 
@@ -282,9 +282,13 @@ module MetronomeSDK
282
282
 
283
283
  # Create a new instance of a model.
284
284
  sig do
285
- params(data: T.any(T::Hash[Symbol, T.anything], T.self_type)).returns(
286
- T.attached_class
287
- )
285
+ params(
286
+ data:
287
+ T.any(
288
+ T::Hash[Symbol, T.anything],
289
+ MetronomeSDK::Internal::Type::BaseModel
290
+ )
291
+ ).returns(T.attached_class)
288
292
  end
289
293
  def self.new(data = {})
290
294
  end