orb-billing 1.43.0 → 1.44.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 (78) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +1 -1
  4. data/lib/orb/client.rb +6 -0
  5. data/lib/orb/models/alert_create_for_plan_params.rb +156 -0
  6. data/lib/orb/models/dimensional_price_groups/price_create_params.rb +147 -0
  7. data/lib/orb/models/dimensional_price_groups/price_create_response.rb +19 -0
  8. data/lib/orb/models/dimensional_price_groups/price_list_params.rb +65 -0
  9. data/lib/orb/models/plan_created_webhook_event.rb +91 -0
  10. data/lib/orb/models/plan_edited_webhook_event.rb +131 -0
  11. data/lib/orb/models/tax_amount.rb +32 -1
  12. data/lib/orb/models/unwrap_webhook_event.rb +7 -1
  13. data/lib/orb/models/webhook_endpoint.rb +56 -0
  14. data/lib/orb/models/webhook_endpoint_create_params.rb +34 -0
  15. data/lib/orb/models/webhook_endpoint_delete_params.rb +20 -0
  16. data/lib/orb/models/webhook_endpoint_disable_params.rb +20 -0
  17. data/lib/orb/models/webhook_endpoint_enable_params.rb +20 -0
  18. data/lib/orb/models/webhook_endpoint_list_params.rb +34 -0
  19. data/lib/orb/models/webhook_endpoint_retrieve_params.rb +20 -0
  20. data/lib/orb/models/webhook_endpoint_update_params.rb +41 -0
  21. data/lib/orb/models/webhook_endpoint_with_secret.rb +65 -0
  22. data/lib/orb/models.rb +24 -0
  23. data/lib/orb/resources/alerts.rb +55 -0
  24. data/lib/orb/resources/dimensional_price_groups/prices.rb +87 -0
  25. data/lib/orb/resources/dimensional_price_groups.rb +4 -0
  26. data/lib/orb/resources/webhook_endpoints.rb +183 -0
  27. data/lib/orb/resources/webhooks.rb +1 -1
  28. data/lib/orb/version.rb +1 -1
  29. data/lib/orb.rb +17 -0
  30. data/rbi/orb/client.rbi +5 -0
  31. data/rbi/orb/models/alert_create_for_plan_params.rbi +290 -0
  32. data/rbi/orb/models/dimensional_price_groups/price_create_params.rbi +298 -0
  33. data/rbi/orb/models/dimensional_price_groups/price_create_response.rbi +76 -0
  34. data/rbi/orb/models/dimensional_price_groups/price_list_params.rbi +134 -0
  35. data/rbi/orb/models/plan_created_webhook_event.rbi +140 -0
  36. data/rbi/orb/models/plan_edited_webhook_event.rbi +259 -0
  37. data/rbi/orb/models/tax_amount.rbi +41 -3
  38. data/rbi/orb/models/unwrap_webhook_event.rbi +2 -0
  39. data/rbi/orb/models/webhook_endpoint.rbi +71 -0
  40. data/rbi/orb/models/webhook_endpoint_create_params.rbi +53 -0
  41. data/rbi/orb/models/webhook_endpoint_delete_params.rbi +35 -0
  42. data/rbi/orb/models/webhook_endpoint_disable_params.rbi +35 -0
  43. data/rbi/orb/models/webhook_endpoint_enable_params.rbi +35 -0
  44. data/rbi/orb/models/webhook_endpoint_list_params.rbi +56 -0
  45. data/rbi/orb/models/webhook_endpoint_retrieve_params.rbi +35 -0
  46. data/rbi/orb/models/webhook_endpoint_update_params.rbi +59 -0
  47. data/rbi/orb/models/webhook_endpoint_with_secret.rbi +83 -0
  48. data/rbi/orb/models.rbi +24 -0
  49. data/rbi/orb/resources/alerts.rbi +59 -0
  50. data/rbi/orb/resources/dimensional_price_groups/prices.rbi +82 -0
  51. data/rbi/orb/resources/dimensional_price_groups.rbi +3 -0
  52. data/rbi/orb/resources/webhook_endpoints.rbi +116 -0
  53. data/rbi/orb/resources/webhooks.rbi +2 -0
  54. data/sig/orb/client.rbs +2 -0
  55. data/sig/orb/models/alert_create_for_plan_params.rbs +126 -0
  56. data/sig/orb/models/dimensional_price_groups/price_create_params.rbs +123 -0
  57. data/sig/orb/models/dimensional_price_groups/price_create_response.rbs +15 -0
  58. data/sig/orb/models/dimensional_price_groups/price_list_params.rbs +61 -0
  59. data/sig/orb/models/plan_created_webhook_event.rbs +72 -0
  60. data/sig/orb/models/plan_edited_webhook_event.rbs +116 -0
  61. data/sig/orb/models/tax_amount.rbs +31 -3
  62. data/sig/orb/models/unwrap_webhook_event.rbs +2 -0
  63. data/sig/orb/models/webhook_endpoint.rbs +40 -0
  64. data/sig/orb/models/webhook_endpoint_create_params.rbs +28 -0
  65. data/sig/orb/models/webhook_endpoint_delete_params.rbs +23 -0
  66. data/sig/orb/models/webhook_endpoint_disable_params.rbs +23 -0
  67. data/sig/orb/models/webhook_endpoint_enable_params.rbs +23 -0
  68. data/sig/orb/models/webhook_endpoint_list_params.rbs +30 -0
  69. data/sig/orb/models/webhook_endpoint_retrieve_params.rbs +23 -0
  70. data/sig/orb/models/webhook_endpoint_update_params.rbs +36 -0
  71. data/sig/orb/models/webhook_endpoint_with_secret.rbs +45 -0
  72. data/sig/orb/models.rbs +24 -0
  73. data/sig/orb/resources/alerts.rbs +12 -0
  74. data/sig/orb/resources/dimensional_price_groups/prices.rbs +28 -0
  75. data/sig/orb/resources/dimensional_price_groups.rbs +2 -0
  76. data/sig/orb/resources/webhook_endpoints.rbs +46 -0
  77. data/sig/orb/resources/webhooks.rbs +2 -0
  78. metadata +52 -1
