openmeter 1.0.0b54__py3-none-any.whl → 2.0.0__py3-none-any.whl

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.

Potentially problematic release.


This version of openmeter might be problematic. Click here for more details.

Files changed (132) hide show
  1. openmeter/__init__.py +89 -15
  2. openmeter/_base_client.py +2041 -0
  3. openmeter/_client.py +518 -70
  4. openmeter/_compat.py +221 -0
  5. openmeter/_constants.py +14 -0
  6. openmeter/_exceptions.py +108 -0
  7. openmeter/_files.py +127 -0
  8. openmeter/_models.py +777 -0
  9. openmeter/_qs.py +150 -0
  10. openmeter/_resource.py +43 -0
  11. openmeter/_response.py +820 -0
  12. openmeter/_streaming.py +333 -0
  13. openmeter/_types.py +222 -0
  14. openmeter/_utils/__init__.py +56 -0
  15. openmeter/_utils/_logs.py +25 -0
  16. openmeter/_utils/_proxy.py +63 -0
  17. openmeter/_utils/_reflection.py +42 -0
  18. openmeter/_utils/_streams.py +12 -0
  19. openmeter/_utils/_sync.py +81 -0
  20. openmeter/_utils/_transform.py +387 -0
  21. openmeter/_utils/_typing.py +120 -0
  22. openmeter/_utils/_utils.py +419 -0
  23. openmeter/_version.py +4 -0
  24. openmeter/lib/.keep +4 -0
  25. openmeter/py.typed +0 -1
  26. openmeter/resources/__init__.py +103 -0
  27. openmeter/resources/debug/__init__.py +33 -0
  28. openmeter/resources/debug/debug.py +102 -0
  29. openmeter/resources/debug/metrics.py +146 -0
  30. openmeter/resources/entitlements/__init__.py +47 -0
  31. openmeter/resources/entitlements/entitlements.py +450 -0
  32. openmeter/resources/entitlements/features.py +578 -0
  33. openmeter/resources/entitlements/grants.py +389 -0
  34. openmeter/resources/events.py +442 -0
  35. openmeter/resources/meters/__init__.py +33 -0
  36. openmeter/resources/meters/meters.py +666 -0
  37. openmeter/resources/meters/subjects.py +163 -0
  38. openmeter/resources/notifications/__init__.py +75 -0
  39. openmeter/resources/notifications/channels.py +686 -0
  40. openmeter/resources/notifications/events.py +365 -0
  41. openmeter/resources/notifications/notifications.py +198 -0
  42. openmeter/resources/notifications/rules.py +781 -0
  43. openmeter/resources/notifications/webhook.py +208 -0
  44. openmeter/resources/portal/__init__.py +47 -0
  45. openmeter/resources/portal/meters.py +230 -0
  46. openmeter/resources/portal/portal.py +112 -0
  47. openmeter/resources/portal/tokens.py +359 -0
  48. openmeter/resources/subjects/entitlements/__init__.py +33 -0
  49. openmeter/resources/subjects/entitlements/entitlements.py +1881 -0
  50. openmeter/resources/subjects/entitlements/grants.py +453 -0
  51. openmeter/resources/subjects.py +419 -0
  52. openmeter/types/__init__.py +21 -0
  53. openmeter/types/debug/__init__.py +5 -0
  54. openmeter/types/debug/metric_list_response.py +7 -0
  55. openmeter/types/entitlement.py +238 -0
  56. openmeter/types/entitlements/__init__.py +11 -0
  57. openmeter/types/entitlements/feature.py +61 -0
  58. openmeter/types/entitlements/feature_create_params.py +43 -0
  59. openmeter/types/entitlements/feature_list_params.py +23 -0
  60. openmeter/types/entitlements/grant_list_params.py +57 -0
  61. openmeter/types/entitlements/grant_list_response.py +11 -0
  62. openmeter/types/entitlements/grant_paginated_response.py +24 -0
  63. openmeter/types/entitlements/list_features_result.py +28 -0
  64. openmeter/types/event_ingest_params.py +46 -0
  65. openmeter/types/event_ingest_response.py +43 -0
  66. openmeter/types/event_list_params.py +22 -0
  67. openmeter/types/event_list_response.py +9 -0
  68. openmeter/types/ingested_event.py +59 -0
  69. openmeter/types/list_entitlements_result.py +28 -0
  70. openmeter/types/meter.py +53 -0
  71. openmeter/types/meter_create_params.py +50 -0
  72. openmeter/types/meter_list_response.py +9 -0
  73. openmeter/types/meter_query_params.py +50 -0
  74. openmeter/types/meter_query_result.py +35 -0
  75. openmeter/types/meters/__init__.py +5 -0
  76. openmeter/types/meters/subject_list_response.py +8 -0
  77. openmeter/types/notifications/__init__.py +18 -0
  78. openmeter/types/notifications/channel_create_params.py +34 -0
  79. openmeter/types/notifications/channel_list_params.py +41 -0
  80. openmeter/types/notifications/channel_list_response.py +24 -0
  81. openmeter/types/notifications/channel_update_params.py +34 -0
  82. openmeter/types/notifications/event_list_params.py +61 -0
  83. openmeter/types/notifications/event_list_response.py +24 -0
  84. openmeter/types/notifications/notification_channel.py +47 -0
  85. openmeter/types/notifications/notification_event.py +215 -0
  86. openmeter/types/notifications/notification_rule.py +70 -0
  87. openmeter/types/notifications/rule_create_params.py +39 -0
  88. openmeter/types/notifications/rule_list_params.py +54 -0
  89. openmeter/types/notifications/rule_list_response.py +24 -0
  90. openmeter/types/notifications/rule_update_params.py +39 -0
  91. openmeter/types/notifications/webhook_svix_params.py +26 -0
  92. openmeter/types/portal/__init__.py +10 -0
  93. openmeter/types/portal/meter_query_params.py +44 -0
  94. openmeter/types/portal/portal_token.py +28 -0
  95. openmeter/types/portal/token_create_params.py +17 -0
  96. openmeter/types/portal/token_invalidate_params.py +15 -0
  97. openmeter/types/portal/token_list_params.py +12 -0
  98. openmeter/types/portal/token_list_response.py +9 -0
  99. openmeter/types/shared/__init__.py +3 -0
  100. openmeter/types/subject.py +37 -0
  101. openmeter/types/subject_list_response.py +9 -0
  102. openmeter/types/subject_param.py +27 -0
  103. openmeter/types/subject_upsert_params.py +39 -0
  104. openmeter/types/subject_upsert_response.py +10 -0
  105. openmeter/types/subjects/__init__.py +13 -0
  106. openmeter/types/subjects/entitlement_history_params.py +35 -0
  107. openmeter/types/subjects/entitlement_history_response.py +98 -0
  108. openmeter/types/subjects/entitlement_list_response.py +10 -0
  109. openmeter/types/subjects/entitlements/__init__.py +8 -0
  110. openmeter/types/subjects/entitlements/entitlement_grant.py +103 -0
  111. openmeter/types/subjects/entitlements/grant_list_response.py +10 -0
  112. openmeter-2.0.0.dist-info/METADATA +396 -0
  113. openmeter-2.0.0.dist-info/RECORD +115 -0
  114. {openmeter-1.0.0b54.dist-info → openmeter-2.0.0.dist-info}/WHEEL +1 -1
  115. openmeter-2.0.0.dist-info/licenses/LICENSE +201 -0
  116. openmeter/_configuration.py +0 -36
  117. openmeter/_operations/__init__.py +0 -17
  118. openmeter/_operations/_operations.py +0 -2105
  119. openmeter/_operations/_patch.py +0 -20
  120. openmeter/_patch.py +0 -20
  121. openmeter/_serialization.py +0 -2008
  122. openmeter/_vendor.py +0 -24
  123. openmeter/aio/__init__.py +0 -21
  124. openmeter/aio/_client.py +0 -83
  125. openmeter/aio/_configuration.py +0 -36
  126. openmeter/aio/_operations/__init__.py +0 -17
  127. openmeter/aio/_operations/_operations.py +0 -1778
  128. openmeter/aio/_operations/_patch.py +0 -20
  129. openmeter/aio/_patch.py +0 -20
  130. openmeter/aio/_vendor.py +0 -24
  131. openmeter-1.0.0b54.dist-info/METADATA +0 -92
  132. openmeter-1.0.0b54.dist-info/RECORD +0 -21
