lark-billing 0.0.8__py3-none-any.whl → 0.0.9__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.

lark/__init__.py CHANGED
@@ -76,7 +76,7 @@ if typing.TYPE_CHECKING:
76
76
  CreateRateCardRequestUsageBasedRatesItem,
77
77
  CreateRateCardRequestUsageBasedRatesItem_Simple,
78
78
  )
79
- from .usage_events import CreateUsageEventSummaryRequestAggregationType
79
+ from .usage_events import CreateUsageEventRequestDataValue, CreateUsageEventSummaryRequestAggregationType
80
80
  from .version import __version__
81
81
  _dynamic_imports: typing.Dict[str, str] = {
82
82
  "Aggregation": ".types",
@@ -96,6 +96,7 @@ _dynamic_imports: typing.Dict[str, str] = {
96
96
  "CreateSimpleUsageBasedRateRequest": ".types",
97
97
  "CreateSubjectResponse": ".types",
98
98
  "CreateSubscriptionCheckoutSessionResponse": ".types",
99
+ "CreateUsageEventRequestDataValue": ".usage_events",
99
100
  "CreateUsageEventSummaryRequestAggregationType": ".usage_events",
100
101
  "CreateUsageEventSummaryResponse": ".types",
101
102
  "FixedRateInterface": ".types",
@@ -190,6 +191,7 @@ __all__ = [
190
191
  "CreateSimpleUsageBasedRateRequest",
191
192
  "CreateSubjectResponse",
192
193
  "CreateSubscriptionCheckoutSessionResponse",
194
+ "CreateUsageEventRequestDataValue",
193
195
  "CreateUsageEventSummaryRequestAggregationType",
194
196
  "CreateUsageEventSummaryResponse",
195
197
  "FixedRateInterface",
lark/checkout/client.py CHANGED
@@ -39,8 +39,10 @@ class CheckoutClient:
39
39
  Parameters
40
40
  ----------
41
41
  subject_id : str
42
+ The ID of the subject to create the checkout for.
42
43
 
43
44
  rate_card_id : str
45
+ The ID of the rate card to subscribe to.
44
46
 
45
47
  success_callback_url : str
46
48
  The URL to redirect to after the checkout is successful.
@@ -64,8 +66,8 @@ class CheckoutClient:
64
66
  api_key="YOUR_API_KEY",
65
67
  )
66
68
  client.checkout.create_subscription_checkout_session(
67
- subject_id="subject_id",
68
- rate_card_id="rate_card_id",
69
+ subject_id="subj_VyX6Q96h5avMho8O7QWlKeXE",
70
+ rate_card_id="rc_AJWMxR81jxoRlli6p13uf3JB",
69
71
  success_callback_url="https://example.com/callback",
70
72
  )
71
73
  """
@@ -107,8 +109,10 @@ class AsyncCheckoutClient:
107
109
  Parameters
108
110
  ----------
109
111
  subject_id : str
112
+ The ID of the subject to create the checkout for.
110
113
 
111
114
  rate_card_id : str
115
+ The ID of the rate card to subscribe to.
112
116
 
113
117
  success_callback_url : str
114
118
  The URL to redirect to after the checkout is successful.
@@ -137,8 +141,8 @@ class AsyncCheckoutClient:
137
141
 
138
142
  async def main() -> None:
139
143
  await client.checkout.create_subscription_checkout_session(
140
- subject_id="subject_id",
141
- rate_card_id="rate_card_id",
144
+ subject_id="subj_VyX6Q96h5avMho8O7QWlKeXE",
145
+ rate_card_id="rc_AJWMxR81jxoRlli6p13uf3JB",
142
146
  success_callback_url="https://example.com/callback",
143
147
  )
144
148
 
@@ -33,8 +33,10 @@ class RawCheckoutClient:
33
33
  Parameters
34
34
  ----------
35
35
  subject_id : str
36
+ The ID of the subject to create the checkout for.
36
37
 
37
38
  rate_card_id : str
39
+ The ID of the rate card to subscribe to.
38
40
 
39
41
  success_callback_url : str
40
42
  The URL to redirect to after the checkout is successful.
@@ -109,8 +111,10 @@ class AsyncRawCheckoutClient:
109
111
  Parameters
110
112
  ----------
111
113
  subject_id : str
114
+ The ID of the subject to create the checkout for.
112
115
 
113
116
  rate_card_id : str
117
+ The ID of the rate card to subscribe to.
114
118
 
115
119
  success_callback_url : str
116
120
  The URL to redirect to after the checkout is successful.
@@ -22,10 +22,10 @@ class BaseClientWrapper:
22
22
 
23
23
  def get_headers(self) -> typing.Dict[str, str]:
24
24
  headers: typing.Dict[str, str] = {
25
- "User-Agent": "lark-billing/0.0.8",
25
+ "User-Agent": "lark-billing/0.0.9",
26
26
  "X-Fern-Language": "Python",
27
27
  "X-Fern-SDK-Name": "lark-billing",
28
- "X-Fern-SDK-Version": "0.0.8",
28
+ "X-Fern-SDK-Version": "0.0.9",
29
29
  **(self.get_custom_headers() or {}),
30
30
  }
31
31
  headers["X-API-Key"] = self.api_key
@@ -33,6 +33,7 @@ class CustomerPortalClient:
33
33
  Parameters
34
34
  ----------
35
35
  subject_id : str
36
+ The ID of the subject to create the customer portal session for.
36
37
 
37
38
  request_options : typing.Optional[RequestOptions]
38
39
  Request-specific configuration.
@@ -50,7 +51,7 @@ class CustomerPortalClient:
50
51
  api_key="YOUR_API_KEY",
51
52
  )
52
53
  client.customer_portal.create_customer_portal_session(
53
- subject_id="subject_id",
54
+ subject_id="subj_VyX6Q96h5avMho8O7QWlKeXE",
54
55
  )
55
56
  """
56
57
  _response = self._raw_client.create_customer_portal_session(
@@ -81,6 +82,7 @@ class AsyncCustomerPortalClient:
81
82
  Parameters
82
83
  ----------
83
84
  subject_id : str
85
+ The ID of the subject to create the customer portal session for.
84
86
 
85
87
  request_options : typing.Optional[RequestOptions]
86
88
  Request-specific configuration.
@@ -103,7 +105,7 @@ class AsyncCustomerPortalClient:
103
105
 
104
106
  async def main() -> None:
105
107
  await client.customer_portal.create_customer_portal_session(
106
- subject_id="subject_id",
108
+ subject_id="subj_VyX6Q96h5avMho8O7QWlKeXE",
107
109
  )
108
110
 
109
111
 
@@ -27,6 +27,7 @@ class RawCustomerPortalClient:
27
27
  Parameters
28
28
  ----------
29
29
  subject_id : str
30
+ The ID of the subject to create the customer portal session for.
30
31
 
31
32
  request_options : typing.Optional[RequestOptions]
32
33
  Request-specific configuration.
@@ -86,6 +87,7 @@ class AsyncRawCustomerPortalClient:
86
87
  Parameters
87
88
  ----------
88
89
  subject_id : str
90
+ The ID of the subject to create the customer portal session for.
89
91
 
90
92
  request_options : typing.Optional[RequestOptions]
91
93
  Request-specific configuration.
lark/rate_cards/client.py CHANGED
@@ -66,8 +66,8 @@ class RateCardsClient:
66
66
  name: str,
67
67
  billing_interval: CreateRateCardRequestBillingInterval,
68
68
  description: typing.Optional[str] = OMIT,
69
- usage_based_rates: typing.Optional[typing.Sequence[CreateRateCardRequestUsageBasedRatesItem]] = OMIT,
70
69
  fixed_rates: typing.Optional[typing.Sequence[CreateFixedRateRequest]] = OMIT,
70
+ usage_based_rates: typing.Optional[typing.Sequence[CreateRateCardRequestUsageBasedRatesItem]] = OMIT,
71
71
  metadata: typing.Optional[typing.Dict[str, str]] = OMIT,
72
72
  request_options: typing.Optional[RequestOptions] = None,
73
73
  ) -> RateCardResource:
@@ -75,15 +75,18 @@ class RateCardsClient:
75
75
  Parameters
76
76
  ----------
77
77
  name : str
78
+ The name of the rate card displayed to the customer.
78
79
 
79
80
  billing_interval : CreateRateCardRequestBillingInterval
81
+ How often the customer will be billed for this rate card.
80
82
 
81
83
  description : typing.Optional[str]
82
-
83
- usage_based_rates : typing.Optional[typing.Sequence[CreateRateCardRequestUsageBasedRatesItem]]
84
+ The description of the rate card displayed to the customer.
84
85
 
85
86
  fixed_rates : typing.Optional[typing.Sequence[CreateFixedRateRequest]]
86
87
 
88
+ usage_based_rates : typing.Optional[typing.Sequence[CreateRateCardRequestUsageBasedRatesItem]]
89
+
87
90
  metadata : typing.Optional[typing.Dict[str, str]]
88
91
 
89
92
  request_options : typing.Optional[RequestOptions]
@@ -102,7 +105,7 @@ class RateCardsClient:
102
105
  api_key="YOUR_API_KEY",
103
106
  )
104
107
  client.rate_cards.create_rate_card(
105
- name="name",
108
+ name="Pro Plan",
106
109
  billing_interval="monthly",
107
110
  )
108
111
  """
@@ -110,8 +113,8 @@ class RateCardsClient:
110
113
  name=name,
111
114
  billing_interval=billing_interval,
112
115
  description=description,
113
- usage_based_rates=usage_based_rates,
114
116
  fixed_rates=fixed_rates,
117
+ usage_based_rates=usage_based_rates,
115
118
  metadata=metadata,
116
119
  request_options=request_options,
117
120
  )
@@ -207,8 +210,8 @@ class AsyncRateCardsClient:
207
210
  name: str,
208
211
  billing_interval: CreateRateCardRequestBillingInterval,
209
212
  description: typing.Optional[str] = OMIT,
210
- usage_based_rates: typing.Optional[typing.Sequence[CreateRateCardRequestUsageBasedRatesItem]] = OMIT,
211
213
  fixed_rates: typing.Optional[typing.Sequence[CreateFixedRateRequest]] = OMIT,
214
+ usage_based_rates: typing.Optional[typing.Sequence[CreateRateCardRequestUsageBasedRatesItem]] = OMIT,
212
215
  metadata: typing.Optional[typing.Dict[str, str]] = OMIT,
213
216
  request_options: typing.Optional[RequestOptions] = None,
214
217
  ) -> RateCardResource:
@@ -216,15 +219,18 @@ class AsyncRateCardsClient:
216
219
  Parameters
217
220
  ----------
218
221
  name : str
222
+ The name of the rate card displayed to the customer.
219
223
 
220
224
  billing_interval : CreateRateCardRequestBillingInterval
225
+ How often the customer will be billed for this rate card.
221
226
 
222
227
  description : typing.Optional[str]
223
-
224
- usage_based_rates : typing.Optional[typing.Sequence[CreateRateCardRequestUsageBasedRatesItem]]
228
+ The description of the rate card displayed to the customer.
225
229
 
226
230
  fixed_rates : typing.Optional[typing.Sequence[CreateFixedRateRequest]]
227
231
 
232
+ usage_based_rates : typing.Optional[typing.Sequence[CreateRateCardRequestUsageBasedRatesItem]]
233
+
228
234
  metadata : typing.Optional[typing.Dict[str, str]]
229
235
 
230
236
  request_options : typing.Optional[RequestOptions]
@@ -248,7 +254,7 @@ class AsyncRateCardsClient:
248
254
 
249
255
  async def main() -> None:
250
256
  await client.rate_cards.create_rate_card(
251
- name="name",
257
+ name="Pro Plan",
252
258
  billing_interval="monthly",
253
259
  )
254
260
 
@@ -259,8 +265,8 @@ class AsyncRateCardsClient:
259
265
  name=name,
260
266
  billing_interval=billing_interval,
261
267
  description=description,
262
- usage_based_rates=usage_based_rates,
263
268
  fixed_rates=fixed_rates,
269
+ usage_based_rates=usage_based_rates,
264
270
  metadata=metadata,
265
271
  request_options=request_options,
266
272
  )
@@ -82,8 +82,8 @@ class RawRateCardsClient:
82
82
  name: str,
83
83
  billing_interval: CreateRateCardRequestBillingInterval,
84
84
  description: typing.Optional[str] = OMIT,
85
- usage_based_rates: typing.Optional[typing.Sequence[CreateRateCardRequestUsageBasedRatesItem]] = OMIT,
86
85
  fixed_rates: typing.Optional[typing.Sequence[CreateFixedRateRequest]] = OMIT,
86
+ usage_based_rates: typing.Optional[typing.Sequence[CreateRateCardRequestUsageBasedRatesItem]] = OMIT,
87
87
  metadata: typing.Optional[typing.Dict[str, str]] = OMIT,
88
88
  request_options: typing.Optional[RequestOptions] = None,
89
89
  ) -> HttpResponse[RateCardResource]:
@@ -91,15 +91,18 @@ class RawRateCardsClient:
91
91
  Parameters
92
92
  ----------
93
93
  name : str
94
+ The name of the rate card displayed to the customer.
94
95
 
95
96
  billing_interval : CreateRateCardRequestBillingInterval
97
+ How often the customer will be billed for this rate card.
96
98
 
97
99
  description : typing.Optional[str]
98
-
99
- usage_based_rates : typing.Optional[typing.Sequence[CreateRateCardRequestUsageBasedRatesItem]]
100
+ The description of the rate card displayed to the customer.
100
101
 
101
102
  fixed_rates : typing.Optional[typing.Sequence[CreateFixedRateRequest]]
102
103
 
104
+ usage_based_rates : typing.Optional[typing.Sequence[CreateRateCardRequestUsageBasedRatesItem]]
105
+
103
106
  metadata : typing.Optional[typing.Dict[str, str]]
104
107
 
105
108
  request_options : typing.Optional[RequestOptions]
@@ -116,15 +119,15 @@ class RawRateCardsClient:
116
119
  json={
117
120
  "name": name,
118
121
  "description": description,
122
+ "billing_interval": billing_interval,
123
+ "fixed_rates": convert_and_respect_annotation_metadata(
124
+ object_=fixed_rates, annotation=typing.Sequence[CreateFixedRateRequest], direction="write"
125
+ ),
119
126
  "usage_based_rates": convert_and_respect_annotation_metadata(
120
127
  object_=usage_based_rates,
121
128
  annotation=typing.Sequence[CreateRateCardRequestUsageBasedRatesItem],
122
129
  direction="write",
123
130
  ),
124
- "fixed_rates": convert_and_respect_annotation_metadata(
125
- object_=fixed_rates, annotation=typing.Sequence[CreateFixedRateRequest], direction="write"
126
- ),
127
- "billing_interval": billing_interval,
128
131
  "metadata": metadata,
129
132
  },
130
133
  headers={
@@ -267,8 +270,8 @@ class AsyncRawRateCardsClient:
267
270
  name: str,
268
271
  billing_interval: CreateRateCardRequestBillingInterval,
269
272
  description: typing.Optional[str] = OMIT,
270
- usage_based_rates: typing.Optional[typing.Sequence[CreateRateCardRequestUsageBasedRatesItem]] = OMIT,
271
273
  fixed_rates: typing.Optional[typing.Sequence[CreateFixedRateRequest]] = OMIT,
274
+ usage_based_rates: typing.Optional[typing.Sequence[CreateRateCardRequestUsageBasedRatesItem]] = OMIT,
272
275
  metadata: typing.Optional[typing.Dict[str, str]] = OMIT,
273
276
  request_options: typing.Optional[RequestOptions] = None,
274
277
  ) -> AsyncHttpResponse[RateCardResource]:
@@ -276,15 +279,18 @@ class AsyncRawRateCardsClient:
276
279
  Parameters
277
280
  ----------
278
281
  name : str
282
+ The name of the rate card displayed to the customer.
279
283
 
280
284
  billing_interval : CreateRateCardRequestBillingInterval
285
+ How often the customer will be billed for this rate card.
281
286
 
282
287
  description : typing.Optional[str]
283
-
284
- usage_based_rates : typing.Optional[typing.Sequence[CreateRateCardRequestUsageBasedRatesItem]]
288
+ The description of the rate card displayed to the customer.
285
289
 
286
290
  fixed_rates : typing.Optional[typing.Sequence[CreateFixedRateRequest]]
287
291
 
292
+ usage_based_rates : typing.Optional[typing.Sequence[CreateRateCardRequestUsageBasedRatesItem]]
293
+
288
294
  metadata : typing.Optional[typing.Dict[str, str]]
289
295
 
290
296
  request_options : typing.Optional[RequestOptions]
@@ -301,15 +307,15 @@ class AsyncRawRateCardsClient:
301
307
  json={
302
308
  "name": name,
303
309
  "description": description,
310
+ "billing_interval": billing_interval,
311
+ "fixed_rates": convert_and_respect_annotation_metadata(
312
+ object_=fixed_rates, annotation=typing.Sequence[CreateFixedRateRequest], direction="write"
313
+ ),
304
314
  "usage_based_rates": convert_and_respect_annotation_metadata(
305
315
  object_=usage_based_rates,
306
316
  annotation=typing.Sequence[CreateRateCardRequestUsageBasedRatesItem],
307
317
  direction="write",
308
318
  ),
309
- "fixed_rates": convert_and_respect_annotation_metadata(
310
- object_=fixed_rates, annotation=typing.Sequence[CreateFixedRateRequest], direction="write"
311
- ),
312
- "billing_interval": billing_interval,
313
319
  "metadata": metadata,
314
320
  },
315
321
  headers={
@@ -11,7 +11,7 @@ from ...types.price import Price
11
11
 
12
12
  class CreateRateCardRequestUsageBasedRatesItem_Simple(UniversalBaseModel):
13
13
  usage_based_rate_type: typing.Literal["simple"] = "simple"
14
- name: typing.Optional[str] = None
14
+ name: str
15
15
  description: typing.Optional[str] = None
16
16
  price: Price
17
17
  included_units: typing.Optional[int] = None
@@ -202,6 +202,7 @@ class SubscriptionsClient:
202
202
  subscription_id : str
203
203
 
204
204
  rate_card_id : str
205
+ The ID of the rate card to change the subscription to.
205
206
 
206
207
  request_options : typing.Optional[RequestOptions]
207
208
  Request-specific configuration.
@@ -220,7 +221,7 @@ class SubscriptionsClient:
220
221
  )
221
222
  client.subscriptions.change_subscription_rate_card(
222
223
  subscription_id="subscription_id",
223
- rate_card_id="rc_AJWMxR81jxoRlli6p13uf3JB",
224
+ rate_card_id="rc_jQK2n0wutCj6bBcAIrL6o07g",
224
225
  )
225
226
  """
226
227
  _response = self._raw_client.change_subscription_rate_card(
@@ -451,6 +452,7 @@ class AsyncSubscriptionsClient:
451
452
  subscription_id : str
452
453
 
453
454
  rate_card_id : str
455
+ The ID of the rate card to change the subscription to.
454
456
 
455
457
  request_options : typing.Optional[RequestOptions]
456
458
  Request-specific configuration.
@@ -474,7 +476,7 @@ class AsyncSubscriptionsClient:
474
476
  async def main() -> None:
475
477
  await client.subscriptions.change_subscription_rate_card(
476
478
  subscription_id="subscription_id",
477
- rate_card_id="rc_AJWMxR81jxoRlli6p13uf3JB",
479
+ rate_card_id="rc_jQK2n0wutCj6bBcAIrL6o07g",
478
480
  )
479
481
 
480
482
 
@@ -275,6 +275,7 @@ class RawSubscriptionsClient:
275
275
  subscription_id : str
276
276
 
277
277
  rate_card_id : str
278
+ The ID of the rate card to change the subscription to.
278
279
 
279
280
  request_options : typing.Optional[RequestOptions]
280
281
  Request-specific configuration.
@@ -580,6 +581,7 @@ class AsyncRawSubscriptionsClient:
580
581
  subscription_id : str
581
582
 
582
583
  rate_card_id : str
584
+ The ID of the rate card to change the subscription to.
583
585
 
584
586
  request_options : typing.Optional[RequestOptions]
585
587
  Request-specific configuration.
lark/types/amount.py CHANGED
@@ -12,7 +12,10 @@ class Amount(UniversalBaseModel):
12
12
  The value of the amount in the smallest unit of the currency.
13
13
  """
14
14
 
15
- currency_code: str
15
+ currency_code: str = pydantic.Field()
16
+ """
17
+ The currency code of the amount.
18
+ """
16
19
 
17
20
  if IS_PYDANTIC_V2:
18
21
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -7,8 +7,15 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
7
 
8
8
 
9
9
  class CreateCustomerPortalSessionResponse(UniversalBaseModel):
10
- subject_id: str
11
- url: str
10
+ subject_id: str = pydantic.Field()
11
+ """
12
+ The ID of the subject for the customer portal session.
13
+ """
14
+
15
+ url: str = pydantic.Field()
16
+ """
17
+ The URL to redirect to the customer portal session.
18
+ """
12
19
 
13
20
  if IS_PYDANTIC_V2:
14
21
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -8,8 +8,16 @@ from .price import Price
8
8
 
9
9
 
10
10
  class CreateFixedRateRequest(UniversalBaseModel):
11
- name: typing.Optional[str] = None
12
- description: typing.Optional[str] = None
11
+ name: str = pydantic.Field()
12
+ """
13
+ The name of the rate displayed to the customer.
14
+ """
15
+
16
+ description: typing.Optional[str] = pydantic.Field(default=None)
17
+ """
18
+ The description of the rate displayed to the customer.
19
+ """
20
+
13
21
  price: Price
14
22
 
15
23
  if IS_PYDANTIC_V2:
@@ -8,10 +8,22 @@ from .price import Price
8
8
 
9
9
 
10
10
  class CreateSimpleUsageBasedRateRequest(UniversalBaseModel):
11
- name: typing.Optional[str] = None
12
- description: typing.Optional[str] = None
11
+ name: str = pydantic.Field()
12
+ """
13
+ The name of the rate displayed to the customer.
14
+ """
15
+
16
+ description: typing.Optional[str] = pydantic.Field(default=None)
17
+ """
18
+ The description of the rate displayed to the customer.
19
+ """
20
+
13
21
  price: Price
14
- included_units: typing.Optional[int] = None
22
+ included_units: typing.Optional[int] = pydantic.Field(default=None)
23
+ """
24
+ The number of units included in the rate before the price is applied.
25
+ """
26
+
15
27
  pricing_metric_id: str = pydantic.Field()
16
28
  """
17
29
  The ID of the pricing metric to use for this rate.
@@ -8,9 +8,20 @@ from .amount import Amount
8
8
 
9
9
 
10
10
  class CreateSubscriptionCheckoutSessionResponse(UniversalBaseModel):
11
- id: str
12
- amount: Amount
13
- url: str
11
+ id: str = pydantic.Field()
12
+ """
13
+ The ID of the checkout session.
14
+ """
15
+
16
+ amount: Amount = pydantic.Field()
17
+ """
18
+ The amount of the checkout session.
19
+ """
20
+
21
+ url: str = pydantic.Field()
22
+ """
23
+ The URL to redirect to the checkout session.
24
+ """
14
25
 
15
26
  if IS_PYDANTIC_V2:
16
27
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -10,7 +10,7 @@ from .price import Price
10
10
  class FixedRateInterface(UniversalBaseModel):
11
11
  id: str
12
12
  name: str
13
- description: str
13
+ description: typing.Optional[str] = None
14
14
  price: Price
15
15
 
16
16
  if IS_PYDANTIC_V2:
@@ -11,15 +11,40 @@ from .invoice_status import InvoiceStatus
11
11
 
12
12
 
13
13
  class InvoiceResource(UniversalBaseModel):
14
- id: str
15
- merchant_id: str
16
- bill_id: typing.Optional[str] = None
17
- total_amount: Amount
18
- subject_id: str
19
- created_at: dt.datetime
20
- status: InvoiceStatus
21
- hosted_url: typing.Optional[str] = None
22
- line_items: typing.List[InvoiceLineItemResource]
14
+ id: str = pydantic.Field()
15
+ """
16
+ The ID of the invoice.
17
+ """
18
+
19
+ total_amount: Amount = pydantic.Field()
20
+ """
21
+ The total amount of the invoice.
22
+ """
23
+
24
+ subject_id: str = pydantic.Field()
25
+ """
26
+ The ID of the subject for the invoice.
27
+ """
28
+
29
+ created_at: dt.datetime = pydantic.Field()
30
+ """
31
+ The date and time the invoice was created.
32
+ """
33
+
34
+ status: InvoiceStatus = pydantic.Field()
35
+ """
36
+ The status of the invoice.
37
+ """
38
+
39
+ hosted_url: typing.Optional[str] = pydantic.Field(default=None)
40
+ """
41
+ The URL of the hosted invoice.
42
+ """
43
+
44
+ line_items: typing.List[InvoiceLineItemResource] = pydantic.Field()
45
+ """
46
+ The line items of the invoice.
47
+ """
23
48
 
24
49
  if IS_PYDANTIC_V2:
25
50
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -1,5 +1,6 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
+ import datetime as dt
3
4
  import typing
4
5
 
5
6
  import pydantic
@@ -10,14 +11,42 @@ from .rate_card_resource_usage_based_rates_item import RateCardResourceUsageBase
10
11
 
11
12
 
12
13
  class RateCardResource(UniversalBaseModel):
13
- id: str
14
- name: str
15
- description: str
16
- usage_based_rates: typing.List[RateCardResourceUsageBasedRatesItem]
17
- fixed_rates: typing.List[FixedRateInterface]
14
+ id: str = pydantic.Field()
15
+ """
16
+ The ID of the rate card.
17
+ """
18
+
19
+ name: str = pydantic.Field()
20
+ """
21
+ The name of the rate card.
22
+ """
23
+
24
+ description: typing.Optional[str] = pydantic.Field(default=None)
25
+ """
26
+ The description of the rate card.
27
+ """
28
+
29
+ usage_based_rates: typing.List[RateCardResourceUsageBasedRatesItem] = pydantic.Field()
30
+ """
31
+ The usage based rates of the rate card.
32
+ """
33
+
34
+ fixed_rates: typing.List[FixedRateInterface] = pydantic.Field()
35
+ """
36
+ The fixed rates of the rate card.
37
+ """
38
+
18
39
  billing_interval: RateCardResourceBillingInterval
19
- created_at: str
20
- updated_at: str
40
+ created_at: dt.datetime = pydantic.Field()
41
+ """
42
+ The date and time the rate card was created.
43
+ """
44
+
45
+ updated_at: dt.datetime = pydantic.Field()
46
+ """
47
+ The date and time the rate card was last updated.
48
+ """
49
+
21
50
  metadata: typing.Dict[str, str]
22
51
 
23
52
  if IS_PYDANTIC_V2:
@@ -13,7 +13,7 @@ class RateCardResourceUsageBasedRatesItem_Simple(UniversalBaseModel):
13
13
  usage_based_rate_type: typing.Literal["simple"] = "simple"
14
14
  id: str
15
15
  name: str
16
- description: str
16
+ description: typing.Optional[str] = None
17
17
  price: Price
18
18
  included_units: int
19
19
  pricing_metric_id: str
@@ -10,7 +10,7 @@ from .price import Price
10
10
  class SimpleUsageBasedRateInterface(UniversalBaseModel):
11
11
  id: str
12
12
  name: str
13
- description: str
13
+ description: typing.Optional[str] = None
14
14
  price: Price
15
15
  included_units: int
16
16
  pricing_metric_id: str
@@ -10,15 +10,46 @@ from .subscription_status import SubscriptionStatus
10
10
 
11
11
 
12
12
  class SubscriptionResource(UniversalBaseModel):
13
- id: str
14
- subject_id: str
15
- rate_card_id: str
16
- effective_at: dt.datetime
17
- cycles_next_at: typing.Optional[dt.datetime] = None
18
- current_period: typing.Optional[PeriodResource] = None
13
+ id: str = pydantic.Field()
14
+ """
15
+ The ID of the subscription.
16
+ """
17
+
18
+ subject_id: str = pydantic.Field()
19
+ """
20
+ The ID of the subject that the subscription is for.
21
+ """
22
+
23
+ rate_card_id: str = pydantic.Field()
24
+ """
25
+ The ID of the rate card of the subscription.
26
+ """
27
+
28
+ effective_at: dt.datetime = pydantic.Field()
29
+ """
30
+ The date and time the subscription became effective.
31
+ """
32
+
33
+ cycles_next_at: typing.Optional[dt.datetime] = pydantic.Field(default=None)
34
+ """
35
+ The date and time the next cycle of the subscription will start.
36
+ """
37
+
38
+ current_period: typing.Optional[PeriodResource] = pydantic.Field(default=None)
39
+ """
40
+ The current period of the subscription if it is active.
41
+ """
42
+
19
43
  metadata: typing.Dict[str, str]
20
- status: SubscriptionStatus
21
- cancels_at_end_of_cycle: bool
44
+ status: SubscriptionStatus = pydantic.Field()
45
+ """
46
+ The status of the subscription.
47
+ """
48
+
49
+ cancels_at_end_of_cycle: bool = pydantic.Field()
50
+ """
51
+ Whether the subscription will be cancelled at the end of the current cycle.
52
+ """
22
53
 
23
54
  if IS_PYDANTIC_V2:
24
55
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -6,8 +6,11 @@ import typing
6
6
  from importlib import import_module
7
7
 
8
8
  if typing.TYPE_CHECKING:
9
- from .types import CreateUsageEventSummaryRequestAggregationType
10
- _dynamic_imports: typing.Dict[str, str] = {"CreateUsageEventSummaryRequestAggregationType": ".types"}
9
+ from .types import CreateUsageEventRequestDataValue, CreateUsageEventSummaryRequestAggregationType
10
+ _dynamic_imports: typing.Dict[str, str] = {
11
+ "CreateUsageEventRequestDataValue": ".types",
12
+ "CreateUsageEventSummaryRequestAggregationType": ".types",
13
+ }
11
14
 
12
15
 
13
16
  def __getattr__(attr_name: str) -> typing.Any:
@@ -31,4 +34,4 @@ def __dir__():
31
34
  return sorted(lazy_attrs)
32
35
 
33
36
 
34
- __all__ = ["CreateUsageEventSummaryRequestAggregationType"]
37
+ __all__ = ["CreateUsageEventRequestDataValue", "CreateUsageEventSummaryRequestAggregationType"]
@@ -8,6 +8,7 @@ from ..core.request_options import RequestOptions
8
8
  from ..types.create_usage_event_summary_response import CreateUsageEventSummaryResponse
9
9
  from ..types.period import Period
10
10
  from .raw_client import AsyncRawUsageEventsClient, RawUsageEventsClient
11
+ from .types.create_usage_event_request_data_value import CreateUsageEventRequestDataValue
11
12
  from .types.create_usage_event_summary_request_aggregation_type import CreateUsageEventSummaryRequestAggregationType
12
13
 
13
14
  # this is used as the default value for optional parameters
@@ -35,7 +36,7 @@ class UsageEventsClient:
35
36
  idempotency_key: str,
36
37
  event_name: str,
37
38
  subject_id: str,
38
- data: typing.Dict[str, typing.Optional[typing.Any]],
39
+ data: typing.Dict[str, CreateUsageEventRequestDataValue],
39
40
  timestamp: typing.Optional[dt.datetime] = OMIT,
40
41
  request_options: typing.Optional[RequestOptions] = None,
41
42
  ) -> typing.Optional[typing.Any]:
@@ -43,14 +44,19 @@ class UsageEventsClient:
43
44
  Parameters
44
45
  ----------
45
46
  idempotency_key : str
47
+ The idempotency key for the usage event. This ensures that the same event is not processed multiple times.
46
48
 
47
49
  event_name : str
50
+ The name of the event. This is used by pricing metrics to aggregate usage events.
48
51
 
49
52
  subject_id : str
53
+ The ID of the subject that the usage event is for.
50
54
 
51
- data : typing.Dict[str, typing.Optional[typing.Any]]
55
+ data : typing.Dict[str, CreateUsageEventRequestDataValue]
56
+ The data of the usage event. This should contain any data that is needed to aggregate the usage event.
52
57
 
53
58
  timestamp : typing.Optional[dt.datetime]
59
+ The timestamp of the usage event. It is highly recommended to provide a timestamp. If not provided, the current timestamp will be used.
54
60
 
55
61
  request_options : typing.Optional[RequestOptions]
56
62
  Request-specific configuration.
@@ -160,7 +166,7 @@ class AsyncUsageEventsClient:
160
166
  idempotency_key: str,
161
167
  event_name: str,
162
168
  subject_id: str,
163
- data: typing.Dict[str, typing.Optional[typing.Any]],
169
+ data: typing.Dict[str, CreateUsageEventRequestDataValue],
164
170
  timestamp: typing.Optional[dt.datetime] = OMIT,
165
171
  request_options: typing.Optional[RequestOptions] = None,
166
172
  ) -> typing.Optional[typing.Any]:
@@ -168,14 +174,19 @@ class AsyncUsageEventsClient:
168
174
  Parameters
169
175
  ----------
170
176
  idempotency_key : str
177
+ The idempotency key for the usage event. This ensures that the same event is not processed multiple times.
171
178
 
172
179
  event_name : str
180
+ The name of the event. This is used by pricing metrics to aggregate usage events.
173
181
 
174
182
  subject_id : str
183
+ The ID of the subject that the usage event is for.
175
184
 
176
- data : typing.Dict[str, typing.Optional[typing.Any]]
185
+ data : typing.Dict[str, CreateUsageEventRequestDataValue]
186
+ The data of the usage event. This should contain any data that is needed to aggregate the usage event.
177
187
 
178
188
  timestamp : typing.Optional[dt.datetime]
189
+ The timestamp of the usage event. It is highly recommended to provide a timestamp. If not provided, the current timestamp will be used.
179
190
 
180
191
  request_options : typing.Optional[RequestOptions]
181
192
  Request-specific configuration.
@@ -14,6 +14,7 @@ from ..errors.unprocessable_entity_error import UnprocessableEntityError
14
14
  from ..types.create_usage_event_summary_response import CreateUsageEventSummaryResponse
15
15
  from ..types.http_validation_error import HttpValidationError