@@ -0,0 +1,183 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Orb
4
+ module Resources
5
+ # A webhook endpoint is an HTTPS URL that Orb sends
6
+ # [webhook events](/integrations-and-exports/webhooks) to.
7
+ class WebhookEndpoints
8
+ # Some parameter documentations has been truncated, see
9
+ # {Orb::Models::WebhookEndpointCreateParams} for more details.
10
+ #
11
+ # This endpoint creates a webhook endpoint and returns the secret used to sign its
12
+ # webhook events. The secret isn't returned by any other endpoint. An account can
13
+ # have at most 20 webhook endpoints by default.
14
+ #
15
+ # @overload create(url:, enabled_event_types: nil, request_options: {})
16
+ #
17
+ # @param url [String] The HTTPS URL that Orb sends webhook events to.
18
+ #
19
+ # @param enabled_event_types [Array<String>, nil] The webhook event types to send to this endpoint. If omitted or null, all event
20
+ #
21
+ # @param request_options [Orb::RequestOptions, Hash{Symbol=>Object}, nil]
22
+ #
23
+ # @return [Orb::Models::WebhookEndpointWithSecret]
24
+ #
25
+ # @see Orb::Models::WebhookEndpointCreateParams
26
+ def create(params)
27
+ parsed, options = Orb::WebhookEndpointCreateParams.dump_request(params)
28
+ @client.request(
29
+ method: :post,
30
+ path: "webhook_endpoints",
31
+ body: parsed,
32
+ model: Orb::WebhookEndpointWithSecret,
33
+ options: options
34
+ )
35
+ end
36
+
37
+ # This endpoint returns a webhook endpoint identified by its ID.
38
+ #
39
+ # @overload retrieve(webhook_endpoint_id, request_options: {})
40
+ #
41
+ # @param webhook_endpoint_id [String]
42
+ # @param request_options [Orb::RequestOptions, Hash{Symbol=>Object}, nil]
43
+ #
44
+ # @return [Orb::Models::WebhookEndpoint]
45
+ #
46
+ # @see Orb::Models::WebhookEndpointRetrieveParams
47
+ def retrieve(webhook_endpoint_id, params = {})
48
+ @client.request(
49
+ method: :get,
50
+ path: ["webhook_endpoints/%1$s", webhook_endpoint_id],
51
+ model: Orb::WebhookEndpoint,
52
+ options: params[:request_options]
53
+ )
54
+ end
55
+
56
+ # Some parameter documentations has been truncated, see
57
+ # {Orb::Models::WebhookEndpointUpdateParams} for more details.
58
+ #
59
+ # This endpoint updates a webhook endpoint's URL or the event types sent to it.
60
+ #
61
+ # @overload update(webhook_endpoint_id, enabled_event_types: nil, url: nil, request_options: {})
62
+ #
63
+ # @param webhook_endpoint_id [String]
64
+ #
65
+ # @param enabled_event_types [Array<String>, nil] The webhook event types to send to this endpoint. Null sends all event types; om
66
+ #
67
+ # @param url [String, nil] The HTTPS URL that Orb sends webhook events to.
68
+ #
69
+ # @param request_options [Orb::RequestOptions, Hash{Symbol=>Object}, nil]
70
+ #
71
+ # @return [Orb::Models::WebhookEndpoint]
72
+ #
73
+ # @see Orb::Models::WebhookEndpointUpdateParams
74
+ def update(webhook_endpoint_id, params = {})
75
+ parsed, options = Orb::WebhookEndpointUpdateParams.dump_request(params)
76
+ @client.request(
77
+ method: :put,
78
+ path: ["webhook_endpoints/%1$s", webhook_endpoint_id],
79
+ body: parsed,
80
+ model: Orb::WebhookEndpoint,
81
+ options: options
82
+ )
83
+ end
84
+
85
+ # Some parameter documentations has been truncated, see
86
+ # {Orb::Models::WebhookEndpointListParams} for more details.
87
+ #
88
+ # This endpoint returns the account's webhook endpoints, ordered starting from the
89
+ # most recently created.
90
+ #
91
+ # @overload list(cursor: nil, limit: nil, request_options: {})
92
+ #
93
+ # @param cursor [String, nil] Cursor for pagination. This can be populated by the `next_cursor` value returned
94
+ #
95
+ # @param limit [Integer] The number of items to fetch. Defaults to 20.
96
+ #
97
+ # @param request_options [Orb::RequestOptions, Hash{Symbol=>Object}, nil]
98
+ #
99
+ # @return [Orb::Internal::Page<Orb::Models::WebhookEndpoint>]
100
+ #
101
+ # @see Orb::Models::WebhookEndpointListParams
102
+ def list(params = {})
103
+ parsed, options = Orb::WebhookEndpointListParams.dump_request(params)
104
+ query = Orb::Internal::Util.encode_query_params(parsed)
105
+ @client.request(
106
+ method: :get,
107
+ path: "webhook_endpoints",
108
+ query: query,
109
+ page: Orb::Internal::Page,
110
+ model: Orb::WebhookEndpoint,
111
+ options: options
112
+ )
113
+ end
114
+
115
+ # This endpoint deletes a webhook endpoint. Orb stops sending webhook events to it
116
+ # immediately.
117
+ #
118
+ # @overload delete(webhook_endpoint_id, request_options: {})
119
+ #
120
+ # @param webhook_endpoint_id [String]
121
+ # @param request_options [Orb::RequestOptions, Hash{Symbol=>Object}, nil]
122
+ #
123
+ # @return [nil]
124
+ #
125
+ # @see Orb::Models::WebhookEndpointDeleteParams
126
+ def delete(webhook_endpoint_id, params = {})
127
+ @client.request(
128
+ method: :delete,
129
+ path: ["webhook_endpoints/%1$s", webhook_endpoint_id],
130
+ model: NilClass,
131
+ options: params[:request_options]
132
+ )
133
+ end
134
+
135
+ # This endpoint disables a webhook endpoint, so Orb stops sending webhook events
136
+ # to it until it is enabled again.
137
+ #
138
+ # @overload disable(webhook_endpoint_id, request_options: {})
139
+ #
140
+ # @param webhook_endpoint_id [String]
141
+ # @param request_options [Orb::RequestOptions, Hash{Symbol=>Object}, nil]
142
+ #
143
+ # @return [Orb::Models::WebhookEndpoint]
144
+ #
145
+ # @see Orb::Models::WebhookEndpointDisableParams
146
+ def disable(webhook_endpoint_id, params = {})
147
+ @client.request(
148
+ method: :post,
149
+ path: ["webhook_endpoints/%1$s/disable", webhook_endpoint_id],
150
+ model: Orb::WebhookEndpoint,
151
+ options: params[:request_options]
152
+ )
153
+ end
154
+
155
+ # This endpoint enables a webhook endpoint, so Orb resumes sending webhook events
156
+ # to it.
157
+ #
158
+ # @overload enable(webhook_endpoint_id, request_options: {})
159
+ #
160
+ # @param webhook_endpoint_id [String]
161
+ # @param request_options [Orb::RequestOptions, Hash{Symbol=>Object}, nil]
162
+ #
163
+ # @return [Orb::Models::WebhookEndpoint]
164
+ #
165
+ # @see Orb::Models::WebhookEndpointEnableParams
166
+ def enable(webhook_endpoint_id, params = {})
167
+ @client.request(
168
+ method: :post,
169
+ path: ["webhook_endpoints/%1$s/enable", webhook_endpoint_id],
170
+ model: Orb::WebhookEndpoint,
171
+ options: params[:request_options]
172
+ )
173
+ end
174
+
175
+ # @api private
176
+ #
177
+ # @param client [Orb::Client]
178
+ def initialize(client:)
179
+ @client = client
180
+ end
181
+ end
182
+ end
183
+ end
@@ -5,7 +5,7 @@ module Orb
5
5
  class Webhooks