@@ -0,0 +1,365 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import List, Union
6
+ from datetime import datetime
7
+ from typing_extensions import Literal
8
+
9
+ import httpx
10
+
11
+ from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
12
+ from ..._utils import (
13
+ maybe_transform,
14
+ async_maybe_transform,
15
+ )
16
+ from ..._compat import cached_property
17
+ from ..._resource import SyncAPIResource, AsyncAPIResource
18
+ from ..._response import (
19
+ to_raw_response_wrapper,
20
+ to_streamed_response_wrapper,
21
+ async_to_raw_response_wrapper,
22
+ async_to_streamed_response_wrapper,
23
+ )
24
+ from ..._base_client import make_request_options
25
+ from ...types.notifications import event_list_params
26
+ from ...types.notifications.notification_event import NotificationEvent
27
+ from ...types.notifications.event_list_response import EventListResponse
28
+
29
+ __all__ = ["EventsResource", "AsyncEventsResource"]
30
+
31
+
32
+ class EventsResource(SyncAPIResource):
33
+ @cached_property
34
+ def with_raw_response(self) -> EventsResourceWithRawResponse:
35
+ """
36
+ This property can be used as a prefix for any HTTP method call to return the
37
+ the raw response object instead of the parsed content.
38
+
39
+ For more information, see https://www.github.com/openmeterio/openmeter-python#accessing-raw-response-data-eg-headers
40
+ """
41
+ return EventsResourceWithRawResponse(self)
42
+
43
+ @cached_property
44
+ def with_streaming_response(self) -> EventsResourceWithStreamingResponse:
45
+ """
46
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
47
+
48
+ For more information, see https://www.github.com/openmeterio/openmeter-python#with_streaming_response
49
+ """
50
+ return EventsResourceWithStreamingResponse(self)
51
+
52
+ def retrieve(
53
+ self,
54
+ event_id: str,
55
+ *,
56
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
57
+ # The extra values given here take precedence over values defined on the client or passed to this method.
58
+ extra_headers: Headers | None = None,
59
+ extra_query: Query | None = None,
60
+ extra_body: Body | None = None,
61
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
62
+ ) -> NotificationEvent:
63
+ """
64
+ Get a notification event by id.
65
+
66
+ Args:
67
+ extra_headers: Send extra headers
68
+
69
+ extra_query: Add additional query parameters to the request
70
+
71
+ extra_body: Add additional JSON properties to the request
72
+
73
+ timeout: Override the client-level default timeout for this request, in seconds
74
+ """
75
+ if not event_id:
76
+ raise ValueError(f"Expected a non-empty value for `event_id` but received {event_id!r}")
77
+ return self._get(
78
+ f"/api/v1/notification/events/{event_id}",
79
+ options=make_request_options(
80
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
81
+ ),
82
+ cast_to=NotificationEvent,
83
+ )
84
+
85
+ def list(
86
+ self,
87
+ *,
88
+ channel: List[str] | NotGiven = NOT_GIVEN,
89
+ feature: List[str] | NotGiven = NOT_GIVEN,
90
+ from_: Union[str, datetime] | NotGiven = NOT_GIVEN,
91
+ order: Literal["ASC", "DESC"] | NotGiven = NOT_GIVEN,
92
+ order_by: Literal["id", "createdAt"] | NotGiven = NOT_GIVEN,
93
+ page: int | NotGiven = NOT_GIVEN,
94
+ page_size: int | NotGiven = NOT_GIVEN,
95
+ rule: List[str] | NotGiven = NOT_GIVEN,
96
+ subject: List[str] | NotGiven = NOT_GIVEN,
97
+ to: Union[str, datetime] | NotGiven = NOT_GIVEN,
98
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
99
+ # The extra values given here take precedence over values defined on the client or passed to this method.
100
+ extra_headers: Headers | None = None,
101
+ extra_query: Query | None = None,
102
+ extra_body: Body | None = None,
103
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
104
+ ) -> EventListResponse:
105
+ """
106
+ List all notification events.
107
+
108
+ Args:
109
+ channel: Filtering by multiple channel ids.
110
+
111
+ Usage: `?channel=01J8J4RXH778XB056JS088PCYT&channel=01J8J4S1R1G9EVN62RG23A9M6J`
112
+
113
+ feature: Filtering by multiple feature ids or keys.
114
+
115
+ Usage: `?feature=feature-1&feature=feature-2`
116
+
117
+ from_: Start date-time in RFC 3339 format. Inclusive.
118
+
119
+ order: The order direction.
120
+
121
+ order_by: The order by field.
122
+
123
+ page: Start date-time in RFC 3339 format.
124
+
125
+ Inclusive.
126
+
127
+ page_size: Number of items per page.
128
+
129
+ Default is 100.
130
+
131
+ rule: Filtering by multiple rule ids.
132
+
133
+ Usage: `?rule=01J8J2XYZ2N5WBYK09EDZFBSZM&rule=01J8J4R4VZH180KRKQ63NB2VA5`
134
+
135
+ subject: Filtering by multiple subject ids or keys.
136
+
137
+ Usage: `?subject=subject-1&subject=subject-2`
138
+
139
+ to: End date-time in RFC 3339 format. Inclusive.
140
+
141
+ extra_headers: Send extra headers
142
+
143
+ extra_query: Add additional query parameters to the request
144
+
145
+ extra_body: Add additional JSON properties to the request
146
+
147
+ timeout: Override the client-level default timeout for this request, in seconds
148
+ """
149
+ return self._get(
150
+ "/api/v1/notification/events",
151
+ options=make_request_options(
152
+ extra_headers=extra_headers,
153
+ extra_query=extra_query,
154
+ extra_body=extra_body,
155
+ timeout=timeout,
156
+ query=maybe_transform(
157
+ {
158
+ "channel": channel,
159
+ "feature": feature,
160
+ "from_": from_,
161
+ "order": order,
162
+ "order_by": order_by,
163
+ "page": page,
164
+ "page_size": page_size,
165
+ "rule": rule,
166
+ "subject": subject,
167
+ "to": to,
168
+ },
169
+ event_list_params.EventListParams,
170
+ ),
171
+ ),
172
+ cast_to=EventListResponse,
173
+ )
174
+
175
+
176
+ class AsyncEventsResource(AsyncAPIResource):
177
+ @cached_property
178
+ def with_raw_response(self) -> AsyncEventsResourceWithRawResponse:
179
+ """
180
+ This property can be used as a prefix for any HTTP method call to return the
181
+ the raw response object instead of the parsed content.
182
+
183
+ For more information, see https://www.github.com/openmeterio/openmeter-python#accessing-raw-response-data-eg-headers
184
+ """
185
+ return AsyncEventsResourceWithRawResponse(self)
186
+
187
+ @cached_property
188
+ def with_streaming_response(self) -> AsyncEventsResourceWithStreamingResponse:
189
+ """
190
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
191
+
192
+ For more information, see https://www.github.com/openmeterio/openmeter-python#with_streaming_response
193
+ """
194
+ return AsyncEventsResourceWithStreamingResponse(self)
195
+
196
+ async def retrieve(
197
+ self,
198
+ event_id: str,
199
+ *,
200
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
201
+ # The extra values given here take precedence over values defined on the client or passed to this method.
202
+ extra_headers: Headers | None = None,
203
+ extra_query: Query | None = None,
204
+ extra_body: Body | None = None,
205
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
206
+ ) -> NotificationEvent:
207
+ """
208
+ Get a notification event by id.
209
+
210
+ Args:
211
+ extra_headers: Send extra headers
212
+
213
+ extra_query: Add additional query parameters to the request
214
+
215
+ extra_body: Add additional JSON properties to the request
216
+
217
+ timeout: Override the client-level default timeout for this request, in seconds
218
+ """
219
+ if not event_id:
220
+ raise ValueError(f"Expected a non-empty value for `event_id` but received {event_id!r}")
221
+ return await self._get(
222
+ f"/api/v1/notification/events/{event_id}",
223
+ options=make_request_options(
224
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
225
+ ),
226
+ cast_to=NotificationEvent,
227
+ )
228
+
229
+ async def list(
230
+ self,
231
+ *,
232
+ channel: List[str] | NotGiven = NOT_GIVEN,
233
+ feature: List[str] | NotGiven = NOT_GIVEN,
234
+ from_: Union[str, datetime] | NotGiven = NOT_GIVEN,
235
+ order: Literal["ASC", "DESC"] | NotGiven = NOT_GIVEN,
236
+ order_by: Literal["id", "createdAt"] | NotGiven = NOT_GIVEN,
237
+ page: int | NotGiven = NOT_GIVEN,
238
+ page_size: int | NotGiven = NOT_GIVEN,
239
+ rule: List[str] | NotGiven = NOT_GIVEN,
240
+ subject: List[str] | NotGiven = NOT_GIVEN,
241
+ to: Union[str, datetime] | NotGiven = NOT_GIVEN,
242
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
243
+ # The extra values given here take precedence over values defined on the client or passed to this method.
244
+ extra_headers: Headers | None = None,
245
+ extra_query: Query | None = None,
246
+ extra_body: Body | None = None,
247
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
248
+ ) -> EventListResponse:
249
+ """
250
+ List all notification events.
251
+
252
+ Args:
253
+ channel: Filtering by multiple channel ids.
254
+
255
+ Usage: `?channel=01J8J4RXH778XB056JS088PCYT&channel=01J8J4S1R1G9EVN62RG23A9M6J`
256
+
257
+ feature: Filtering by multiple feature ids or keys.
258
+
259
+ Usage: `?feature=feature-1&feature=feature-2`
260
+
261
+ from_: Start date-time in RFC 3339 format. Inclusive.
262
+
263
+ order: The order direction.
264
+
265
+ order_by: The order by field.
266
+
267
+ page: Start date-time in RFC 3339 format.
268
+
269
+ Inclusive.
270
+
271
+ page_size: Number of items per page.
272
+
273
+ Default is 100.
274
+
275
+ rule: Filtering by multiple rule ids.
276
+
277
+ Usage: `?rule=01J8J2XYZ2N5WBYK09EDZFBSZM&rule=01J8J4R4VZH180KRKQ63NB2VA5`
278
+
279
+ subject: Filtering by multiple subject ids or keys.
280
+
281
+ Usage: `?subject=subject-1&subject=subject-2`
282
+
283
+ to: End date-time in RFC 3339 format. Inclusive.
284
+
285
+ extra_headers: Send extra headers
286
+
287
+ extra_query: Add additional query parameters to the request
288
+
289
+ extra_body: Add additional JSON properties to the request
290
+
291
+ timeout: Override the client-level default timeout for this request, in seconds
292
+ """
293
+ return await self._get(
294
+ "/api/v1/notification/events",
295
+ options=make_request_options(
296
+ extra_headers=extra_headers,
297
+ extra_query=extra_query,
298
+ extra_body=extra_body,
299
+ timeout=timeout,
300
+ query=await async_maybe_transform(
301
+ {
302
+ "channel": channel,
303
+ "feature": feature,
304
+ "from_": from_,
305
+ "order": order,
306
+ "order_by": order_by,
307
+ "page": page,
308
+ "page_size": page_size,
309
+ "rule": rule,
310
+ "subject": subject,
311
+ "to": to,
312
+ },
313
+ event_list_params.EventListParams,
314
+ ),
315
+ ),
316
+ cast_to=EventListResponse,
317
+ )
318
+
319
+
320
+ class EventsResourceWithRawResponse:
321
+ def __init__(self, events: EventsResource) -> None:
322
+ self._events = events
323
+
324
+ self.retrieve = to_raw_response_wrapper(
325
+ events.retrieve,
326
+ )
327
+ self.list = to_raw_response_wrapper(
328
+ events.list,
329
+ )
330
+
331
+
332
+ class AsyncEventsResourceWithRawResponse:
333
+ def __init__(self, events: AsyncEventsResource) -> None:
334
+ self._events = events
335
+
336
+ self.retrieve = async_to_raw_response_wrapper(
337
+ events.retrieve,
338
+ )
339
+ self.list = async_to_raw_response_wrapper(
340
+ events.list,
341
+ )
342
+
343
+
344
+ class EventsResourceWithStreamingResponse:
345
+ def __init__(self, events: EventsResource) -> None:
346
+ self._events = events
347
+
348
+ self.retrieve = to_streamed_response_wrapper(
349
+ events.retrieve,
350
+ )
351
+ self.list = to_streamed_response_wrapper(
352
+ events.list,
353
+ )
354
+
355
+
356
+ class AsyncEventsResourceWithStreamingResponse:
357
+ def __init__(self, events: AsyncEventsResource) -> None:
358
+ self._events = events
359
+
360
+ self.retrieve = async_to_streamed_response_wrapper(
361
+ events.retrieve,
362
+ )
363
+ self.list = async_to_streamed_response_wrapper(
364
+ events.list,
365
+ )
@@ -0,0 +1,198 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from .rules import (
6
+ RulesResource,
7
+ AsyncRulesResource,
8
+ RulesResourceWithRawResponse,
9
+ AsyncRulesResourceWithRawResponse,
10
+ RulesResourceWithStreamingResponse,
11
+ AsyncRulesResourceWithStreamingResponse,
12
+ )
13
+ from .events import (
14
+ EventsResource,
15
+ AsyncEventsResource,
16
+ EventsResourceWithRawResponse,
17
+ AsyncEventsResourceWithRawResponse,
18
+ EventsResourceWithStreamingResponse,
19
+ AsyncEventsResourceWithStreamingResponse,
20
+ )
21
+ from .webhook import (
22
+ WebhookResource,
23
+ AsyncWebhookResource,
24
+ WebhookResourceWithRawResponse,
25
+ AsyncWebhookResourceWithRawResponse,
26
+ WebhookResourceWithStreamingResponse,
27
+ AsyncWebhookResourceWithStreamingResponse,
28
+ )
29
+ from .channels import (
30
+ ChannelsResource,
31
+ AsyncChannelsResource,
32
+ ChannelsResourceWithRawResponse,
33
+ AsyncChannelsResourceWithRawResponse,
34
+ ChannelsResourceWithStreamingResponse,
35
+ AsyncChannelsResourceWithStreamingResponse,
36
+ )
37
+ from ..._compat import cached_property
38
+ from ..._resource import SyncAPIResource, AsyncAPIResource
39
+
40
+ __all__ = ["NotificationsResource", "AsyncNotificationsResource"]
41
+
42
+
43
+ class NotificationsResource(SyncAPIResource):
44
+ @cached_property
45
+ def channels(self) -> ChannelsResource:
46
+ return ChannelsResource(self._client)
47
+
48
+ @cached_property
49
+ def events(self) -> EventsResource:
50
+ return EventsResource(self._client)
51
+
52
+ @cached_property
53
+ def rules(self) -> RulesResource:
54
+ return RulesResource(self._client)
55
+
56
+ @cached_property
57
+ def webhook(self) -> WebhookResource:
58
+ return WebhookResource(self._client)
59
+
60
+ @cached_property
61
+ def with_raw_response(self) -> NotificationsResourceWithRawResponse:
62
+ """
63
+ This property can be used as a prefix for any HTTP method call to return the
64
+ the raw response object instead of the parsed content.
65
+
66
+ For more information, see https://www.github.com/openmeterio/openmeter-python#accessing-raw-response-data-eg-headers
67
+ """
68
+ return NotificationsResourceWithRawResponse(self)
69
+
70
+ @cached_property
71
+ def with_streaming_response(self) -> NotificationsResourceWithStreamingResponse:
72
+ """
73
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
74
+
75
+ For more information, see https://www.github.com/openmeterio/openmeter-python#with_streaming_response
76
+ """
77
+ return NotificationsResourceWithStreamingResponse(self)
78
+
79
+
80
+ class AsyncNotificationsResource(AsyncAPIResource):
81
+ @cached_property
82
+ def channels(self) -> AsyncChannelsResource:
83
+ return AsyncChannelsResource(self._client)
84
+
85
+ @cached_property
86
+ def events(self) -> AsyncEventsResource:
87
+ return AsyncEventsResource(self._client)
88
+
89
+ @cached_property
90
+ def rules(self) -> AsyncRulesResource:
91
+ return AsyncRulesResource(self._client)
92
+
93
+ @cached_property
94
+ def webhook(self) -> AsyncWebhookResource:
95
+ return AsyncWebhookResource(self._client)
96
+
97
+ @cached_property
98
+ def with_raw_response(self) -> AsyncNotificationsResourceWithRawResponse:
99
+ """
100
+ This property can be used as a prefix for any HTTP method call to return the
101
+ the raw response object instead of the parsed content.
102
+
103
+ For more information, see https://www.github.com/openmeterio/openmeter-python#accessing-raw-response-data-eg-headers
104
+ """
105
+ return AsyncNotificationsResourceWithRawResponse(self)
106
+
107
+ @cached_property
108
+ def with_streaming_response(self) -> AsyncNotificationsResourceWithStreamingResponse:
109
+ """
110
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
111
+
112
+ For more information, see https://www.github.com/openmeterio/openmeter-python#with_streaming_response
113
+ """
114
+ return AsyncNotificationsResourceWithStreamingResponse(self)
115
+
116
+
117
+ class NotificationsResourceWithRawResponse:
118
+ def __init__(self, notifications: NotificationsResource) -> None:
119
+ self._notifications = notifications
120
+
121
+ @cached_property
122
+ def channels(self) -> ChannelsResourceWithRawResponse:
123
+ return ChannelsResourceWithRawResponse(self._notifications.channels)
124
+
125
+ @cached_property
126
+ def events(self) -> EventsResourceWithRawResponse:
127
+ return EventsResourceWithRawResponse(self._notifications.events)
128
+
129
+ @cached_property
130
+ def rules(self) -> RulesResourceWithRawResponse:
131
+ return RulesResourceWithRawResponse(self._notifications.rules)
132
+
133
+ @cached_property
134
+ def webhook(self) -> WebhookResourceWithRawResponse:
135
+ return WebhookResourceWithRawResponse(self._notifications.webhook)
136
+
137
+
138
+ class AsyncNotificationsResourceWithRawResponse:
139
+ def __init__(self, notifications: AsyncNotificationsResource) -> None:
140
+ self._notifications = notifications
141
+
142
+ @cached_property
143
+ def channels(self) -> AsyncChannelsResourceWithRawResponse:
144
+ return AsyncChannelsResourceWithRawResponse(self._notifications.channels)
145
+
146
+ @cached_property
147
+ def events(self) -> AsyncEventsResourceWithRawResponse:
148
+ return AsyncEventsResourceWithRawResponse(self._notifications.events)
149
+
150
+ @cached_property
151
+ def rules(self) -> AsyncRulesResourceWithRawResponse:
152
+ return AsyncRulesResourceWithRawResponse(self._notifications.rules)
153
+
154
+ @cached_property
155
+ def webhook(self) -> AsyncWebhookResourceWithRawResponse:
156
+ return AsyncWebhookResourceWithRawResponse(self._notifications.webhook)
157
+
158
+
159
+ class NotificationsResourceWithStreamingResponse:
160
+ def __init__(self, notifications: NotificationsResource) -> None:
161
+ self._notifications = notifications
162
+
163
+ @cached_property
164
+ def channels(self) -> ChannelsResourceWithStreamingResponse:
165
+ return ChannelsResourceWithStreamingResponse(self._notifications.channels)
166
+
167
+ @cached_property
168
+ def events(self) -> EventsResourceWithStreamingResponse:
169
+ return EventsResourceWithStreamingResponse(self._notifications.events)
170
+
171
+ @cached_property
172
+ def rules(self) -> RulesResourceWithStreamingResponse:
173
+ return RulesResourceWithStreamingResponse(self._notifications.rules)
174
+
175
+ @cached_property
176
+ def webhook(self) -> WebhookResourceWithStreamingResponse:
177
+ return WebhookResourceWithStreamingResponse(self._notifications.webhook)
178
+
179
+
180
+ class AsyncNotificationsResourceWithStreamingResponse:
181
+ def __init__(self, notifications: AsyncNotificationsResource) -> None:
182
+ self._notifications = notifications
183
+
184
+ @cached_property
185
+ def channels(self) -> AsyncChannelsResourceWithStreamingResponse:
186
+ return AsyncChannelsResourceWithStreamingResponse(self._notifications.channels)
187
+
188
+ @cached_property
189
+ def events(self) -> AsyncEventsResourceWithStreamingResponse:
190
+ return AsyncEventsResourceWithStreamingResponse(self._notifications.events)
191
+
192
+ @cached_property
193
+ def rules(self) -> AsyncRulesResourceWithStreamingResponse:
194
+ return AsyncRulesResourceWithStreamingResponse(self._notifications.rules)
195
+
196
+ @cached_property
197
+ def webhook(self) -> AsyncWebhookResourceWithStreamingResponse:
198
+ return AsyncWebhookResourceWithStreamingResponse(self._notifications.webhook)