dodopayments 1.51.1 → 1.52.5

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 (101) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +1 -1
  4. data/lib/dodopayments/client.rb +8 -0
  5. data/lib/dodopayments/models/add_meter_to_price.rb +58 -0
  6. data/lib/dodopayments/models/event.rb +71 -0
  7. data/lib/dodopayments/models/event_input.rb +70 -0
  8. data/lib/dodopayments/models/invoices/payment_retrieve_refund_params.rb +16 -0
  9. data/lib/dodopayments/models/meter.rb +88 -0
  10. data/lib/dodopayments/models/meter_aggregation.rb +39 -0
  11. data/lib/dodopayments/models/meter_archive_params.rb +14 -0
  12. data/lib/dodopayments/models/meter_create_params.rb +62 -0
  13. data/lib/dodopayments/models/meter_filter.rb +482 -0
  14. data/lib/dodopayments/models/meter_list_params.rb +38 -0
  15. data/lib/dodopayments/models/{product_delete_params.rb → meter_retrieve_params.rb} +2 -2
  16. data/lib/dodopayments/models/meter_unarchive_params.rb +14 -0
  17. data/lib/dodopayments/models/payment.rb +10 -1
  18. data/lib/dodopayments/models/price.rb +122 -7
  19. data/lib/dodopayments/models/product.rb +2 -2
  20. data/lib/dodopayments/models/product_archive_params.rb +14 -0
  21. data/lib/dodopayments/models/product_create_params.rb +2 -2
  22. data/lib/dodopayments/models/product_list_response.rb +2 -2
  23. data/lib/dodopayments/models/product_update_params.rb +2 -2
  24. data/lib/dodopayments/models/subscription.rb +57 -1
  25. data/lib/dodopayments/models/subscription_retrieve_usage_history_params.rb +54 -0
  26. data/lib/dodopayments/models/subscription_retrieve_usage_history_response.rb +101 -0
  27. data/lib/dodopayments/models/usage_event_ingest_params.rb +22 -0
  28. data/lib/dodopayments/models/usage_event_ingest_response.rb +16 -0
  29. data/lib/dodopayments/models/usage_event_list_params.rb +75 -0
  30. data/lib/dodopayments/models/usage_event_retrieve_params.rb +14 -0
  31. data/lib/dodopayments/models.rb +32 -2
  32. data/lib/dodopayments/resources/invoices/payments.rb +18 -0
  33. data/lib/dodopayments/resources/meters.rb +123 -0
  34. data/lib/dodopayments/resources/products.rb +5 -5
  35. data/lib/dodopayments/resources/subscriptions.rb +74 -0
  36. data/lib/dodopayments/resources/usage_events.rb +193 -0
  37. data/lib/dodopayments/version.rb +1 -1
  38. data/lib/dodopayments.rb +21 -1
  39. data/rbi/dodopayments/client.rbi +6 -0
  40. data/rbi/dodopayments/models/add_meter_to_price.rbi +75 -0
  41. data/rbi/dodopayments/models/event.rbi +88 -0
  42. data/rbi/dodopayments/models/event_input.rbi +102 -0
  43. data/rbi/dodopayments/models/invoices/payment_retrieve_refund_params.rbi +34 -0
  44. data/rbi/dodopayments/models/meter.rbi +107 -0
  45. data/rbi/dodopayments/models/meter_aggregation.rbi +68 -0
  46. data/rbi/dodopayments/models/meter_archive_params.rbi +32 -0
  47. data/rbi/dodopayments/models/meter_create_params.rbi +92 -0
  48. data/rbi/dodopayments/models/meter_filter.rbi +1042 -0
  49. data/rbi/dodopayments/models/meter_list_params.rbi +68 -0
  50. data/rbi/dodopayments/models/{product_delete_params.rbi → meter_retrieve_params.rbi} +2 -2
  51. data/rbi/dodopayments/models/meter_unarchive_params.rbi +32 -0
  52. data/rbi/dodopayments/models/payment.rbi +10 -0
  53. data/rbi/dodopayments/models/price.rbi +153 -7
  54. data/rbi/dodopayments/models/product.rbi +2 -1
  55. data/rbi/dodopayments/models/product_archive_params.rbi +32 -0
  56. data/rbi/dodopayments/models/product_create_params.rbi +6 -3
  57. data/rbi/dodopayments/models/product_list_response.rbi +2 -1
  58. data/rbi/dodopayments/models/product_update_params.rbi +6 -3
  59. data/rbi/dodopayments/models/subscription.rbi +78 -0
  60. data/rbi/dodopayments/models/subscription_retrieve_usage_history_params.rbi +78 -0
  61. data/rbi/dodopayments/models/subscription_retrieve_usage_history_response.rbi +159 -0
  62. data/rbi/dodopayments/models/usage_event_ingest_params.rbi +46 -0
  63. data/rbi/dodopayments/models/usage_event_ingest_response.rbi +26 -0
  64. data/rbi/dodopayments/models/usage_event_list_params.rbi +119 -0
  65. data/rbi/dodopayments/models/usage_event_retrieve_params.rbi +32 -0
  66. data/rbi/dodopayments/models.rbi +33 -2
  67. data/rbi/dodopayments/resources/invoices/payments.rbi +9 -0
  68. data/rbi/dodopayments/resources/meters.rbi +102 -0
  69. data/rbi/dodopayments/resources/products.rbi +5 -3
  70. data/rbi/dodopayments/resources/subscriptions.rbi +74 -0
  71. data/rbi/dodopayments/resources/usage_events.rbi +175 -0
  72. data/sig/dodopayments/client.rbs +4 -0
  73. data/sig/dodopayments/models/add_meter_to_price.rbs +45 -0
  74. data/sig/dodopayments/models/event.rbs +53 -0
  75. data/sig/dodopayments/models/event_input.rbs +48 -0
  76. data/sig/dodopayments/models/invoices/payment_retrieve_refund_params.rbs +17 -0
  77. data/sig/dodopayments/models/meter.rbs +65 -0
  78. data/sig/dodopayments/models/meter_aggregation.rbs +35 -0
  79. data/sig/dodopayments/models/meter_archive_params.rbs +15 -0
  80. data/sig/dodopayments/models/meter_create_params.rbs +51 -0
  81. data/sig/dodopayments/models/meter_filter.rbs +417 -0
  82. data/sig/dodopayments/models/meter_list_params.rbs +38 -0
  83. data/sig/dodopayments/models/{product_delete_params.rbs → meter_retrieve_params.rbs} +2 -2
  84. data/sig/dodopayments/models/meter_unarchive_params.rbs +15 -0
  85. data/sig/dodopayments/models/payment.rbs +5 -0
  86. data/sig/dodopayments/models/price.rbs +88 -9
  87. data/sig/dodopayments/models/product_archive_params.rbs +15 -0
  88. data/sig/dodopayments/models/subscription.rbs +52 -0
  89. data/sig/dodopayments/models/subscription_retrieve_usage_history_params.rbs +46 -0
  90. data/sig/dodopayments/models/subscription_retrieve_usage_history_response.rbs +82 -0
  91. data/sig/dodopayments/models/usage_event_ingest_params.rbs +24 -0
  92. data/sig/dodopayments/models/usage_event_ingest_response.rbs +13 -0
  93. data/sig/dodopayments/models/usage_event_list_params.rbs +70 -0
  94. data/sig/dodopayments/models/usage_event_retrieve_params.rbs +15 -0
  95. data/sig/dodopayments/models.rbs +32 -2
  96. data/sig/dodopayments/resources/invoices/payments.rbs +5 -0
  97. data/sig/dodopayments/resources/meters.rbs +39 -0
  98. data/sig/dodopayments/resources/products.rbs +1 -1
  99. data/sig/dodopayments/resources/subscriptions.rbs +10 -0
  100. data/sig/dodopayments/resources/usage_events.rbs +28 -0
  101. metadata +65 -5