6
6
  # @param payload [String] The raw webhook payload as a string
7
7
  #
8
- # @return [Orb::Models::BackfillReflectedWebhookEvent, Orb::Models::BackfillRevertedWebhookEvent, Orb::Models::BillableMetricEditedWebhookEvent, Orb::Models::CreditBlockAccountingSyncFailedWebhookEvent, Orb::Models::CreditBlockAccountingSyncSucceededWebhookEvent, Orb::Models::CreditNoteAccountingSyncFailedWebhookEvent, Orb::Models::CreditNoteAccountingSyncSucceededWebhookEvent, Orb::Models::CreditNoteIssuedWebhookEvent, Orb::Models::CreditNoteMarkedAsVoidWebhookEvent, Orb::Models::CustomerAccountingSyncFailedWebhookEvent, Orb::Models::CustomerAccountingSyncSucceededWebhookEvent, Orb::Models::CustomerBalanceTransactionCreatedWebhookEvent, Orb::Models::CustomerCreatedWebhookEvent, Orb::Models::CustomerCreditBalanceDepletedWebhookEvent, Orb::Models::CustomerCreditBalanceDroppedWebhookEvent, Orb::Models::CustomerCreditBalanceRecoveredWebhookEvent, Orb::Models::CustomerCreditLedgerIncrementedWebhookEvent, Orb::Models::CustomerEditedWebhookEvent, Orb::Models::DataExportsTransferErrorWebhookEvent, Orb::Models::DataExportsTransferSuccessWebhookEvent, Orb::Models::EventUnmatchedEventWebhookEvent, Orb::Models::IngestionUnmatchedCustomerIDsWebhookEvent, Orb::Models::InvoiceAccountingSyncFailedWebhookEvent, Orb::Models::InvoiceAccountingSyncSucceededWebhookEvent, Orb::Models::InvoiceAutomationScheduleStepExecutedWebhookEvent, Orb::Models::InvoiceCostDataExportedWebhookEvent, Orb::Models::InvoiceDunningScheduleCreatedWebhookEvent, Orb::Models::InvoiceDunningScheduleEndedWebhookEvent, Orb::Models::InvoiceDunningScheduleResetWebhookEvent, Orb::Models::InvoiceDunningScheduleStepExecutedWebhookEvent, Orb::Models::InvoiceEditedWebhookEvent, Orb::Models::InvoiceInvoiceDateElapsedWebhookEvent, Orb::Models::InvoiceIssueFailedWebhookEvent, Orb::Models::InvoiceIssuedWebhookEvent, Orb::Models::InvoiceIssuedSummaryWebhookEvent, Orb::Models::InvoiceManuallyMarkedAsPaidWebhookEvent, Orb::Models::InvoiceManuallyMarkedAsVoidWebhookEvent, Orb::Models::InvoicePaymentFailedWebhookEvent, Orb::Models::InvoicePaymentProcessingWebhookEvent, Orb::Models::InvoicePaymentSucceededWebhookEvent, Orb::Models::InvoiceSyncFailedWebhookEvent, Orb::Models::InvoiceSyncSucceededWebhookEvent, Orb::Models::InvoiceUndoMarkAsPaidWebhookEvent, Orb::Models::InvoiceDueDateRecalculationCanceledWebhookEvent, Orb::Models::InvoiceDueDateRecalculationCompletedWebhookEvent, Orb::Models::InvoiceDueDateRecalculationStartedWebhookEvent, Orb::Models::MetricEventsDroppedByWatermarkWebhookEvent, Orb::Models::PaymentMethodCreatedWebhookEvent, Orb::Models::PaymentMethodDeletedWebhookEvent, Orb::Models::PlanDefaultVersionSetWebhookEvent, Orb::Models::PlanVersionCreatedWebhookEvent, Orb::Models::PriceEditedWebhookEvent, Orb::Models::ResourceEventTestWebhookEvent, Orb::Models::SalesOrderAccountingSyncFailedWebhookEvent, Orb::Models::SalesOrderAccountingSyncSucceededWebhookEvent, Orb::Models::SubscriptionAccountingSyncFailedWebhookEvent, Orb::Models::SubscriptionAccountingSyncSucceededWebhookEvent, Orb::Models::SubscriptionAlertDisabledWebhookEvent, Orb::Models::SubscriptionCancellationScheduledWebhookEvent, Orb::Models::SubscriptionCancellationUnscheduledWebhookEvent, Orb::Models::SubscriptionCostExceededWebhookEvent, Orb::Models::SubscriptionCreatedWebhookEvent, Orb::Models::SubscriptionEditedWebhookEvent, Orb::Models::SubscriptionEndedWebhookEvent, Orb::Models::SubscriptionFixedFeeQuantityUpdatedWebhookEvent, Orb::Models::SubscriptionGroupedCostExceededWebhookEvent, Orb::Models::SubscriptionInvoicingThresholdExceededWebhookEvent, Orb::Models::SubscriptionLicenseAllocationResetWebhookEvent, Orb::Models::SubscriptionLicenseBalanceThresholdReachedWebhookEvent, Orb::Models::SubscriptionPlanChangeScheduledWebhookEvent, Orb::Models::SubscriptionPlanChangedWebhookEvent, Orb::Models::SubscriptionPlanVersionChangeScheduledWebhookEvent, Orb::Models::SubscriptionPlanVersionChangedWebhookEvent, Orb::Models::SubscriptionSpendExceededWebhookEvent, Orb::Models::SubscriptionStartedWebhookEvent, Orb::Models::SubscriptionTrialEndedWebhookEvent, Orb::Models::SubscriptionUsageExceededWebhookEvent, Orb::Models::TransactionAccountingSyncFailedWebhookEvent, Orb::Models::TransactionAccountingSyncSucceededWebhookEvent]
8
+ # @return [Orb::Models::BackfillReflectedWebhookEvent, Orb::Models::BackfillRevertedWebhookEvent, Orb::Models::BillableMetricEditedWebhookEvent, Orb::Models::CreditBlockAccountingSyncFailedWebhookEvent, Orb::Models::CreditBlockAccountingSyncSucceededWebhookEvent, Orb::Models::CreditNoteAccountingSyncFailedWebhookEvent, Orb::Models::CreditNoteAccountingSyncSucceededWebhookEvent, Orb::Models::CreditNoteIssuedWebhookEvent, Orb::Models::CreditNoteMarkedAsVoidWebhookEvent, Orb::Models::CustomerAccountingSyncFailedWebhookEvent, Orb::Models::CustomerAccountingSyncSucceededWebhookEvent, Orb::Models::CustomerBalanceTransactionCreatedWebhookEvent, Orb::Models::CustomerCreatedWebhookEvent, Orb::Models::CustomerCreditBalanceDepletedWebhookEvent, Orb::Models::CustomerCreditBalanceDroppedWebhookEvent, Orb::Models::CustomerCreditBalanceRecoveredWebhookEvent, Orb::Models::CustomerCreditLedgerIncrementedWebhookEvent, Orb::Models::CustomerEditedWebhookEvent, Orb::Models::DataExportsTransferErrorWebhookEvent, Orb::Models::DataExportsTransferSuccessWebhookEvent, Orb::Models::EventUnmatchedEventWebhookEvent, Orb::Models::IngestionUnmatchedCustomerIDsWebhookEvent, Orb::Models::InvoiceAccountingSyncFailedWebhookEvent, Orb::Models::InvoiceAccountingSyncSucceededWebhookEvent, Orb::Models::InvoiceAutomationScheduleStepExecutedWebhookEvent, Orb::Models::InvoiceCostDataExportedWebhookEvent, Orb::Models::InvoiceDunningScheduleCreatedWebhookEvent, Orb::Models::InvoiceDunningScheduleEndedWebhookEvent, Orb::Models::InvoiceDunningScheduleResetWebhookEvent, Orb::Models::InvoiceDunningScheduleStepExecutedWebhookEvent, Orb::Models::InvoiceEditedWebhookEvent, Orb::Models::InvoiceInvoiceDateElapsedWebhookEvent, Orb::Models::InvoiceIssueFailedWebhookEvent, Orb::Models::InvoiceIssuedWebhookEvent, Orb::Models::InvoiceIssuedSummaryWebhookEvent, Orb::Models::InvoiceManuallyMarkedAsPaidWebhookEvent, Orb::Models::InvoiceManuallyMarkedAsVoidWebhookEvent, Orb::Models::InvoicePaymentFailedWebhookEvent, Orb::Models::InvoicePaymentProcessingWebhookEvent, Orb::Models::InvoicePaymentSucceededWebhookEvent, Orb::Models::InvoiceSyncFailedWebhookEvent, Orb::Models::InvoiceSyncSucceededWebhookEvent, Orb::Models::InvoiceUndoMarkAsPaidWebhookEvent, Orb::Models::InvoiceDueDateRecalculationCanceledWebhookEvent, Orb::Models::InvoiceDueDateRecalculationCompletedWebhookEvent, Orb::Models::InvoiceDueDateRecalculationStartedWebhookEvent, Orb::Models::MetricEventsDroppedByWatermarkWebhookEvent, Orb::Models::PaymentMethodCreatedWebhookEvent, Orb::Models::PaymentMethodDeletedWebhookEvent, Orb::Models::PlanCreatedWebhookEvent, Orb::Models::PlanDefaultVersionSetWebhookEvent, Orb::Models::PlanEditedWebhookEvent, Orb::Models::PlanVersionCreatedWebhookEvent, Orb::Models::PriceEditedWebhookEvent, Orb::Models::ResourceEventTestWebhookEvent, Orb::Models::SalesOrderAccountingSyncFailedWebhookEvent, Orb::Models::SalesOrderAccountingSyncSucceededWebhookEvent, Orb::Models::SubscriptionAccountingSyncFailedWebhookEvent, Orb::Models::SubscriptionAccountingSyncSucceededWebhookEvent, Orb::Models::SubscriptionAlertDisabledWebhookEvent, Orb::Models::SubscriptionCancellationScheduledWebhookEvent, Orb::Models::SubscriptionCancellationUnscheduledWebhookEvent, Orb::Models::SubscriptionCostExceededWebhookEvent, Orb::Models::SubscriptionCreatedWebhookEvent, Orb::Models::SubscriptionEditedWebhookEvent, Orb::Models::SubscriptionEndedWebhookEvent, Orb::Models::SubscriptionFixedFeeQuantityUpdatedWebhookEvent, Orb::Models::SubscriptionGroupedCostExceededWebhookEvent, Orb::Models::SubscriptionInvoicingThresholdExceededWebhookEvent, Orb::Models::SubscriptionLicenseAllocationResetWebhookEvent, Orb::Models::SubscriptionLicenseBalanceThresholdReachedWebhookEvent, Orb::Models::SubscriptionPlanChangeScheduledWebhookEvent, Orb::Models::SubscriptionPlanChangedWebhookEvent, Orb::Models::SubscriptionPlanVersionChangeScheduledWebhookEvent, Orb::Models::SubscriptionPlanVersionChangedWebhookEvent, Orb::Models::SubscriptionSpendExceededWebhookEvent, Orb::Models::SubscriptionStartedWebhookEvent, Orb::Models::SubscriptionTrialEndedWebhookEvent, Orb::Models::SubscriptionUsageExceededWebhookEvent, Orb::Models::TransactionAccountingSyncFailedWebhookEvent, Orb::Models::TransactionAccountingSyncSucceededWebhookEvent]
9
9
  def unwrap(payload)
