lark-billing 0.0.6__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 lark-billing might be problematic. Click here for more details.

Files changed (167) hide show
  1. lark/__init__.py +522 -0
  2. lark/checkout/__init__.py +4 -0
  3. lark/checkout/client.py +214 -0
  4. lark/checkout/raw_client.py +252 -0
  5. lark/client.py +240 -0
  6. lark/core/__init__.py +105 -0
  7. lark/core/api_error.py +23 -0
  8. lark/core/client_wrapper.py +79 -0
  9. lark/core/datetime_utils.py +28 -0
  10. lark/core/file.py +67 -0
  11. lark/core/force_multipart.py +18 -0
  12. lark/core/http_client.py +543 -0
  13. lark/core/http_response.py +55 -0
  14. lark/core/jsonable_encoder.py +100 -0
  15. lark/core/pydantic_utilities.py +258 -0
  16. lark/core/query_encoder.py +58 -0
  17. lark/core/remove_none_from_dict.py +11 -0
  18. lark/core/request_options.py +35 -0
  19. lark/core/serialization.py +276 -0
  20. lark/errors/__init__.py +34 -0
  21. lark/errors/unprocessable_entity_error.py +11 -0
  22. lark/feature_access/__init__.py +4 -0
  23. lark/feature_access/client.py +102 -0
  24. lark/feature_access/raw_client.py +113 -0
  25. lark/py.typed +0 -0
  26. lark/rate_cards/__init__.py +61 -0
  27. lark/rate_cards/client.py +817 -0
  28. lark/rate_cards/raw_client.py +728 -0
  29. lark/rate_cards/types/__init__.py +63 -0
  30. lark/rate_cards/types/create_rate_card_request_billing_interval.py +5 -0
  31. lark/rate_cards/types/create_rate_card_request_usage_based_rates_item.py +56 -0
  32. lark/rate_cards/types/create_rate_card_version_request_usage_based_rates_item.py +58 -0
  33. lark/rate_cards/types/create_rate_card_version_request_version_type.py +5 -0
  34. lark/subjects/__init__.py +4 -0
  35. lark/subjects/client.py +501 -0
  36. lark/subjects/raw_client.py +633 -0
  37. lark/subscriptions/__init__.py +4 -0
  38. lark/subscriptions/client.py +462 -0
  39. lark/subscriptions/raw_client.py +495 -0
  40. lark/types/__init__.py +493 -0
  41. lark/types/aggregation.py +80 -0
  42. lark/types/amount.py +20 -0
  43. lark/types/check_feature_access_request.py +24 -0
  44. lark/types/check_feature_access_response.py +21 -0
  45. lark/types/complete_subscription_checkout_response.py +21 -0
  46. lark/types/count_aggregation_pricing_metric_interface.py +17 -0
  47. lark/types/create_credit_grant_interface.py +27 -0
  48. lark/types/create_credit_grant_interface_expiration.py +27 -0
  49. lark/types/create_credit_pool_request.py +5 -0
  50. lark/types/create_dimension_coordinate_interface.py +20 -0
  51. lark/types/create_dimension_interface.py +20 -0
  52. lark/types/create_dimensional_usage_based_rate_interface.py +32 -0
  53. lark/types/create_fixed_rate_interface.py +28 -0
  54. lark/types/create_pricing_matrix_cell_interface.py +22 -0
  55. lark/types/create_pricing_matrix_interface.py +20 -0
  56. lark/types/create_pricing_metric_interface.py +26 -0
  57. lark/types/create_pricing_plan_request.py +5 -0
  58. lark/types/create_rate_card_response.py +36 -0
  59. lark/types/create_rate_card_response_billing_interval.py +5 -0
  60. lark/types/create_rate_card_response_usage_based_rates_item.py +58 -0
  61. lark/types/create_rate_card_version_response.py +36 -0
  62. lark/types/create_rate_card_version_response_billing_interval.py +5 -0
  63. lark/types/create_rate_card_version_response_usage_based_rates_item.py +59 -0
  64. lark/types/create_simple_usage_based_rate_interface.py +30 -0
  65. lark/types/create_subject_response.py +24 -0
  66. lark/types/create_subscription_checkout_session_response.py +23 -0
  67. lark/types/create_usage_event_summary_response.py +23 -0
  68. lark/types/credit_grant.py +5 -0
  69. lark/types/credit_grant_date_time_expiration_interface.py +19 -0
  70. lark/types/credit_grant_date_time_expiration_resource.py +19 -0
  71. lark/types/credit_grant_duration_expiration_interface.py +21 -0
  72. lark/types/credit_grant_duration_expiration_resource.py +21 -0
  73. lark/types/credit_grant_interface.py +28 -0
  74. lark/types/credit_grant_interface_input_expiration.py +27 -0
  75. lark/types/credit_grant_interface_output_expiration.py +43 -0
  76. lark/types/credit_grant_interface_output_schedule.py +41 -0
  77. lark/types/credit_grant_resource.py +28 -0
  78. lark/types/credit_grant_resource_input_expiration.py +27 -0
  79. lark/types/credit_grant_resource_input_schedule.py +39 -0
  80. lark/types/credit_grant_resource_output_expiration.py +43 -0
  81. lark/types/credit_grant_resource_output_schedule.py +39 -0
  82. lark/types/credit_grant_schedule.py +5 -0
  83. lark/types/credit_grant_schedule_one_time_interface.py +19 -0
  84. lark/types/credit_grant_schedule_one_time_resource.py +17 -0
  85. lark/types/credit_grant_schedule_rate_cycle_start_interface.py +19 -0
  86. lark/types/credit_grant_schedule_rate_cycle_start_resource.py +17 -0
  87. lark/types/credit_grant_subject_granting_config_interface.py +20 -0
  88. lark/types/credit_pool.py +5 -0
  89. lark/types/credit_pool_rollover_config.py +5 -0
  90. lark/types/custom_aggregation_pricing_metric_interface.py +22 -0
  91. lark/types/custom_pricing_metric.py +5 -0
  92. lark/types/custom_unit.py +5 -0
  93. lark/types/custom_unit_amount.py +5 -0
  94. lark/types/dimension.py +5 -0
  95. lark/types/dimension_coordinate.py +5 -0
  96. lark/types/dimension_coordinate_interface.py +20 -0
  97. lark/types/dimension_coordinate_set.py +5 -0
  98. lark/types/dimension_interface.py +20 -0
  99. lark/types/dimensional_rate_matrix.py +5 -0
  100. lark/types/dimensional_rate_matrix_cell.py +5 -0
  101. lark/types/dimensional_usage_based_rate.py +5 -0
  102. lark/types/dimensional_usage_based_rate_input.py +5 -0
  103. lark/types/dimensional_usage_based_rate_interface.py +33 -0
  104. lark/types/feature_access_resource.py +21 -0
  105. lark/types/fixed_rate_interface.py +29 -0
  106. lark/types/flat_price.py +24 -0
  107. lark/types/get_rate_card_response.py +36 -0
  108. lark/types/get_rate_card_response_billing_interval.py +5 -0
  109. lark/types/get_rate_card_response_usage_based_rates_item.py +58 -0
  110. lark/types/grant_credits_request.py +5 -0
  111. lark/types/http_validation_error.py +20 -0
  112. lark/types/last_aggregation_pricing_metric_interface.py +22 -0
  113. lark/types/license_based_rate.py +5 -0
  114. lark/types/license_based_rate_input.py +5 -0
  115. lark/types/list_rate_cards_response.py +21 -0
  116. lark/types/list_subjects_response.py +21 -0
  117. lark/types/list_subscriptions_response.py +21 -0
  118. lark/types/max_aggregation_pricing_metric_interface.py +22 -0
  119. lark/types/monetary_amount.py +5 -0
  120. lark/types/package_price.py +27 -0
  121. lark/types/package_price_rounding_behavior.py +5 -0
  122. lark/types/package_price_wrapper.py +5 -0
  123. lark/types/period.py +22 -0
  124. lark/types/price.py +5 -0
  125. lark/types/pricing_matrix_cell_interface.py +22 -0
  126. lark/types/pricing_matrix_interface.py +20 -0
  127. lark/types/pricing_metric.py +5 -0
  128. lark/types/pricing_metric_interface.py +27 -0
  129. lark/types/pricing_plan.py +5 -0
  130. lark/types/pricing_plan_subscription.py +5 -0
  131. lark/types/pricing_tier.py +5 -0
  132. lark/types/rate_card.py +5 -0
  133. lark/types/rate_card_resource.py +36 -0
  134. lark/types/rate_card_resource_billing_interval.py +5 -0
  135. lark/types/rate_card_resource_usage_based_rates_item.py +58 -0
  136. lark/types/rate_card_version.py +5 -0
  137. lark/types/rate_card_version_input.py +5 -0
  138. lark/types/simple_usage_based_rate.py +5 -0
  139. lark/types/simple_usage_based_rate_input.py +5 -0
  140. lark/types/simple_usage_based_rate_interface.py +31 -0
  141. lark/types/status.py +5 -0
  142. lark/types/subject.py +5 -0
  143. lark/types/subject_granting_config.py +5 -0
  144. lark/types/subject_granting_config_resource.py +20 -0
  145. lark/types/subject_resource.py +24 -0
  146. lark/types/subscription_resource.py +28 -0
  147. lark/types/sum_aggregation_pricing_metric_interface.py +22 -0
  148. lark/types/tiered_price.py +5 -0
  149. lark/types/tiered_price_wrapper.py +5 -0
  150. lark/types/unit.py +5 -0
  151. lark/types/update_pricing_plan_request.py +5 -0
  152. lark/types/update_rate_card_request.py +5 -0
  153. lark/types/update_subscription_request.py +5 -0
  154. lark/types/usage_based_rate.py +5 -0
  155. lark/types/usage_based_rate_input.py +5 -0
  156. lark/types/usage_unit.py +5 -0
  157. lark/types/validation_error.py +22 -0
  158. lark/types/validation_error_loc_item.py +5 -0
  159. lark/usage_events/__init__.py +34 -0
  160. lark/usage_events/client.py +293 -0
  161. lark/usage_events/raw_client.py +318 -0
  162. lark/usage_events/types/__init__.py +36 -0
  163. lark/usage_events/types/create_usage_event_summary_request_aggregation_type.py +5 -0
  164. lark/version.py +3 -0
  165. lark_billing-0.0.6.dist-info/METADATA +188 -0
  166. lark_billing-0.0.6.dist-info/RECORD +167 -0
  167. lark_billing-0.0.6.dist-info/WHEEL +4 -0
