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 +3 -1
- lark/checkout/client.py +8 -4
- lark/checkout/raw_client.py +4 -0
- lark/core/client_wrapper.py +2 -2
- lark/customer_portal/client.py +4 -2
- lark/customer_portal/raw_client.py +2 -0
- lark/rate_cards/client.py +16 -10
- lark/rate_cards/raw_client.py +20 -14
- lark/rate_cards/types/create_rate_card_request_usage_based_rates_item.py +1 -1
- lark/subscriptions/client.py +4 -2
- lark/subscriptions/raw_client.py +2 -0
- lark/types/amount.py +4 -1
- lark/types/create_customer_portal_session_response.py +9 -2
- lark/types/create_fixed_rate_request.py +10 -2
- lark/types/create_simple_usage_based_rate_request.py +15 -3
- lark/types/create_subscription_checkout_session_response.py +14 -3
- lark/types/fixed_rate_interface.py +1 -1
- lark/types/invoice_resource.py +34 -9
- lark/types/rate_card_resource.py +36 -7
- lark/types/rate_card_resource_usage_based_rates_item.py +1 -1
- lark/types/simple_usage_based_rate_interface.py +1 -1
- lark/types/subscription_resource.py +39 -8
- lark/usage_events/__init__.py +6 -3
- lark/usage_events/client.py +15 -4
- lark/usage_events/raw_client.py +21 -6
- lark/usage_events/types/__init__.py +4 -2
- lark/usage_events/types/create_usage_event_request_data_value.py +5 -0
- {lark_billing-0.0.8.dist-info → lark_billing-0.0.9.dist-info}/METADATA +5 -5
- {lark_billing-0.0.8.dist-info → lark_billing-0.0.9.dist-info}/RECORD +30 -29
- {lark_billing-0.0.8.dist-info → lark_billing-0.0.9.dist-info}/WHEEL +0 -0
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="
|
|
68
|
-
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="
|
|
141
|
-
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
|
|
lark/checkout/raw_client.py
CHANGED
|
@@ -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.
|
lark/core/client_wrapper.py
CHANGED
|
@@ -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.
|
|
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.
|
|
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
|
lark/customer_portal/client.py
CHANGED
|
@@ -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="
|
|
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="
|
|
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="
|
|
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="
|
|
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
|
)
|
lark/rate_cards/raw_client.py
CHANGED
|
@@ -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:
|
|
14
|
+
name: str
|
|
15
15
|
description: typing.Optional[str] = None
|
|
16
16
|
price: Price
|
|
17
17
|
included_units: typing.Optional[int] = None
|
lark/subscriptions/client.py
CHANGED
|
@@ -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="
|
|
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="
|
|
479
|
+
rate_card_id="rc_jQK2n0wutCj6bBcAIrL6o07g",
|
|
478
480
|
)
|
|
479
481
|
|
|
480
482
|
|
lark/subscriptions/raw_client.py
CHANGED
|
@@ -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
|
-
|
|
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:
|
|
12
|
-
|
|
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:
|
|
12
|
-
|
|
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
|
-
|
|
13
|
-
|
|
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
|
lark/types/invoice_resource.py
CHANGED
|
@@ -11,15 +11,40 @@ from .invoice_status import InvoiceStatus
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
class InvoiceResource(UniversalBaseModel):
|
|
14
|
-
id: str
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
lark/types/rate_card_resource.py
CHANGED
|
@@ -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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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:
|
|
20
|
-
|
|
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,15 +10,46 @@ from .subscription_status import SubscriptionStatus
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class SubscriptionResource(UniversalBaseModel):
|
|
13
|
-
id: str
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
|
|
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
|
lark/usage_events/__init__.py
CHANGED
|
@@ -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] = {
|
|
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"]
|
lark/usage_events/client.py
CHANGED
|
@@ -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,
|
|
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,
|
|
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,
|
|
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,
|
|
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.
|
lark/usage_events/raw_client.py
CHANGED
|
@@ -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,
|
|
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,
|
|
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":
|
|
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,
|
|
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,
|
|
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":
|
|
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
|
-
"
|
|
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"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: lark-billing
|
|
3
|
-
Version: 0.0.
|
|
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="
|
|
57
|
-
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="
|
|
79
|
-
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=
|
|
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=
|
|
4
|
-
lark/checkout/raw_client.py,sha256=
|
|
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=
|
|
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=
|
|
30
|
-
lark/customer_portal/raw_client.py,sha256=
|
|
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=
|
|
45
|
-
lark/rate_cards/raw_client.py,sha256=
|
|
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=
|
|
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=
|
|
54
|
-
lark/subscriptions/raw_client.py,sha256=
|
|
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=
|
|
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=
|
|
62
|
-
lark/types/create_fixed_rate_request.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
90
|
-
lark/types/simple_usage_based_rate_interface.py,sha256=
|
|
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=
|
|
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=
|
|
100
|
-
lark/usage_events/client.py,sha256=
|
|
101
|
-
lark/usage_events/raw_client.py,sha256=
|
|
102
|
-
lark/usage_events/types/__init__.py,sha256=
|
|
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.
|
|
106
|
-
lark_billing-0.0.
|
|
107
|
-
lark_billing-0.0.
|
|
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,,
|
|
File without changes
|