10
10
  parsed = JSON.parse(payload, symbolize_names: true)
11
11
  Orb::Internal::Type::Converter.coerce(Orb::Models::UnwrapWebhookEvent, parsed)
data/lib/orb/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Orb
4
- VERSION = "1.43.0"
4
+ VERSION = "1.44.0"
5
5
  end
data/lib/orb.rb CHANGED
@@ -61,6 +61,7 @@ require_relative "orb/models/aggregated_cost"
61
61
  require_relative "orb/models/alert"
62
62
  require_relative "orb/models/alert_create_for_customer_params"
63
63
  require_relative "orb/models/alert_create_for_external_customer_params"
64
+ require_relative "orb/models/alert_create_for_plan_params"
64
65
  require_relative "orb/models/alert_create_for_subscription_params"
65
66
  require_relative "orb/models/alert_delete_params"
66
67
  require_relative "orb/models/alert_disable_params"
@@ -190,6 +191,9 @@ require_relative "orb/models/dimensional_price_group_list_params"
190
191
  require_relative "orb/models/dimensional_price_group_retrieve_params"
191
192
  require_relative "orb/models/dimensional_price_groups/external_dimensional_price_group_id_retrieve_params"
192
193
  require_relative "orb/models/dimensional_price_groups/external_dimensional_price_group_id_update_params"