@@ -0,0 +1,462 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
7
+ from ..core.request_options import RequestOptions
8
+ from ..types.list_subscriptions_response import ListSubscriptionsResponse
9
+ from ..types.subscription_resource import SubscriptionResource
10
+ from .raw_client import AsyncRawSubscriptionsClient, RawSubscriptionsClient
11
+
12
+ # this is used as the default value for optional parameters
13
+ OMIT = typing.cast(typing.Any, ...)
14
+
15
+
16
+ class SubscriptionsClient:
17
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
18
+ self._raw_client = RawSubscriptionsClient(client_wrapper=client_wrapper)
19
+
20
+ @property
21
+ def with_raw_response(self) -> RawSubscriptionsClient:
22
+ """
23
+ Retrieves a raw implementation of this client that returns raw responses.
24
+
25
+ Returns
26
+ -------
27
+ RawSubscriptionsClient
28
+ """
29
+ return self._raw_client
30
+
31
+ def list_subscriptions(
32
+ self,
33
+ *,
34
+ limit: typing.Optional[int] = None,
35
+ offset: typing.Optional[int] = None,
36
+ request_options: typing.Optional[RequestOptions] = None,
37
+ ) -> ListSubscriptionsResponse:
38
+ """
39
+ Parameters
40
+ ----------
41
+ limit : typing.Optional[int]
42
+
43
+ offset : typing.Optional[int]
44
+
45
+ request_options : typing.Optional[RequestOptions]
46
+ Request-specific configuration.
47
+
48
+ Returns
49
+ -------
50
+ ListSubscriptionsResponse
51
+ Successful Response
52
+
53
+ Examples
54
+ --------
55
+ from lark import Lark
56
+
57
+ client = Lark(
58
+ api_key="YOUR_API_KEY",
59
+ base_url="https://yourhost.com/path/to/api",
60
+ )
61
+ client.subscriptions.list_subscriptions(
62
+ limit=1,
63
+ offset=1,
64
+ )
65
+ """
66
+ _response = self._raw_client.list_subscriptions(limit=limit, offset=offset, request_options=request_options)
67
+ return _response.data
68
+
69
+ def create_subscription(
70
+ self,
71
+ *,
72
+ rate_card_id: str,
73
+ subject_id: str,
74
+ effective_at: dt.datetime,
75
+ variables: typing.Optional[typing.Dict[str, typing.Optional[str]]] = OMIT,
76
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[str]]] = OMIT,
77
+ request_options: typing.Optional[RequestOptions] = None,
78
+ ) -> SubscriptionResource:
79
+ """
80
+ Parameters
81
+ ----------
82
+ rate_card_id : str
83
+
84
+ subject_id : str
85
+
86
+ effective_at : dt.datetime
87
+
88
+ variables : typing.Optional[typing.Dict[str, typing.Optional[str]]]
89
+
90
+ metadata : typing.Optional[typing.Dict[str, typing.Optional[str]]]
91
+
92
+ request_options : typing.Optional[RequestOptions]
93
+ Request-specific configuration.
94
+
95
+ Returns
96
+ -------
97
+ SubscriptionResource
98
+ Successful Response
99
+
100
+ Examples
101
+ --------
102
+ import datetime
103
+
104
+ from lark import Lark
105
+
106
+ client = Lark(
107
+ api_key="YOUR_API_KEY",
108
+ base_url="https://yourhost.com/path/to/api",
109
+ )
110
+ client.subscriptions.create_subscription(
111
+ rate_card_id="rate_card_id",
112
+ subject_id="subject_id",
113
+ effective_at=datetime.datetime.fromisoformat(
114
+ "2024-01-15 09:30:00+00:00",
115
+ ),
116
+ )
117
+ """
118
+ _response = self._raw_client.create_subscription(
119
+ rate_card_id=rate_card_id,
120
+ subject_id=subject_id,
121
+ effective_at=effective_at,
122
+ variables=variables,
123
+ metadata=metadata,
124
+ request_options=request_options,
125
+ )
126
+ return _response.data
127
+
128
+ def get_subscription(
129
+ self, subscription_id: str, *, request_options: typing.Optional[RequestOptions] = None
130
+ ) -> SubscriptionResource:
131
+ """
132
+ Parameters
133
+ ----------
134
+ subscription_id : str
135
+
136
+ request_options : typing.Optional[RequestOptions]
137
+ Request-specific configuration.
138
+
139
+ Returns
140
+ -------
141
+ SubscriptionResource
142
+ Successful Response
143
+
144
+ Examples
145
+ --------
146
+ from lark import Lark
147
+
148
+ client = Lark(
149
+ api_key="YOUR_API_KEY",
150
+ base_url="https://yourhost.com/path/to/api",
151
+ )
152
+ client.subscriptions.get_subscription(
153
+ subscription_id="subscription_id",
154
+ )
155
+ """
156
+ _response = self._raw_client.get_subscription(subscription_id, request_options=request_options)
157
+ return _response.data
158
+
159
+ def cancel_subscription(
160
+ self, subscription_id: str, *, request_options: typing.Optional[RequestOptions] = None
161
+ ) -> None:
162
+ """
163
+ Parameters
164
+ ----------
165
+ subscription_id : str
166
+
167
+ request_options : typing.Optional[RequestOptions]
168
+ Request-specific configuration.
169
+
170
+ Returns
171
+ -------
172
+ None
173
+
174
+ Examples
175
+ --------
176
+ from lark import Lark
177
+
178
+ client = Lark(
179
+ api_key="YOUR_API_KEY",
180
+ base_url="https://yourhost.com/path/to/api",
181
+ )
182
+ client.subscriptions.cancel_subscription(
183
+ subscription_id="subscription_id",
184
+ )
185
+ """
186
+ _response = self._raw_client.cancel_subscription(subscription_id, request_options=request_options)
187
+ return _response.data
188
+
189
+ def update_subscription(
190
+ self, subscription_id: str, *, request_options: typing.Optional[RequestOptions] = None
191
+ ) -> None:
192
+ """
193
+ Parameters
194
+ ----------
195
+ subscription_id : str
196
+
197
+ request_options : typing.Optional[RequestOptions]
198
+ Request-specific configuration.
199
+
200
+ Returns
201
+ -------
202
+ None
203
+
204
+ Examples
205
+ --------
206
+ from lark import Lark
207
+
208
+ client = Lark(
209
+ api_key="YOUR_API_KEY",
210
+ base_url="https://yourhost.com/path/to/api",
211
+ )
212
+ client.subscriptions.update_subscription(
213
+ subscription_id="subscription_id",
214
+ )
215
+ """
216
+ _response = self._raw_client.update_subscription(subscription_id, request_options=request_options)
217
+ return _response.data
218
+
219
+
220
+ class AsyncSubscriptionsClient:
221
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
222
+ self._raw_client = AsyncRawSubscriptionsClient(client_wrapper=client_wrapper)
223
+
224
+ @property
225
+ def with_raw_response(self) -> AsyncRawSubscriptionsClient:
226
+ """
227
+ Retrieves a raw implementation of this client that returns raw responses.
228
+
229
+ Returns
230
+ -------
231
+ AsyncRawSubscriptionsClient
232
+ """
233
+ return self._raw_client
234
+
235
+ async def list_subscriptions(
236
+ self,
237
+ *,
238
+ limit: typing.Optional[int] = None,
239
+ offset: typing.Optional[int] = None,
240
+ request_options: typing.Optional[RequestOptions] = None,
241
+ ) -> ListSubscriptionsResponse:
242
+ """
243
+ Parameters
244
+ ----------
245
+ limit : typing.Optional[int]
246
+
247
+ offset : typing.Optional[int]
248
+
249
+ request_options : typing.Optional[RequestOptions]
250
+ Request-specific configuration.
251
+
252
+ Returns
253
+ -------
254
+ ListSubscriptionsResponse
255
+ Successful Response
256
+
257
+ Examples
258
+ --------
259
+ import asyncio
260
+
261
+ from lark import AsyncLark
262
+
263
+ client = AsyncLark(
264
+ api_key="YOUR_API_KEY",
265
+ base_url="https://yourhost.com/path/to/api",
266
+ )
267
+
268
+
269
+ async def main() -> None:
270
+ await client.subscriptions.list_subscriptions(
271
+ limit=1,
272
+ offset=1,
273
+ )
274
+
275
+
276
+ asyncio.run(main())
277
+ """
278
+ _response = await self._raw_client.list_subscriptions(
279
+ limit=limit, offset=offset, request_options=request_options
280
+ )
281
+ return _response.data
282
+
283
+ async def create_subscription(
284
+ self,
285
+ *,
286
+ rate_card_id: str,
287
+ subject_id: str,
288
+ effective_at: dt.datetime,
289
+ variables: typing.Optional[typing.Dict[str, typing.Optional[str]]] = OMIT,
290
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[str]]] = OMIT,
291
+ request_options: typing.Optional[RequestOptions] = None,
292
+ ) -> SubscriptionResource:
293
+ """
294
+ Parameters
295
+ ----------
296
+ rate_card_id : str
297
+
298
+ subject_id : str
299
+
300
+ effective_at : dt.datetime
301
+
302
+ variables : typing.Optional[typing.Dict[str, typing.Optional[str]]]
303
+
304
+ metadata : typing.Optional[typing.Dict[str, typing.Optional[str]]]
305
+
306
+ request_options : typing.Optional[RequestOptions]
307
+ Request-specific configuration.
308
+
309
+ Returns
310
+ -------
311
+ SubscriptionResource
312
+ Successful Response
313
+
314
+ Examples
315
+ --------
316
+ import asyncio
317
+ import datetime
318
+
319
+ from lark import AsyncLark
320
+
321
+ client = AsyncLark(
322
+ api_key="YOUR_API_KEY",
323
+ base_url="https://yourhost.com/path/to/api",
324
+ )
325
+
326
+
327
+ async def main() -> None:
328
+ await client.subscriptions.create_subscription(
329
+ rate_card_id="rate_card_id",
330
+ subject_id="subject_id",
331
+ effective_at=datetime.datetime.fromisoformat(
332
+ "2024-01-15 09:30:00+00:00",
333
+ ),
334
+ )
335
+
336
+
337
+ asyncio.run(main())
338
+ """
339
+ _response = await self._raw_client.create_subscription(
340
+ rate_card_id=rate_card_id,
341
+ subject_id=subject_id,
342
+ effective_at=effective_at,
343
+ variables=variables,
344
+ metadata=metadata,
345
+ request_options=request_options,
346
+ )
347
+ return _response.data
348
+
349
+ async def get_subscription(
350
+ self, subscription_id: str, *, request_options: typing.Optional[RequestOptions] = None
351
+ ) -> SubscriptionResource:
352
+ """
353
+ Parameters
354
+ ----------
355
+ subscription_id : str
356
+
357
+ request_options : typing.Optional[RequestOptions]
358
+ Request-specific configuration.
359
+
360
+ Returns
361
+ -------
362
+ SubscriptionResource
363
+ Successful Response
364
+
365
+ Examples
366
+ --------
367
+ import asyncio
368
+
369
+ from lark import AsyncLark
370
+
371
+ client = AsyncLark(
372
+ api_key="YOUR_API_KEY",
373
+ base_url="https://yourhost.com/path/to/api",
374
+ )
375
+
376
+
377
+ async def main() -> None:
378
+ await client.subscriptions.get_subscription(
379
+ subscription_id="subscription_id",
380
+ )
381
+
382
+
383
+ asyncio.run(main())
384
+ """
385
+ _response = await self._raw_client.get_subscription(subscription_id, request_options=request_options)
386
+ return _response.data
387
+
388
+ async def cancel_subscription(
389
+ self, subscription_id: str, *, request_options: typing.Optional[RequestOptions] = None
390
+ ) -> None:
391
+ """
392
+ Parameters
393
+ ----------
394
+ subscription_id : str
395
+
396
+ request_options : typing.Optional[RequestOptions]
397
+ Request-specific configuration.
398
+
399
+ Returns
400
+ -------
401
+ None
402
+
403
+ Examples
404
+ --------
405
+ import asyncio
406
+
407
+ from lark import AsyncLark
408
+
409
+ client = AsyncLark(
410
+ api_key="YOUR_API_KEY",
411
+ base_url="https://yourhost.com/path/to/api",
412
+ )
413
+
414
+
415
+ async def main() -> None:
416
+ await client.subscriptions.cancel_subscription(
417
+ subscription_id="subscription_id",
418
+ )
419
+
420
+
421
+ asyncio.run(main())
422
+ """
423
+ _response = await self._raw_client.cancel_subscription(subscription_id, request_options=request_options)
424
+ return _response.data
425
+
426
+ async def update_subscription(
427
+ self, subscription_id: str, *, request_options: typing.Optional[RequestOptions] = None
428
+ ) -> None:
429
+ """
430
+ Parameters
431
+ ----------
432
+ subscription_id : str
433
+
434
+ request_options : typing.Optional[RequestOptions]
435
+ Request-specific configuration.
436
+
437
+ Returns
438
+ -------
439
+ None
440
+
441
+ Examples
442
+ --------
443
+ import asyncio
444
+
445
+ from lark import AsyncLark
446
+
447
+ client = AsyncLark(
448
+ api_key="YOUR_API_KEY",
449
+ base_url="https://yourhost.com/path/to/api",
450
+ )
451
+
452
+
453
+ async def main() -> None:
454
+ await client.subscriptions.update_subscription(
455
+ subscription_id="subscription_id",
456
+ )
457
+
458
+
459
+ asyncio.run(main())
460
+ """
461
+ _response = await self._raw_client.update_subscription(subscription_id, request_options=request_options)
462
+ return _response.data