@@ -0,0 +1,175 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Resources
5
+ class UsageEvents
6
+ # Fetch detailed information about a single event using its unique event ID. This
7
+ # endpoint is useful for:
8
+ #
9
+ # - Debugging specific event ingestion issues
10
+ # - Retrieving event details for customer support
11
+ # - Validating that events were processed correctly
12
+ # - Getting the complete metadata for an event
13
+ #
14
+ # ## Event ID Format:
15
+ #
16
+ # The event ID should be the same value that was provided during event ingestion
17
+ # via the `/events/ingest` endpoint. Event IDs are case-sensitive and must match
18
+ # exactly.
19
+ #
20
+ # ## Response Details:
21
+ #
22
+ # The response includes all event data including:
23
+ #
24
+ # - Complete metadata key-value pairs
25
+ # - Original timestamp (preserved from ingestion)
26
+ # - Customer and business association
27
+ # - Event name and processing information
28
+ #
29
+ # ## Example Usage:
30
+ #
31
+ # ```text
32
+ # GET /events/api_call_12345
33
+ # ```
34
+ sig do
35
+ params(
36
+ event_id: String,
37
+ request_options: Dodopayments::RequestOptions::OrHash
38
+ ).returns(Dodopayments::Event)
39
+ end
40
+ def retrieve(
41
+ # Unique event identifier (case-sensitive, must match the ID used during
42
+ # ingestion)
43
+ event_id,
44
+ request_options: {}
45
+ )
46
+ end
47
+
48
+ # Fetch events from your account with powerful filtering capabilities. This
49
+ # endpoint is ideal for:
50
+ #
51
+ # - Debugging event ingestion issues
52
+ # - Analyzing customer usage patterns
53
+ # - Building custom analytics dashboards
54
+ # - Auditing billing-related events
55
+ #
56
+ # ## Filtering Options:
57
+ #
58
+ # - **Customer filtering**: Filter by specific customer ID
59
+ # - **Event name filtering**: Filter by event type/name
60
+ # - **Meter-based filtering**: Use a meter ID to apply the meter's event name and
61
+ # filter criteria automatically
62
+ # - **Time range filtering**: Filter events within a specific date range
63
+ # - **Pagination**: Navigate through large result sets
64
+ #
65
+ # ## Meter Integration:
66
+ #
67
+ # When using `meter_id`, the endpoint automatically applies:
68
+ #
69
+ # - The meter's configured `event_name` filter
70
+ # - The meter's custom filter criteria (if any)
71
+ # - If you also provide `event_name`, it must match the meter's event name
72
+ #
73
+ # ## Example Queries:
74
+ #
75
+ # - Get all events for a customer: `?customer_id=cus_abc123`
76
+ # - Get API request events: `?event_name=api_request`
77
+ # - Get events from last 24 hours:
78
+ # `?start=2024-01-14T10:30:00Z&end=2024-01-15T10:30:00Z`
79
+ # - Get events with meter filtering: `?meter_id=mtr_xyz789`
80
+ # - Paginate results: `?page_size=50&page_number=2`
81
+ sig do
82
+ params(
83
+ customer_id: String,
84
+ end_: Time,
85
+ event_name: String,
86
+ meter_id: String,
87
+ page_number: Integer,
88
+ page_size: Integer,
89
+ start: Time,
90
+ request_options: Dodopayments::RequestOptions::OrHash
91
+ ).returns(
92
+ Dodopayments::Internal::DefaultPageNumberPagination[
93
+ Dodopayments::Event
94
+ ]
95
+ )
96
+ end
97
+ def list(
98
+ # Filter events by customer ID
99
+ customer_id: nil,
100
+ # Filter events created before this timestamp
101
+ end_: nil,
102
+ # Filter events by event name. If both event_name and meter_id are provided, they
103
+ # must match the meter's configured event_name
104
+ event_name: nil,
105
+ # Filter events by meter ID. When provided, only events that match the meter's
106
+ # event_name and filter criteria will be returned
107
+ meter_id: nil,
108
+ # Page number (0-based, default: 0)
109
+ page_number: nil,
110
+ # Number of events to return per page (default: 10)
111
+ page_size: nil,
112
+ # Filter events created after this timestamp
113
+ start: nil,
114
+ request_options: {}
115
+ )
116
+ end
117
+
118
+ # This endpoint allows you to ingest custom events that can be used for:
119
+ #
120
+ # - Usage-based billing and metering
121
+ # - Analytics and reporting
122
+ # - Customer behavior tracking
123
+ #
124
+ # ## Important Notes:
125
+ #
126
+ # - **Duplicate Prevention**:
127
+ # - Duplicate `event_id` values within the same request are rejected (entire
128
+ # request fails)
129
+ # - Subsequent requests with existing `event_id` values are ignored (idempotent
130
+ # behavior)
131
+ # - **Rate Limiting**: Maximum 1000 events per request
132
+ # - **Time Validation**: Events with timestamps older than 1 hour or more than 5
133
+ # minutes in the future will be rejected
134
+ # - **Metadata Limits**: Maximum 50 key-value pairs per event, keys max 100 chars,
135
+ # values max 500 chars
136
+ #
137
+ # ## Example Usage:
138
+ #
139
+ # ```json
140
+ # {
141
+ # "events": [
142
+ # {
143
+ # "event_id": "api_call_12345",
144
+ # "customer_id": "cus_abc123",
145
+ # "event_name": "api_request",
146
+ # "timestamp": "2024-01-15T10:30:00Z",
147
+ # "metadata": {
148
+ # "endpoint": "/api/v1/users",
149
+ # "method": "GET",
150
+ # "tokens_used": "150"
151
+ # }
152
+ # }
153
+ # ]
154
+ # }
155
+ # ```
156
+ sig do
157
+ params(
158
+ events: T::Array[Dodopayments::EventInput::OrHash],
159
+ request_options: Dodopayments::RequestOptions::OrHash
160
+ ).returns(Dodopayments::Models::UsageEventIngestResponse)
161
+ end
162
+ def ingest(
163
+ # List of events to be pushed
164
+ events:,
165
+ request_options: {}
166
+ )
167
+ end
168
+
169
+ # @api private
170
+ sig { params(client: Dodopayments::Client).returns(T.attached_class) }
171
+ def self.new(client:)
172
+ end
173
+ end
174
+ end
175
+ end
@@ -51,6 +51,10 @@ module Dodopayments
51
51
 