194
+ require_relative "orb/models/dimensional_price_groups/price_create_params"
195
+ require_relative "orb/models/dimensional_price_groups/price_create_response"
196
+ require_relative "orb/models/dimensional_price_groups/price_list_params"
193
197
  require_relative "orb/models/dimensional_price_groups"
194
198
  require_relative "orb/models/dimensional_price_group_update_params"
195
199
  require_relative "orb/models/discount"
@@ -411,8 +415,10 @@ require_relative "orb/models/percentage_discount"
411
415
  require_relative "orb/models/percentage_discount_interval"
412
416
  require_relative "orb/models/per_price_cost"
413
417
  require_relative "orb/models/plan"
418
+ require_relative "orb/models/plan_created_webhook_event"
414
419
  require_relative "orb/models/plan_create_params"
415
420
  require_relative "orb/models/plan_default_version_set_webhook_event"
421
+ require_relative "orb/models/plan_edited_webhook_event"
416
422
  require_relative "orb/models/plan_fetch_params"
417
423
  require_relative "orb/models/plan_list_params"
418
424
  require_relative "orb/models/plan_phase_amount_discount_adjustment"
@@ -523,6 +529,15 @@ require_relative "orb/models/unit_conversion_rate_config"
523
529
  require_relative "orb/models/unwrap_webhook_event"