16
16
  from ..types.period import Period
17
+ from .types.create_usage_event_request_data_value import CreateUsageEventRequestDataValue
17
18
  from .types.create_usage_event_summary_request_aggregation_type import CreateUsageEventSummaryRequestAggregationType
18
19
 
19
20
  # this is used as the default value for optional parameters
@@ -30,7 +31,7 @@ class RawUsageEventsClient:
30
31
  idempotency_key: str,
31
32
  event_name: str,
32
33
  subject_id: str,
33
- data: typing.Dict[str, typing.Optional[typing.Any]],
34
+ data: typing.Dict[str, CreateUsageEventRequestDataValue],
34
35
  timestamp: typing.Optional[dt.datetime] = OMIT,
35
36
  request_options: typing.Optional[RequestOptions] = None,
36
37
  ) -> HttpResponse[typing.Optional[typing.Any]]:
@@ -38,14 +39,19 @@ class RawUsageEventsClient:
38
39
  Parameters
39
40
  ----------
40
41
  idempotency_key : str
42
+ The idempotency key for the usage event. This ensures that the same event is not processed multiple times.
41
43
 
42
44
  event_name : str
45
+ The name of the event. This is used by pricing metrics to aggregate usage events.
43
46
 
44
47
  subject_id : str
48
+ The ID of the subject that the usage event is for.
45
49
 