52
52
  attr_reader webhooks: Dodopayments::Resources::Webhooks
53
53
 
54
+ attr_reader usage_events: Dodopayments::Resources::UsageEvents
55
+
56
+ attr_reader meters: Dodopayments::Resources::Meters
57
+
54
58
  private def auth_headers: -> ::Hash[String, String]
55
59
 
56
60
  def initialize: (
@@ -0,0 +1,45 @@
1
+ module Dodopayments
2
+ module Models
3
+ type add_meter_to_price =
4
+ {
5
+ meter_id: String,
6
+ price_per_unit: String,
7
+ description: String?,
8
+ free_threshold: Integer?,
9
+ measurement_unit: String?,
10
+ name: String?
11
+ }
12
+
13
+ class AddMeterToPrice < Dodopayments::Internal::Type::BaseModel
14
+ attr_accessor meter_id: String
15
+
16
+ attr_accessor price_per_unit: String
17
+
18
+ attr_accessor description: String?
19
+
20
+ attr_accessor free_threshold: Integer?
21
+
22
+ attr_accessor measurement_unit: String?
23
+
24
+ attr_accessor name: String?
25
+
26
+ def initialize: (
27
+ meter_id: String,
28
+ price_per_unit: String,
29
+ ?description: String?,
30
+ ?free_threshold: Integer?,
31
+ ?measurement_unit: String?,
32
+ ?name: String?
33
+ ) -> void
34
+
35
+ def to_hash: -> {
36
+ meter_id: String,
37
+ price_per_unit: String,
38
+ description: String?,
39
+ free_threshold: Integer?,
40
+ measurement_unit: String?,
41
+ name: String?
42
+ }
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,53 @@
1
+ module Dodopayments
2
+ module Models
3
+ type event =
4
+ {
5
+ business_id: String,
6
+ customer_id: String,
7
+ event_id: String,
8
+ event_name: String,
9
+ timestamp: Time,
10
+ metadata: ::Hash[Symbol, Dodopayments::Models::Event::metadata]?
11
+ }
12
+
13
+ class Event < Dodopayments::Internal::Type::BaseModel
14
+ attr_accessor business_id: String
15
+
16
+ attr_accessor customer_id: String
17
+
18
+ attr_accessor event_id: String
19
+
20
+ attr_accessor event_name: String
21
+
22
+ attr_accessor timestamp: Time
23
+
24
+ attr_accessor metadata: ::Hash[Symbol, Dodopayments::Models::Event::metadata]?
25
+
26
+ def initialize: (
27
+ business_id: String,
28
+ customer_id: String,
29
+ event_id: String,
30
+ event_name: String,
31
+ timestamp: Time,
32
+ ?metadata: ::Hash[Symbol, Dodopayments::Models::Event::metadata]?
33
+ ) -> void
34
+
35
+ def to_hash: -> {
36
+ business_id: String,
37
+ customer_id: String,
38
+ event_id: String,
39
+ event_name: String,
40
+ timestamp: Time,
41
+ metadata: ::Hash[Symbol, Dodopayments::Models::Event::metadata]?
42
+ }
43
+
44
+ type metadata = String | Float | bool
45
+
46
+ module Metadata
47
+ extend Dodopayments::Internal::Type::Union
48
+
49
+ def self?.variants: -> ::Array[Dodopayments::Models::Event::metadata]
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,48 @@
1
+ module Dodopayments
2
+ module Models
3
+ type event_input =
4
+ {
5
+ customer_id: String,
6
+ event_id: String,
7
+ event_name: String,
8
+ metadata: ::Hash[Symbol, Dodopayments::Models::EventInput::metadata]?,
9
+ timestamp: Time?
10
+ }
11
+
12
+ class EventInput < Dodopayments::Internal::Type::BaseModel
13
+ attr_accessor customer_id: String
14
+
15
+ attr_accessor event_id: String
16
+
17
+ attr_accessor event_name: String
18
+
19
+ attr_accessor metadata: ::Hash[Symbol, Dodopayments::Models::EventInput::metadata]?
20
+
21
+ attr_accessor timestamp: Time?
22
+
23
+ def initialize: (
24
+ customer_id: String,
25
+ event_id: String,
26
+ event_name: String,
27
+ ?metadata: ::Hash[Symbol, Dodopayments::Models::EventInput::metadata]?,
28
+ ?timestamp: Time?
29
+ ) -> void
30
+
31
+ def to_hash: -> {
32
+ customer_id: String,
33
+ event_id: String,
34
+ event_name: String,
35
+ metadata: ::Hash[Symbol, Dodopayments::Models::EventInput::metadata]?,
36
+ timestamp: Time?
37
+ }
38
+
39
+ type metadata = String | Float | bool
40
+
41
+ module Metadata
42
+ extend Dodopayments::Internal::Type::Union
43
+
44
+ def self?.variants: -> ::Array[Dodopayments::Models::EventInput::metadata]
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,17 @@
1
+ module Dodopayments
2
+ module Models
3
+ module Invoices
4
+ type payment_retrieve_refund_params =
5
+ { } & Dodopayments::Internal::Type::request_parameters
6
+
7
+ class PaymentRetrieveRefundParams < Dodopayments::Internal::Type::BaseModel
8
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
9
+ include Dodopayments::Internal::Type::RequestParameters
10
+
11
+ def initialize: (?request_options: Dodopayments::request_opts) -> void
12
+
13
+ def to_hash: -> { request_options: Dodopayments::RequestOptions }
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,65 @@
1
+ module Dodopayments
2
+ module Models
3
+ type meter =
4
+ {
5
+ id: String,
6
+ aggregation: Dodopayments::MeterAggregation,
7
+ business_id: String,
8
+ created_at: Time,
9
+ event_name: String,
10
+ measurement_unit: String,
11
+ name: String,
12
+ updated_at: Time,
13
+ description: String?,
14
+ filter: Dodopayments::MeterFilter?
15
+ }
16
+
17
+ class Meter < Dodopayments::Internal::Type::BaseModel
18
+ attr_accessor id: String
19
+
20
+ attr_accessor aggregation: Dodopayments::MeterAggregation
21
+
22
+ attr_accessor business_id: String
23
+
24
+ attr_accessor created_at: Time
25
+
26
+ attr_accessor event_name: String
27
+
28
+ attr_accessor measurement_unit: String
29
+
30
+ attr_accessor name: String
31
+
32
+ attr_accessor updated_at: Time
33
+
34
+ attr_accessor description: String?
35
+
36
+ attr_accessor filter: Dodopayments::MeterFilter?
37
+
38
+ def initialize: (
39
+ id: String,
40
+ aggregation: Dodopayments::MeterAggregation,
41
+ business_id: String,
42
+ created_at: Time,
43
+ event_name: String,
44
+ measurement_unit: String,
45
+ name: String,
46
+ updated_at: Time,
47
+ ?description: String?,
48
+ ?filter: Dodopayments::MeterFilter?
49
+ ) -> void
50
+
51
+ def to_hash: -> {
52
+ id: String,
53
+ aggregation: Dodopayments::MeterAggregation,
54
+ business_id: String,
55
+ created_at: Time,
56
+ event_name: String,
57
+ measurement_unit: String,
58
+ name: String,
59
+ updated_at: Time,
60
+ description: String?,
61
+ filter: Dodopayments::MeterFilter?
62
+ }
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,35 @@
1
+ module Dodopayments
2
+ module Models
3
+ type meter_aggregation =
4
+ { type: Dodopayments::Models::MeterAggregation::type_, key: String? }
5
+
6
+ class MeterAggregation < Dodopayments::Internal::Type::BaseModel
7
+ attr_accessor type: Dodopayments::Models::MeterAggregation::type_
8
+
9
+ attr_accessor key: String?
10
+
11
+ def initialize: (
12
+ type: Dodopayments::Models::MeterAggregation::type_,
13
+ ?key: String?
14
+ ) -> void
15
+
16
+ def to_hash: -> {
17
+ type: Dodopayments::Models::MeterAggregation::type_,
18
+ key: String?
19
+ }
20
+
21
+ type type_ = :count | :sum | :max | :last
22
+
23
+ module Type
24
+ extend Dodopayments::Internal::Type::Enum
25
+
26
+ COUNT: :count
27
+ SUM: :sum
28
+ MAX: :max
29
+ LAST: :last
30
+
31
+ def self?.values: -> ::Array[Dodopayments::Models::MeterAggregation::type_]
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,15 @@
1
+ module Dodopayments
2
+ module Models
3
+ type meter_archive_params =
4
+ { } & Dodopayments::Internal::Type::request_parameters
5
+
6
+ class MeterArchiveParams < Dodopayments::Internal::Type::BaseModel
7
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
8
+ include Dodopayments::Internal::Type::RequestParameters
9
+
10
+ def initialize: (?request_options: Dodopayments::request_opts) -> void
11
+
12
+ def to_hash: -> { request_options: Dodopayments::RequestOptions }
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,51 @@
1
+ module Dodopayments
2
+ module Models
3
+ type meter_create_params =
4
+ {
5
+ aggregation: Dodopayments::MeterAggregation,
6
+ event_name: String,
7
+ measurement_unit: String,
8
+ name: String,
9
+ description: String?,
10
+ filter: Dodopayments::MeterFilter?
11
+ }
12
+ & Dodopayments::Internal::Type::request_parameters
13
+
14
+ class MeterCreateParams < Dodopayments::Internal::Type::BaseModel
15
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
16
+ include Dodopayments::Internal::Type::RequestParameters
17
+
18
+ attr_accessor aggregation: Dodopayments::MeterAggregation
19
+
20
+ attr_accessor event_name: String
21
+
22
+ attr_accessor measurement_unit: String
23
+
24
+ attr_accessor name: String
25
+
26
+ attr_accessor description: String?
27
+
28
+ attr_accessor filter: Dodopayments::MeterFilter?
29
+
30
+ def initialize: (
31
+ aggregation: Dodopayments::MeterAggregation,
32
+ event_name: String,
33
+ measurement_unit: String,
34
+ name: String,
35
+ ?description: String?,
36
+ ?filter: Dodopayments::MeterFilter?,
37
+ ?request_options: Dodopayments::request_opts
38
+ ) -> void
39
+
40
+ def to_hash: -> {
41
+ aggregation: Dodopayments::MeterAggregation,
42
+ event_name: String,
43
+ measurement_unit: String,
44
+ name: String,
45
+ description: String?,
46
+ filter: Dodopayments::MeterFilter?,
47
+ request_options: Dodopayments::RequestOptions
48
+ }
49
+ end
50
+ end
51
+ end