524
530
  require_relative "orb/models/usage_discount"
525
531
  require_relative "orb/models/usage_discount_interval"
532
+ require_relative "orb/models/webhook_endpoint"
533
+ require_relative "orb/models/webhook_endpoint_create_params"
534
+ require_relative "orb/models/webhook_endpoint_delete_params"
535
+ require_relative "orb/models/webhook_endpoint_disable_params"
536
+ require_relative "orb/models/webhook_endpoint_enable_params"
537
+ require_relative "orb/models/webhook_endpoint_list_params"
538
+ require_relative "orb/models/webhook_endpoint_retrieve_params"
539
+ require_relative "orb/models/webhook_endpoint_update_params"
540
+ require_relative "orb/models/webhook_endpoint_with_secret"
526
541
  require_relative "orb/models/webhook_unwrap_params"
527
542
  require_relative "orb/models"
528
543
  require_relative "orb/resources/alerts"
@@ -540,6 +555,7 @@ require_relative "orb/resources/customers/credits/ledger"
540
555
  require_relative "orb/resources/customers/credits/top_ups"
541
556
  require_relative "orb/resources/dimensional_price_groups"
542
557
  require_relative "orb/resources/dimensional_price_groups/external_dimensional_price_group_id"
558
+ require_relative "orb/resources/dimensional_price_groups/prices"
543
559
  require_relative "orb/resources/events"
544
560
  require_relative "orb/resources/events/backfills"
545
561
  require_relative "orb/resources/events/volume"
@@ -559,4 +575,5 @@ require_relative "orb/resources/prices/external_price_id"
559
575
  require_relative "orb/resources/subscription_changes"
560
576
  require_relative "orb/resources/subscriptions"
561
577
  require_relative "orb/resources/top_level"
578
+ require_relative "orb/resources/webhook_endpoints"
562
579
  require_relative "orb/resources/webhooks"
data/rbi/orb/client.rbi CHANGED
@@ -91,6 +91,11 @@ module Orb
91
91
  sig { returns(Orb::Resources::Items) }
92
92
  attr_reader :items
93
93
 
94
+ # A webhook endpoint is an HTTPS URL that Orb sends
95
+ # [webhook events](/integrations-and-exports/webhooks) to.
96
+ sig { returns(Orb::Resources::WebhookEndpoints) }
97
+ attr_reader :webhook_endpoints
98
+
94
99
  # The Metric resource represents a calculation of a quantity based on events.
95
100
  # Metrics are defined by the query that transforms raw usage events into
96
101
  # meaningful values for your customers.