46
- data : typing.Dict[str, typing.Optional[typing.Any]]
50
+ data : typing.Dict[str, CreateUsageEventRequestDataValue]
51
+ The data of the usage event. This should contain any data that is needed to aggregate the usage event.
47
52
 
48
53
  timestamp : typing.Optional[dt.datetime]
54
+ The timestamp of the usage event. It is highly recommended to provide a timestamp. If not provided, the current timestamp will be used.
49
55
 
50
56
  request_options : typing.Optional[RequestOptions]
51
57
  Request-specific configuration.
@@ -63,7 +69,9 @@ class RawUsageEventsClient:
63
69
  "event_name": event_name,
64
70
  "subject_id": subject_id,
65
71
  "timestamp": timestamp,
66
- "data": data,
72
+ "data": convert_and_respect_annotation_metadata(
73
+ object_=data, annotation=typing.Dict[str, CreateUsageEventRequestDataValue], direction="write"
74
+ ),
67
75
  },
68
76
  headers={
69
77
  "content-type": "application/json",
@@ -179,7 +187,7 @@ class AsyncRawUsageEventsClient:
179
187
  idempotency_key: str,
180
188
  event_name: str,
181
189
  subject_id: str,
182
- data: typing.Dict[str, typing.Optional[typing.Any]],
190
+ data: typing.Dict[str, CreateUsageEventRequestDataValue],
183
191
  timestamp: typing.Optional[dt.datetime] = OMIT,
184
192
  request_options: typing.Optional[RequestOptions] = None,
185
193
  ) -> AsyncHttpResponse[typing.Optional[typing.Any]]:
@@ -187,14 +195,19 @@ class AsyncRawUsageEventsClient:
187
195
  Parameters
188
196
  ----------
189
197
  idempotency_key : str
198
+ The idempotency key for the usage event. This ensures that the same event is not processed multiple times.
190
199
 
191
200
  event_name : str
201
+ The name of the event. This is used by pricing metrics to aggregate usage events.
192
202
 
193
203
  subject_id : str
204
+ The ID of the subject that the usage event is for.
194
205
 
195
- data : typing.Dict[str, typing.Optional[typing.Any]]
206
+ data : typing.Dict[str, CreateUsageEventRequestDataValue]
207
+ The data of the usage event. This should contain any data that is needed to aggregate the usage event.
196
208
 
197
209
  timestamp : typing.Optional[dt.datetime]
210
+ The timestamp of the usage event. It is highly recommended to provide a timestamp. If not provided, the current timestamp will be used.
198
211
 
199
212
  request_options : typing.Optional[RequestOptions]
200
213
  Request-specific configuration.
@@ -212,7 +225,9 @@ class AsyncRawUsageEventsClient:
212
225
  "event_name": event_name,
213
226
  "subject_id": subject_id,
214
227
  "timestamp": timestamp,
215
- "data": data,
228
+ "data": convert_and_respect_annotation_metadata(
229
+ object_=data, annotation=typing.Dict[str, CreateUsageEventRequestDataValue], direction="write"
230
+ ),
216
231
  },