@@ -0,0 +1,290 @@
1
+ # typed: strong
2
+
3
+ module Orb
4
+ module Models
5
+ class AlertCreateForPlanParams < Orb::Internal::Type::BaseModel
6
+ extend Orb::Internal::Type::RequestParameters::Converter
7
+ include Orb::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Orb::AlertCreateForPlanParams, Orb::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :plan_id
16
+
17
+ # The thresholds that define the values at which the alert will be triggered.
18
+ sig { returns(T::Array[Orb::Threshold]) }
19
+ attr_accessor :thresholds
20
+
21
+ # The type of alert to create. This must be a valid alert type.
22
+ sig { returns(Orb::AlertCreateForPlanParams::Type::OrSymbol) }
23
+ attr_accessor :type
24
+
25
+ # The case sensitive currency or custom pricing unit the alert is denominated in.
26
+ # Required for spend_exceeded alerts and when grouping_keys is set.
27
+ sig { returns(T.nilable(String)) }
28
+ attr_accessor :currency
29
+
30
+ # The property keys to group cost alerts by. Only applicable for cost_exceeded
31
+ # alerts.
32
+ sig { returns(T.nilable(T::Array[String])) }
33
+ attr_accessor :grouping_keys
34
+
35
+ # The metric to track usage for.
36
+ sig { returns(T.nilable(String)) }
37
+ attr_accessor :metric_id
38
+
39
+ # The plan version to create alerts for. If not specified, the default will be the
40
+ # plan's active plan version.
41
+ sig { returns(T.nilable(Integer)) }
42
+ attr_accessor :plan_version
43
+
44
+ # Filters to scope which prices are included in alert evaluation. Supports
45
+ # filtering by price_id, item_id, or price_type with includes/excludes operators.
46
+ # Only applicable to spend_exceeded alerts and to cost_exceeded alerts with
47
+ # grouping_keys set.
48
+ sig do
49
+ returns(T.nilable(T::Array[Orb::AlertCreateForPlanParams::PriceFilter]))
50
+ end
51
+ attr_accessor :price_filters
52
+
53
+ sig do
54
+ params(
55
+ plan_id: String,
56
+ thresholds: T::Array[Orb::Threshold::OrHash],
57
+ type: Orb::AlertCreateForPlanParams::Type::OrSymbol,
58
+ currency: T.nilable(String),
59
+ grouping_keys: T.nilable(T::Array[String]),
60
+ metric_id: T.nilable(String),
61
+ plan_version: T.nilable(Integer),
62
+ price_filters:
63
+ T.nilable(
64
+ T::Array[Orb::AlertCreateForPlanParams::PriceFilter::OrHash]
65
+ ),
66
+ request_options: Orb::RequestOptions::OrHash
67
+ ).returns(T.attached_class)
68
+ end
69
+ def self.new(
70
+ plan_id:,
71
+ # The thresholds that define the values at which the alert will be triggered.
72
+ thresholds:,
73
+ # The type of alert to create. This must be a valid alert type.
74
+ type:,
75
+ # The case sensitive currency or custom pricing unit the alert is denominated in.
76
+ # Required for spend_exceeded alerts and when grouping_keys is set.
77
+ currency: nil,
78
+ # The property keys to group cost alerts by. Only applicable for cost_exceeded
79
+ # alerts.
80
+ grouping_keys: nil,
81
+ # The metric to track usage for.
82
+ metric_id: nil,
83
+ # The plan version to create alerts for. If not specified, the default will be the
84
+ # plan's active plan version.
85
+ plan_version: nil,
86
+ # Filters to scope which prices are included in alert evaluation. Supports
87
+ # filtering by price_id, item_id, or price_type with includes/excludes operators.
88
+ # Only applicable to spend_exceeded alerts and to cost_exceeded alerts with
89
+ # grouping_keys set.
90
+ price_filters: nil,
91
+ request_options: {}
92
+ )
93
+ end
94
+
95
+ sig do
96
+ override.returns(
97
+ {
98
+ plan_id: String,
99
+ thresholds: T::Array[Orb::Threshold],
100
+ type: Orb::AlertCreateForPlanParams::Type::OrSymbol,
101
+ currency: T.nilable(String),
102
+ grouping_keys: T.nilable(T::Array[String]),
103
+ metric_id: T.nilable(String),
104
+ plan_version: T.nilable(Integer),
105
+ price_filters:
106
+ T.nilable(T::Array[Orb::AlertCreateForPlanParams::PriceFilter]),
107
+ request_options: Orb::RequestOptions
108
+ }
109
+ )
110
+ end
111
+ def to_hash
112
+ end
113
+
114
+ # The type of alert to create. This must be a valid alert type.
115
+ module Type
116
+ extend Orb::Internal::Type::Enum
117
+
118
+ TaggedSymbol =
119
+ T.type_alias { T.all(Symbol, Orb::AlertCreateForPlanParams::Type) }
120
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
121
+
122
+ USAGE_EXCEEDED =
123
+ T.let(
124
+ :usage_exceeded,
125
+ Orb::AlertCreateForPlanParams::Type::TaggedSymbol
126
+ )
127
+ COST_EXCEEDED =
128
+ T.let(
129
+ :cost_exceeded,
130
+ Orb::AlertCreateForPlanParams::Type::TaggedSymbol
131
+ )
132
+ SPEND_EXCEEDED =
133
+ T.let(
134
+ :spend_exceeded,
135
+ Orb::AlertCreateForPlanParams::Type::TaggedSymbol
136
+ )
137
+
138
+ sig do
139
+ override.returns(
140
+ T::Array[Orb::AlertCreateForPlanParams::Type::TaggedSymbol]
141
+ )
142
+ end
143
+ def self.values
144
+ end
145
+ end
146
+
147
+ class PriceFilter < Orb::Internal::Type::BaseModel
148
+ OrHash =
149
+ T.type_alias do
150
+ T.any(
151
+ Orb::AlertCreateForPlanParams::PriceFilter,
152
+ Orb::Internal::AnyHash
153
+ )
154
+ end
155
+
156
+ # The property of the price to filter on.
157
+ sig do
158
+ returns(Orb::AlertCreateForPlanParams::PriceFilter::Field::OrSymbol)
159
+ end
160
+ attr_accessor :field
161
+
162
+ # Should prices that match the filter be included or excluded.
163
+ sig do
164
+ returns(
165
+ Orb::AlertCreateForPlanParams::PriceFilter::Operator::OrSymbol
166
+ )
167
+ end
168
+ attr_accessor :operator
169
+
170
+ # The IDs or values that match this filter.
171
+ sig { returns(T::Array[String]) }
172
+ attr_accessor :values
173
+
174
+ sig do
175
+ params(
176
+ field: Orb::AlertCreateForPlanParams::PriceFilter::Field::OrSymbol,
177
+ operator:
178
+ Orb::AlertCreateForPlanParams::PriceFilter::Operator::OrSymbol,
179
+ values: T::Array[String]
180
+ ).returns(T.attached_class)
181
+ end
182
+ def self.new(
183
+ # The property of the price to filter on.
184
+ field:,
185
+ # Should prices that match the filter be included or excluded.
186
+ operator:,
187
+ # The IDs or values that match this filter.
188
+ values:
189
+ )
190
+ end
191
+
192
+ sig do
193
+ override.returns(
194
+ {
195
+ field:
196
+ Orb::AlertCreateForPlanParams::PriceFilter::Field::OrSymbol,
197
+ operator:
198
+ Orb::AlertCreateForPlanParams::PriceFilter::Operator::OrSymbol,
199
+ values: T::Array[String]
200
+ }
201
+ )
202
+ end
203
+ def to_hash
204
+ end
205
+
206
+ # The property of the price to filter on.
207
+ module Field
208
+ extend Orb::Internal::Type::Enum
209
+
210
+ TaggedSymbol =
211
+ T.type_alias do
212
+ T.all(Symbol, Orb::AlertCreateForPlanParams::PriceFilter::Field)
213
+ end
214
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
215
+
216
+ PRICE_ID =
217
+ T.let(
218
+ :price_id,
219
+ Orb::AlertCreateForPlanParams::PriceFilter::Field::TaggedSymbol
220
+ )
221
+ ITEM_ID =
222
+ T.let(
223
+ :item_id,
224
+ Orb::AlertCreateForPlanParams::PriceFilter::Field::TaggedSymbol
225
+ )
226
+ PRICE_TYPE =
227
+ T.let(
228
+ :price_type,
229
+ Orb::AlertCreateForPlanParams::PriceFilter::Field::TaggedSymbol
230
+ )
231
+ CURRENCY =
232
+ T.let(
233
+ :currency,
234
+ Orb::AlertCreateForPlanParams::PriceFilter::Field::TaggedSymbol
235
+ )
236
+ PRICING_UNIT_ID =
237
+ T.let(
238
+ :pricing_unit_id,
239
+ Orb::AlertCreateForPlanParams::PriceFilter::Field::TaggedSymbol
240
+ )
241
+
242
+ sig do
243
+ override.returns(
244
+ T::Array[
245
+ Orb::AlertCreateForPlanParams::PriceFilter::Field::TaggedSymbol
246
+ ]
247
+ )
248
+ end
249
+ def self.values
250
+ end
251
+ end
252
+
253
+ # Should prices that match the filter be included or excluded.
254
+ module Operator
255
+ extend Orb::Internal::Type::Enum
256
+
257
+ TaggedSymbol =
258
+ T.type_alias do
259
+ T.all(
260
+ Symbol,
261
+ Orb::AlertCreateForPlanParams::PriceFilter::Operator
262
+ )
263
+ end
264
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
265
+
266
+ INCLUDES =
267
+ T.let(
268
+ :includes,
269
+ Orb::AlertCreateForPlanParams::PriceFilter::Operator::TaggedSymbol
270
+ )
271
+ EXCLUDES =
272
+ T.let(
273
+ :excludes,
274
+ Orb::AlertCreateForPlanParams::PriceFilter::Operator::TaggedSymbol
275
+ )
276
+
277
+ sig do
278
+ override.returns(
279
+ T::Array[
280
+ Orb::AlertCreateForPlanParams::PriceFilter::Operator::TaggedSymbol
281
+ ]
282
+ )
283
+ end
284
+ def self.values
285
+ end
286
+ end
287
+ end
288
+ end
289
+ end
290
+ end