217
232
  headers={
218
233
  "content-type": "application/json",
@@ -6,9 +6,11 @@ import typing
6
6
  from importlib import import_module
7
7
 
8
8
  if typing.TYPE_CHECKING:
9
+ from .create_usage_event_request_data_value import CreateUsageEventRequestDataValue
9
10
  from .create_usage_event_summary_request_aggregation_type import CreateUsageEventSummaryRequestAggregationType
10
11
  _dynamic_imports: typing.Dict[str, str] = {
11
- "CreateUsageEventSummaryRequestAggregationType": ".create_usage_event_summary_request_aggregation_type"
12
+ "CreateUsageEventRequestDataValue": ".create_usage_event_request_data_value",
13
+ "CreateUsageEventSummaryRequestAggregationType": ".create_usage_event_summary_request_aggregation_type",
12
14
  }
13
15
 
14
16
 
@@ -33,4 +35,4 @@ def __dir__():
33
35
  return sorted(lazy_attrs)
34
36
 
35
37
 
36
- __all__ = ["CreateUsageEventSummaryRequestAggregationType"]
38
+ __all__ = ["CreateUsageEventRequestDataValue", "CreateUsageEventSummaryRequestAggregationType"]
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ CreateUsageEventRequestDataValue = typing.Union[str, int, float, bool]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lark-billing
3
- Version: 0.0.8
3
+ Version: 0.0.9
4
4
  Summary:
5
5
  Requires-Python: >=3.8,<4.0
6
6
  Classifier: Intended Audience :: Developers
@@ -53,8 +53,8 @@ client = Lark(
53
53
  api_key="YOUR_API_KEY",
54
54
  )
55
55
  client.checkout.create_subscription_checkout_session(
56
- subject_id="subject_id",
57
- rate_card_id="rate_card_id",
56
+ subject_id="subj_VyX6Q96h5avMho8O7QWlKeXE",
57
+ rate_card_id="rc_AJWMxR81jxoRlli6p13uf3JB",
58
58
  success_callback_url="https://example.com/callback",
59
59
  )
60
60
  ```
@@ -75,8 +75,8 @@ client = AsyncLark(
75
75
 
76
76
  async def main() -> None:
77
77
  await client.checkout.create_subscription_checkout_session(
78
- subject_id="subject_id",
79
- rate_card_id="rate_card_id",
78
+ subject_id="subj_VyX6Q96h5avMho8O7QWlKeXE",
79
+ rate_card_id="rc_AJWMxR81jxoRlli6p13uf3JB",
80
80
  success_callback_url="https://example.com/callback",
81
81
  )
82
82
 
@@ -1,11 +1,11 @@
1
- lark/__init__.py,sha256=6PZSM_VR0EuEVtS4SUQ6pmiwvkwijsfTeIAajrItjb4,8183
1
+ lark/__init__.py,sha256=s_EmHpLbMpKBNFoKPo-nYHvQ7PpbhueS4xGAyZJihlI,8314
2
2
  lark/checkout/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
3
- lark/checkout/client.py,sha256=HNyXw_0o0NbfYjv7DyXcfKQ8L3jO7a2WIwGqXjQKfL4,4584
4
- lark/checkout/raw_client.py,sha256=PgtTi45gzMbplMzcgVUr-W_Mf57TBVuwkvKemVbvZI0,6282
3
+ lark/checkout/client.py,sha256=LjSKK7GhZMHyUcsQG4oWZCAsjnYgQmmuHlF_PA4x2UU,4882
4
+ lark/checkout/raw_client.py,sha256=oRoXAuZzZn-eCCPcB34QzGmAu8NBFVprA-14krIPQSM,6512
5
5
  lark/client.py,sha256=cpy-iyLMnTnHLsHRNyRCaKFPyPCQwY425SRGG-B3kI4,12650
6
6
  lark/core/__init__.py,sha256=GkNNgA0CeqvpCzo2vVtAafE8YcnGV-VGtbU5op93lbc,3624
7
7
  lark/core/api_error.py,sha256=44vPoTyWN59gonCIZMdzw7M1uspygiLnr3GNFOoVL2Q,614
8
- lark/core/client_wrapper.py,sha256=EahlMGvqxt1Yny5y6EwSJ6ADoIVOig4-mdHIp9jwITg,2374
8
+ lark/core/client_wrapper.py,sha256=6OhBJ7ltCATBaS2Fo3vYJHoYdIks7743qu11aTDjjZs,2374
9
9
  lark/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
10
10
  lark/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
11
11
  lark/core/force_multipart.py,sha256=cH981xLy0kZVKiZZkFoeUjgJ2Zuq7KXB2aRAnmHzRDc,477
@@ -26,8 +26,8 @@ lark/customer_access/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhX
26
26
  lark/customer_access/client.py,sha256=wKvoiC1trQOC99bMoihluFF7BXZi9f18Yu96EFnXc_Q,2989
27
27
  lark/customer_access/raw_client.py,sha256=0hK-AC5QpLxkiQJ8eeNXespg4MnXVO1UIwGS-e0MM4I,4668
28
28
  lark/customer_portal/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
29
- lark/customer_portal/client.py,sha256=hDiShY7gyhNrqVIMlBs_VEhTtmfxL5OC62Z0OoemmjM,3322
30
- lark/customer_portal/raw_client.py,sha256=ykHL6kRZWFjks1T8ej8SwQQofDfeWC0Y9ojgm81SfKY,5194
29
+ lark/customer_portal/client.py,sha256=_AL-7HEcvn7qcscLbBlXUXAncA2shxEAfZwP-W4Jf_8,3514
30
+ lark/customer_portal/raw_client.py,sha256=yZ0OfBdT019Rx8N40kCuZCQ_Mg7v01RZiMmuX7BKEDg,5348
31
31
  lark/environment.py,sha256=dyFMCpgEEgFYj5pj8M-IxENul1uXC6owvlm4Kn6Lw3A,152
32
32
  lark/errors/__init__.py,sha256=4g1JPPnrPS-pG-WGU1S8HrYE5RoctStcA35abyL_tmI,1134
33
33
  lark/errors/unprocessable_entity_error.py,sha256=aDgvUf-6k1fSUL-OxI3MgOIFQNssTUNpv5vW9M4vfRc,401
@@ -41,36 +41,36 @@ lark/pricing_metrics/types/__init__.py,sha256=DaWe3hOaIKUlI4nWjNOmEtjks5ges3BFq4
41
41
  lark/pricing_metrics/types/pricing_metric_aggregation.py,sha256=NkO1F-g7n1UfUVVaYmcmeBnOP-lcu1lhs5_TQytj_b0,1145
42
42
  lark/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
43
  lark/rate_cards/__init__.py,sha256=3LWPsE39Ghmz_TbuxHsRnf7yySPt9iZ2YV3okPtQY78,1492
44
- lark/rate_cards/client.py,sha256=I90dIRlUoEFxr_SETRIh35bA3s35Z8qY0CjKVaDrWzg,8772
45
- lark/rate_cards/raw_client.py,sha256=XbrTjYBcutmP61T4SBb_seHRaMPokwENm1fdYCERxHY,15578
44
+ lark/rate_cards/client.py,sha256=EX_0E2vKYYKJx03_sTXo-vb09eARRWCZVNjWgRd3UzM,9194
45
+ lark/rate_cards/raw_client.py,sha256=L5hixIrIAicH0Q-ebN6gpOSPsp-m4Nt0CaLolyqo9_M,15992
46
46
  lark/rate_cards/types/__init__.py,sha256=-5y0ZgXL6PifZrZJGGa3mOQZS7iD20Ui-sLmNKY5kRM,1704
47
47
  lark/rate_cards/types/create_rate_card_request_billing_interval.py,sha256=k-FOfMuwtBOTn0ZIGkWuJcFBbqbsPkUO4_DvIcBXLRc,181
48
- lark/rate_cards/types/create_rate_card_request_usage_based_rates_item.py,sha256=nXCkT-U6VwpJ-UWQOOMyS2yFEcaaWGVnH0ivLIpXyDo,941
48
+ lark/rate_cards/types/create_rate_card_request_usage_based_rates_item.py,sha256=DW9qJ6ntDrzf9Z3b2RlyndGtIuNQ6nuxWNrCkHWMXqA,917
49
49
  lark/subjects/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
50
50
  lark/subjects/client.py,sha256=eBvTNKJxMXSSthIhRAaD0770yhrL3r1iFmfPVZtL2cM,13033
51
51
  lark/subjects/raw_client.py,sha256=WTDK-HZT-P9AU2WvT_l3PprR2DM63soG4p4bv4o0Quo,23921
52
52
  lark/subscriptions/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
53
- lark/subscriptions/client.py,sha256=Oq9hcA71jnufcerH-38VBQTNaDdeKyDZ0MxkmsfKV9g,13891
54
- lark/subscriptions/raw_client.py,sha256=NsF0U4SD-JEI0wmgjj6Jcx9nv8xmTiTmeBXJo0a37ck,23990
53
+ lark/subscriptions/client.py,sha256=sHFGqklJPQZYK7EqltplXAjrTcwQLhcMeMKST0T2d6c,14025
54
+ lark/subscriptions/raw_client.py,sha256=MB44QSJB5yREoPR8VIXGenhdE9ltF4bkuqAKxuLpB88,24124
55
55
  lark/types/__init__.py,sha256=3PAjZAUxKQGJVjyq0ynltWkF_QrUImQf9QTfvTOrtJE,8199
56
56
  lark/types/aggregation.py,sha256=JTY5X_dJn0Nv7W-KvdcsavKgqMGQ6Yv1AD2qREl9BBw,1079
57
- lark/types/amount.py,sha256=1RNZbJNsLMUCPFRq6_iU6hFs1wbg6IJkQ_wUPWOX8Kk,639
57
+ lark/types/amount.py,sha256=iVq6zpS5qreE_l7NU5fAZMs7WjtAzj4RgmSJyoYaIes,711
58
58
  lark/types/billing_state_response.py,sha256=PwsR7EjjKal_GHaxsfPUztyDuunAevjwL85KFKvSShk,579
59
59
  lark/types/count_aggregation_pricing_metric_interface.py,sha256=4RnOiOWtUUCkqT-rc0HHetar8DmI72lX0_yaZR1ZTTc,530
60
60
  lark/types/count_aggregation_pricing_metric_resource.py,sha256=RNCjrE6zT_Aw8gQWZNNzbAAKmRqISQI3df9em-d4tyk,529
61
- lark/types/create_customer_portal_session_response.py,sha256=V9YASol5nLLGTCzykViIuenPhX_tUtHF5VObvN62lOI,561
62
- lark/types/create_fixed_rate_request.py,sha256=3cSEScYrlIUNbDCqDI-8f18lQajXJQl0aLWrkCQy_u4,640
61
+ lark/types/create_customer_portal_session_response.py,sha256=tlxssxzJ5O-FFNR4guvZWcjpX4BOwm8M-pY8XlWKKyM,747
62
+ lark/types/create_fixed_rate_request.py,sha256=kpBMbKRoll7m0JOc1WCAH_Iygm2le8qToDdvizqycIo,804
63
63
  lark/types/create_pricing_metric_response.py,sha256=4qzlMDVkAhRMrUCPt9IDS8h6r0EagIJuZOgpTNBwq8g,646
64
- lark/types/create_simple_usage_based_rate_request.py,sha256=vZ5wnTZGuXBQnJjJFYyhMQhIDQz-Lia9MAxQ83hI8l0,816
64
+ lark/types/create_simple_usage_based_rate_request.py,sha256=5KkTMHWL1kAACLYoSXQ1EBLqqPNXyCujewalXEKo8GU,1095
65
65
  lark/types/create_subject_response.py,sha256=vq0cjT7OE7LMBkFxz1Cbs2bVTAw8vmr4C-LgeksZJ3A,1333
66
- lark/types/create_subscription_checkout_session_response.py,sha256=kO4Z5DzluPutnYYSW6ZiDrySL1DHmCka2POCyeDrFaA,605
66
+ lark/types/create_subscription_checkout_session_response.py,sha256=fAra37vkSc4N_at4vU9cx3Q0o2p3pNx3vfkTK2PuxpA,837
67
67
  lark/types/create_usage_event_summary_response.py,sha256=9GWy3RxD02CDt3qHpsTSlouwzaztWlRqfkRAGNHpEgU,649
68
- lark/types/fixed_rate_interface.py,sha256=zQuokRdlr6aWHO6lAmdYmBOBQCHqBBaQ65bZQvBNElc,600
68
+ lark/types/fixed_rate_interface.py,sha256=r6fifBNcZowmC799zNeUzxQXGLvSuWTCiYw3GwWCzBw,624
69
69
  lark/types/flat_price.py,sha256=JPhR3x686VtDTvMfToATj3mwTKNE4W4wcj3nCmm-A5g,631
70
70
  lark/types/get_pricing_metric_response.py,sha256=tojAOAuufWaFOEwcLGmnrOrguCP_FbzW_otJPXnZ_P8,643
71
71
  lark/types/http_validation_error.py,sha256=NNTK9AbbHXm0n9m1YcsG5zEaSn1n6RghohUX5R8LGzw,623
72
72
  lark/types/invoice_line_item_resource.py,sha256=KW3tkZ9yyS2PJ5p_EvgjJo5YCmtEU2oGc6QJ6VjIgBo,634
73
- lark/types/invoice_resource.py,sha256=XXWt_DkyH7NNXMgcNR7xumArbaPlzbyIbhR6gK4bclY,933
73
+ lark/types/invoice_resource.py,sha256=bN7TuFRI1PYAWs3c5gUyKtThkO7ZY_M_SlMvuH7vqfs,1382
74
74
  lark/types/invoice_status.py,sha256=iCLPcMrXWWPQHsitPT9x0Fj_GjTlbG0KVv6F0f4E5g4,187
75
75
  lark/types/list_invoices_response.py,sha256=GaE8TwfDdEaQcd74xv8JBA1qfS8OnO9CI1vS3VaRIQg,621
76
76
  lark/types/list_pricing_metrics_response.py,sha256=Ioj7eZ3NwEz92v0dVI4RL_mm9mrHqAwora04iZ5x-h8,653
@@ -84,24 +84,25 @@ lark/types/period.py,sha256=rjptqL1APWiYEMxIluE5vL1vuAXKXwnIzl0AsnWBKCA,625
84
84
  lark/types/period_resource.py,sha256=TpKNhaxn-G5ufDH35MQ6DTxnUDEhDPe7jx_eq6j0BUs,671
85
85
  lark/types/price.py,sha256=1Cn5GRNmqs6yPw5Ajemx7Uxlozz3yBzcAUCkXKFFqw4,1261
86
86
  lark/types/pricing_metric_resource.py,sha256=kTiAIzXlt-PGAWhipTtbPd7KBBy56-yFhsCHZTmhXBU,640
87
- lark/types/rate_card_resource.py,sha256=xDjYAXA_I8G0-ZQF402lvjxl3EG6cqwgPUI_IWaVrZA,1032
87
+ lark/types/rate_card_resource.py,sha256=crx6hsqgPdWE0IXyY3OV-ya44rK4covAFGlC2_d19-A,1634
88
88
  lark/types/rate_card_resource_billing_interval.py,sha256=OT3PxH3tQBXo7TvxcRLcTsXd8dBZo8po1T_k4OWQY7g,176
89
- lark/types/rate_card_resource_usage_based_rates_item.py,sha256=cQDKUru8SAJVRnAbifIWRBmAlACUToiEVe-9QzN2000,857
90
- lark/types/simple_usage_based_rate_interface.py,sha256=Z4UOl3e-Eiv8YIrr45i5RGfnpx6ZJvrNUqcoZQMc918,662
89
+ lark/types/rate_card_resource_usage_based_rates_item.py,sha256=7iABgvL3UkBVjVKCBKUFghFJbOysHeSPBQiFyn6hnfg,881
90
+ lark/types/simple_usage_based_rate_interface.py,sha256=a6Hlc2IA-RVk76tFn28WSQAhBFU9PB6n6HJxFfpNvys,686
91
91
  lark/types/subject_resource.py,sha256=oacQXkEfmSjMN6muasjU0hQ10OoNYIxdsIMklS9fqiQ,1327
92
- lark/types/subscription_resource.py,sha256=812CKt7cYgRk4HofXxMIVOhMQZj4mRL8I0AsLfqQZX4,931
92
+ lark/types/subscription_resource.py,sha256=UEmtA1Ias7BQawC_DDqO_dmVH9uzzPU_lGXV0phqbkk,1667
93
93
  lark/types/subscription_status.py,sha256=CapkxBTKLbKr6gDn3rnsXXUCqp59F839uWkvrtdVc9M,175
94
94
  lark/types/sum_aggregation_pricing_metric_interface.py,sha256=R_sDNeB5RaZ9o4-O1_ceC7Ium_NKn5m6egj9AykjEN4,608
95
95
  lark/types/sum_aggregation_pricing_metric_resource.py,sha256=PeF2LCNjjILU5OneNMCluIqW0CTM1SPW6VRX6-H7P9E,549
96
96
  lark/types/validation_error.py,sha256=Ou-GSQTdmDFWIFlP_y9ka_EUAavqFEFLonU9srAkJdc,642
97
97
  lark/types/validation_error_loc_item.py,sha256=LAtjCHIllWRBFXvAZ5QZpp7CPXjdtN9EB7HrLVo6EP0,128
98
98
  lark/types/value.py,sha256=s8eOsCXi5_1G0uGPyW2QUaJFzJcCCqN-FMYJnA9UR9s,113
99
- lark/usage_events/__init__.py,sha256=Qv907rll-HgEgk2S4L40ZH7cU-h2BC97gLd5L7tMaWY,1155
100
- lark/usage_events/client.py,sha256=AN5Eu8X59v99-s6X8fcBwKbs0pnLYh1GVrojsUqUCwI,7743
101
- lark/usage_events/raw_client.py,sha256=cWTLiwSuR0_9q8YfbcVryHrfezyP_nDyU45jgN68EC4,11752
102
- lark/usage_events/types/__init__.py,sha256=zAaz1oVwvwjfhEubLwwIoDAoqeiqwnXw95CAXIoJ2cY,1253
99
+ lark/usage_events/__init__.py,sha256=WdBlMaKZ2oUYEeT7TDESrFmeZD-SKprjn2nNvBnruR4,1282
100
+ lark/usage_events/client.py,sha256=oIFFE51E6lwOcP6B_lLGVu2p4-OUdkHBM8V67EQIm48,8931
101
+ lark/usage_events/raw_client.py,sha256=JQnDQthlD8UDl_zK2i0dskPOCgNoiW7fUDIFYMnIKzE,13278
102
+ lark/usage_events/types/__init__.py,sha256=AvuB8iRcBiI3Gg4mF-HSJA-iwZgO_LopLh806SNDoq4,1460
103
+ lark/usage_events/types/create_usage_event_request_data_value.py,sha256=gj_U2ENl4Y2XxUMZUNwWFU6jjy0PXwzD7q9CiIWu1Ls,151
103
104
  lark/usage_events/types/create_usage_event_summary_request_aggregation_type.py,sha256=0jg9JuFlG2TmTeQvPY4yHV_9Ec2MpPe_zqKffvBpCvw,192
104
105
  lark/version.py,sha256=maFXg-cBsqCfydHwhGdh6kzQElFbriuo8a2yvidAV1c,79
105
- lark_billing-0.0.8.dist-info/METADATA,sha256=HO_UuSpURWf4IQKeHeu3hqDFveDIe0DTxp9tQ1ELIsI,5612
106
- lark_billing-0.0.8.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
107
- lark_billing-0.0.8.dist-info/RECORD,,
106
+ lark_billing-0.0.9.dist-info/METADATA,sha256=ssBMelXc3b-Oc2N0eGBblOVtpajaRRigxk82yf6PgEk,5680
107
+ lark_billing-0.0.9.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
108
+ lark_billing-0.0.9.dist-info/RECORD,,