lark-billing 0.0.6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of lark-billing might be problematic. Click here for more details.
- lark/__init__.py +522 -0
- lark/checkout/__init__.py +4 -0
- lark/checkout/client.py +214 -0
- lark/checkout/raw_client.py +252 -0
- lark/client.py +240 -0
- lark/core/__init__.py +105 -0
- lark/core/api_error.py +23 -0
- lark/core/client_wrapper.py +79 -0
- lark/core/datetime_utils.py +28 -0
- lark/core/file.py +67 -0
- lark/core/force_multipart.py +18 -0
- lark/core/http_client.py +543 -0
- lark/core/http_response.py +55 -0
- lark/core/jsonable_encoder.py +100 -0
- lark/core/pydantic_utilities.py +258 -0
- lark/core/query_encoder.py +58 -0
- lark/core/remove_none_from_dict.py +11 -0
- lark/core/request_options.py +35 -0
- lark/core/serialization.py +276 -0
- lark/errors/__init__.py +34 -0
- lark/errors/unprocessable_entity_error.py +11 -0
- lark/feature_access/__init__.py +4 -0
- lark/feature_access/client.py +102 -0
- lark/feature_access/raw_client.py +113 -0
- lark/py.typed +0 -0
- lark/rate_cards/__init__.py +61 -0
- lark/rate_cards/client.py +817 -0
- lark/rate_cards/raw_client.py +728 -0
- lark/rate_cards/types/__init__.py +63 -0
- lark/rate_cards/types/create_rate_card_request_billing_interval.py +5 -0
- lark/rate_cards/types/create_rate_card_request_usage_based_rates_item.py +56 -0
- lark/rate_cards/types/create_rate_card_version_request_usage_based_rates_item.py +58 -0
- lark/rate_cards/types/create_rate_card_version_request_version_type.py +5 -0
- lark/subjects/__init__.py +4 -0
- lark/subjects/client.py +501 -0
- lark/subjects/raw_client.py +633 -0
- lark/subscriptions/__init__.py +4 -0
- lark/subscriptions/client.py +462 -0
- lark/subscriptions/raw_client.py +495 -0
- lark/types/__init__.py +493 -0
- lark/types/aggregation.py +80 -0
- lark/types/amount.py +20 -0
- lark/types/check_feature_access_request.py +24 -0
- lark/types/check_feature_access_response.py +21 -0
- lark/types/complete_subscription_checkout_response.py +21 -0
- lark/types/count_aggregation_pricing_metric_interface.py +17 -0
- lark/types/create_credit_grant_interface.py +27 -0
- lark/types/create_credit_grant_interface_expiration.py +27 -0
- lark/types/create_credit_pool_request.py +5 -0
- lark/types/create_dimension_coordinate_interface.py +20 -0
- lark/types/create_dimension_interface.py +20 -0
- lark/types/create_dimensional_usage_based_rate_interface.py +32 -0
- lark/types/create_fixed_rate_interface.py +28 -0
- lark/types/create_pricing_matrix_cell_interface.py +22 -0
- lark/types/create_pricing_matrix_interface.py +20 -0
- lark/types/create_pricing_metric_interface.py +26 -0
- lark/types/create_pricing_plan_request.py +5 -0
- lark/types/create_rate_card_response.py +36 -0
- lark/types/create_rate_card_response_billing_interval.py +5 -0
- lark/types/create_rate_card_response_usage_based_rates_item.py +58 -0
- lark/types/create_rate_card_version_response.py +36 -0
- lark/types/create_rate_card_version_response_billing_interval.py +5 -0
- lark/types/create_rate_card_version_response_usage_based_rates_item.py +59 -0
- lark/types/create_simple_usage_based_rate_interface.py +30 -0
- lark/types/create_subject_response.py +24 -0
- lark/types/create_subscription_checkout_session_response.py +23 -0
- lark/types/create_usage_event_summary_response.py +23 -0
- lark/types/credit_grant.py +5 -0
- lark/types/credit_grant_date_time_expiration_interface.py +19 -0
- lark/types/credit_grant_date_time_expiration_resource.py +19 -0
- lark/types/credit_grant_duration_expiration_interface.py +21 -0
- lark/types/credit_grant_duration_expiration_resource.py +21 -0
- lark/types/credit_grant_interface.py +28 -0
- lark/types/credit_grant_interface_input_expiration.py +27 -0
- lark/types/credit_grant_interface_output_expiration.py +43 -0
- lark/types/credit_grant_interface_output_schedule.py +41 -0
- lark/types/credit_grant_resource.py +28 -0
- lark/types/credit_grant_resource_input_expiration.py +27 -0
- lark/types/credit_grant_resource_input_schedule.py +39 -0
- lark/types/credit_grant_resource_output_expiration.py +43 -0
- lark/types/credit_grant_resource_output_schedule.py +39 -0
- lark/types/credit_grant_schedule.py +5 -0
- lark/types/credit_grant_schedule_one_time_interface.py +19 -0
- lark/types/credit_grant_schedule_one_time_resource.py +17 -0
- lark/types/credit_grant_schedule_rate_cycle_start_interface.py +19 -0
- lark/types/credit_grant_schedule_rate_cycle_start_resource.py +17 -0
- lark/types/credit_grant_subject_granting_config_interface.py +20 -0
- lark/types/credit_pool.py +5 -0
- lark/types/credit_pool_rollover_config.py +5 -0
- lark/types/custom_aggregation_pricing_metric_interface.py +22 -0
- lark/types/custom_pricing_metric.py +5 -0
- lark/types/custom_unit.py +5 -0
- lark/types/custom_unit_amount.py +5 -0
- lark/types/dimension.py +5 -0
- lark/types/dimension_coordinate.py +5 -0
- lark/types/dimension_coordinate_interface.py +20 -0
- lark/types/dimension_coordinate_set.py +5 -0
- lark/types/dimension_interface.py +20 -0
- lark/types/dimensional_rate_matrix.py +5 -0
- lark/types/dimensional_rate_matrix_cell.py +5 -0
- lark/types/dimensional_usage_based_rate.py +5 -0
- lark/types/dimensional_usage_based_rate_input.py +5 -0
- lark/types/dimensional_usage_based_rate_interface.py +33 -0
- lark/types/feature_access_resource.py +21 -0
- lark/types/fixed_rate_interface.py +29 -0
- lark/types/flat_price.py +24 -0
- lark/types/get_rate_card_response.py +36 -0
- lark/types/get_rate_card_response_billing_interval.py +5 -0
- lark/types/get_rate_card_response_usage_based_rates_item.py +58 -0
- lark/types/grant_credits_request.py +5 -0
- lark/types/http_validation_error.py +20 -0
- lark/types/last_aggregation_pricing_metric_interface.py +22 -0
- lark/types/license_based_rate.py +5 -0
- lark/types/license_based_rate_input.py +5 -0
- lark/types/list_rate_cards_response.py +21 -0
- lark/types/list_subjects_response.py +21 -0
- lark/types/list_subscriptions_response.py +21 -0
- lark/types/max_aggregation_pricing_metric_interface.py +22 -0
- lark/types/monetary_amount.py +5 -0
- lark/types/package_price.py +27 -0
- lark/types/package_price_rounding_behavior.py +5 -0
- lark/types/package_price_wrapper.py +5 -0
- lark/types/period.py +22 -0
- lark/types/price.py +5 -0
- lark/types/pricing_matrix_cell_interface.py +22 -0
- lark/types/pricing_matrix_interface.py +20 -0
- lark/types/pricing_metric.py +5 -0
- lark/types/pricing_metric_interface.py +27 -0
- lark/types/pricing_plan.py +5 -0
- lark/types/pricing_plan_subscription.py +5 -0
- lark/types/pricing_tier.py +5 -0
- lark/types/rate_card.py +5 -0
- lark/types/rate_card_resource.py +36 -0
- lark/types/rate_card_resource_billing_interval.py +5 -0
- lark/types/rate_card_resource_usage_based_rates_item.py +58 -0
- lark/types/rate_card_version.py +5 -0
- lark/types/rate_card_version_input.py +5 -0
- lark/types/simple_usage_based_rate.py +5 -0
- lark/types/simple_usage_based_rate_input.py +5 -0
- lark/types/simple_usage_based_rate_interface.py +31 -0
- lark/types/status.py +5 -0
- lark/types/subject.py +5 -0
- lark/types/subject_granting_config.py +5 -0
- lark/types/subject_granting_config_resource.py +20 -0
- lark/types/subject_resource.py +24 -0
- lark/types/subscription_resource.py +28 -0
- lark/types/sum_aggregation_pricing_metric_interface.py +22 -0
- lark/types/tiered_price.py +5 -0
- lark/types/tiered_price_wrapper.py +5 -0
- lark/types/unit.py +5 -0
- lark/types/update_pricing_plan_request.py +5 -0
- lark/types/update_rate_card_request.py +5 -0
- lark/types/update_subscription_request.py +5 -0
- lark/types/usage_based_rate.py +5 -0
- lark/types/usage_based_rate_input.py +5 -0
- lark/types/usage_unit.py +5 -0
- lark/types/validation_error.py +22 -0
- lark/types/validation_error_loc_item.py +5 -0
- lark/usage_events/__init__.py +34 -0
- lark/usage_events/client.py +293 -0
- lark/usage_events/raw_client.py +318 -0
- lark/usage_events/types/__init__.py +36 -0
- lark/usage_events/types/create_usage_event_summary_request_aggregation_type.py +5 -0
- lark/version.py +3 -0
- lark_billing-0.0.6.dist-info/METADATA +188 -0
- lark_billing-0.0.6.dist-info/RECORD +167 -0
- lark_billing-0.0.6.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,728 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
from json.decoder import JSONDecodeError
|
|
5
|
+
|
|
6
|
+
from ..core.api_error import ApiError
|
|
7
|
+
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
8
|
+
from ..core.http_response import AsyncHttpResponse, HttpResponse
|
|
9
|
+
from ..core.jsonable_encoder import jsonable_encoder
|
|
10
|
+
from ..core.pydantic_utilities import parse_obj_as
|
|
11
|
+
from ..core.request_options import RequestOptions
|
|
12
|
+
from ..core.serialization import convert_and_respect_annotation_metadata
|
|
13
|
+
from ..errors.unprocessable_entity_error import UnprocessableEntityError
|
|
14
|
+
from ..types.create_credit_grant_interface import CreateCreditGrantInterface
|
|
15
|
+
from ..types.create_fixed_rate_interface import CreateFixedRateInterface
|
|
16
|
+
from ..types.create_rate_card_response import CreateRateCardResponse
|
|
17
|
+
from ..types.create_rate_card_version_response import CreateRateCardVersionResponse
|
|
18
|
+
from ..types.credit_grant_resource import CreditGrantResource
|
|
19
|
+
from ..types.feature_access_resource import FeatureAccessResource
|
|
20
|
+
from ..types.fixed_rate_interface import FixedRateInterface
|
|
21
|
+
from ..types.get_rate_card_response import GetRateCardResponse
|
|
22
|
+
from ..types.http_validation_error import HttpValidationError
|
|
23
|
+
from ..types.list_rate_cards_response import ListRateCardsResponse
|
|
24
|
+
from .types.create_rate_card_request_billing_interval import CreateRateCardRequestBillingInterval
|
|
25
|
+
from .types.create_rate_card_request_usage_based_rates_item import CreateRateCardRequestUsageBasedRatesItem
|
|
26
|
+
from .types.create_rate_card_version_request_usage_based_rates_item import (
|
|
27
|
+
CreateRateCardVersionRequestUsageBasedRatesItem,
|
|
28
|
+
)
|
|
29
|
+
from .types.create_rate_card_version_request_version_type import CreateRateCardVersionRequestVersionType
|
|
30
|
+
|
|
31
|
+
# this is used as the default value for optional parameters
|
|
32
|
+
OMIT = typing.cast(typing.Any, ...)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class RawRateCardsClient:
|
|
36
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
37
|
+
self._client_wrapper = client_wrapper
|
|
38
|
+
|
|
39
|
+
def list_rate_cards(
|
|
40
|
+
self,
|
|
41
|
+
*,
|
|
42
|
+
limit: typing.Optional[int] = None,
|
|
43
|
+
offset: typing.Optional[int] = None,
|
|
44
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
45
|
+
) -> HttpResponse[ListRateCardsResponse]:
|
|
46
|
+
"""
|
|
47
|
+
Parameters
|
|
48
|
+
----------
|
|
49
|
+
limit : typing.Optional[int]
|
|
50
|
+
|
|
51
|
+
offset : typing.Optional[int]
|
|
52
|
+
|
|
53
|
+
request_options : typing.Optional[RequestOptions]
|
|
54
|
+
Request-specific configuration.
|
|
55
|
+
|
|
56
|
+
Returns
|
|
57
|
+
-------
|
|
58
|
+
HttpResponse[ListRateCardsResponse]
|
|
59
|
+
Successful Response
|
|
60
|
+
"""
|
|
61
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
62
|
+
"rate-cards",
|
|
63
|
+
method="GET",
|
|
64
|
+
params={
|
|
65
|
+
"limit": limit,
|
|
66
|
+
"offset": offset,
|
|
67
|
+
},
|
|
68
|
+
request_options=request_options,
|
|
69
|
+
)
|
|
70
|
+
try:
|
|
71
|
+
if 200 <= _response.status_code < 300:
|
|
72
|
+
_data = typing.cast(
|
|
73
|
+
ListRateCardsResponse,
|
|
74
|
+
parse_obj_as(
|
|
75
|
+
type_=ListRateCardsResponse, # type: ignore
|
|
76
|
+
object_=_response.json(),
|
|
77
|
+
),
|
|
78
|
+
)
|
|
79
|
+
return HttpResponse(response=_response, data=_data)
|
|
80
|
+
if _response.status_code == 422:
|
|
81
|
+
raise UnprocessableEntityError(
|
|
82
|
+
headers=dict(_response.headers),
|
|
83
|
+
body=typing.cast(
|
|
84
|
+
HttpValidationError,
|
|
85
|
+
parse_obj_as(
|
|
86
|
+
type_=HttpValidationError, # type: ignore
|
|
87
|
+
object_=_response.json(),
|
|
88
|
+
),
|
|
89
|
+
),
|
|
90
|
+
)
|
|
91
|
+
_response_json = _response.json()
|
|
92
|
+
except JSONDecodeError:
|
|
93
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
94
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
95
|
+
|
|
96
|
+
def create_rate_card(
|
|
97
|
+
self,
|
|
98
|
+
*,
|
|
99
|
+
name: str,
|
|
100
|
+
description: str,
|
|
101
|
+
usage_based_rates: typing.Sequence[CreateRateCardRequestUsageBasedRatesItem],
|
|
102
|
+
billing_interval: CreateRateCardRequestBillingInterval,
|
|
103
|
+
fixed_rates: typing.Optional[typing.Sequence[CreateFixedRateInterface]] = OMIT,
|
|
104
|
+
credit_grants: typing.Optional[typing.Sequence[CreateCreditGrantInterface]] = OMIT,
|
|
105
|
+
feature_access: typing.Optional[typing.Sequence[FeatureAccessResource]] = OMIT,
|
|
106
|
+
metadata: typing.Optional[typing.Dict[str, str]] = OMIT,
|
|
107
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
108
|
+
) -> HttpResponse[CreateRateCardResponse]:
|
|
109
|
+
"""
|
|
110
|
+
Parameters
|
|
111
|
+
----------
|
|
112
|
+
name : str
|
|
113
|
+
|
|
114
|
+
description : str
|
|
115
|
+
|
|
116
|
+
usage_based_rates : typing.Sequence[CreateRateCardRequestUsageBasedRatesItem]
|
|
117
|
+
|
|
118
|
+
billing_interval : CreateRateCardRequestBillingInterval
|
|
119
|
+
|
|
120
|
+
fixed_rates : typing.Optional[typing.Sequence[CreateFixedRateInterface]]
|
|
121
|
+
|
|
122
|
+
credit_grants : typing.Optional[typing.Sequence[CreateCreditGrantInterface]]
|
|
123
|
+
|
|
124
|
+
feature_access : typing.Optional[typing.Sequence[FeatureAccessResource]]
|
|
125
|
+
|
|
126
|
+
metadata : typing.Optional[typing.Dict[str, str]]
|
|
127
|
+
|
|
128
|
+
request_options : typing.Optional[RequestOptions]
|
|
129
|
+
Request-specific configuration.
|
|
130
|
+
|
|
131
|
+
Returns
|
|
132
|
+
-------
|
|
133
|
+
HttpResponse[CreateRateCardResponse]
|
|
134
|
+
Successful Response
|
|
135
|
+
"""
|
|
136
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
137
|
+
"rate-cards",
|
|
138
|
+
method="POST",
|
|
139
|
+
json={
|
|
140
|
+
"name": name,
|
|
141
|
+
"description": description,
|
|
142
|
+
"usage_based_rates": convert_and_respect_annotation_metadata(
|
|
143
|
+
object_=usage_based_rates,
|
|
144
|
+
annotation=typing.Sequence[CreateRateCardRequestUsageBasedRatesItem],
|
|
145
|
+
direction="write",
|
|
146
|
+
),
|
|
147
|
+
"fixed_rates": convert_and_respect_annotation_metadata(
|
|
148
|
+
object_=fixed_rates, annotation=typing.Sequence[CreateFixedRateInterface], direction="write"
|
|
149
|
+
),
|
|
150
|
+
"billing_interval": billing_interval,
|
|
151
|
+
"credit_grants": convert_and_respect_annotation_metadata(
|
|
152
|
+
object_=credit_grants, annotation=typing.Sequence[CreateCreditGrantInterface], direction="write"
|
|
153
|
+
),
|
|
154
|
+
"feature_access": convert_and_respect_annotation_metadata(
|
|
155
|
+
object_=feature_access, annotation=typing.Sequence[FeatureAccessResource], direction="write"
|
|
156
|
+
),
|
|
157
|
+
"metadata": metadata,
|
|
158
|
+
},
|
|
159
|
+
headers={
|
|
160
|
+
"content-type": "application/json",
|
|
161
|
+
},
|
|
162
|
+
request_options=request_options,
|
|
163
|
+
omit=OMIT,
|
|
164
|
+
)
|
|
165
|
+
try:
|
|
166
|
+
if 200 <= _response.status_code < 300:
|
|
167
|
+
_data = typing.cast(
|
|
168
|
+
CreateRateCardResponse,
|
|
169
|
+
parse_obj_as(
|
|
170
|
+
type_=CreateRateCardResponse, # type: ignore
|
|
171
|
+
object_=_response.json(),
|
|
172
|
+
),
|
|
173
|
+
)
|
|
174
|
+
return HttpResponse(response=_response, data=_data)
|
|
175
|
+
if _response.status_code == 422:
|
|
176
|
+
raise UnprocessableEntityError(
|
|
177
|
+
headers=dict(_response.headers),
|
|
178
|
+
body=typing.cast(
|
|
179
|
+
HttpValidationError,
|
|
180
|
+
parse_obj_as(
|
|
181
|
+
type_=HttpValidationError, # type: ignore
|
|
182
|
+
object_=_response.json(),
|
|
183
|
+
),
|
|
184
|
+
),
|
|
185
|
+
)
|
|
186
|
+
_response_json = _response.json()
|
|
187
|
+
except JSONDecodeError:
|
|
188
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
189
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
190
|
+
|
|
191
|
+
def get_rate_card(
|
|
192
|
+
self, rate_card_id: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
193
|
+
) -> HttpResponse[GetRateCardResponse]:
|
|
194
|
+
"""
|
|
195
|
+
Parameters
|
|
196
|
+
----------
|
|
197
|
+
rate_card_id : str
|
|
198
|
+
|
|
199
|
+
request_options : typing.Optional[RequestOptions]
|
|
200
|
+
Request-specific configuration.
|
|
201
|
+
|
|
202
|
+
Returns
|
|
203
|
+
-------
|
|
204
|
+
HttpResponse[GetRateCardResponse]
|
|
205
|
+
Successful Response
|
|
206
|
+
"""
|
|
207
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
208
|
+
f"rate-cards/{jsonable_encoder(rate_card_id)}",
|
|
209
|
+
method="GET",
|
|
210
|
+
request_options=request_options,
|
|
211
|
+
)
|
|
212
|
+
try:
|
|
213
|
+
if 200 <= _response.status_code < 300:
|
|
214
|
+
_data = typing.cast(
|
|
215
|
+
GetRateCardResponse,
|
|
216
|
+
parse_obj_as(
|
|
217
|
+
type_=GetRateCardResponse, # type: ignore
|
|
218
|
+
object_=_response.json(),
|
|
219
|
+
),
|
|
220
|
+
)
|
|
221
|
+
return HttpResponse(response=_response, data=_data)
|
|
222
|
+
if _response.status_code == 422:
|
|
223
|
+
raise UnprocessableEntityError(
|
|
224
|
+
headers=dict(_response.headers),
|
|
225
|
+
body=typing.cast(
|
|
226
|
+
HttpValidationError,
|
|
227
|
+
parse_obj_as(
|
|
228
|
+
type_=HttpValidationError, # type: ignore
|
|
229
|
+
object_=_response.json(),
|
|
230
|
+
),
|
|
231
|
+
),
|
|
232
|
+
)
|
|
233
|
+
_response_json = _response.json()
|
|
234
|
+
except JSONDecodeError:
|
|
235
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
236
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
237
|
+
|
|
238
|
+
def delete_rate_card(
|
|
239
|
+
self, rate_card_id: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
240
|
+
) -> HttpResponse[None]:
|
|
241
|
+
"""
|
|
242
|
+
Parameters
|
|
243
|
+
----------
|
|
244
|
+
rate_card_id : str
|
|
245
|
+
|
|
246
|
+
request_options : typing.Optional[RequestOptions]
|
|
247
|
+
Request-specific configuration.
|
|
248
|
+
|
|
249
|
+
Returns
|
|
250
|
+
-------
|
|
251
|
+
HttpResponse[None]
|
|
252
|
+
"""
|
|
253
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
254
|
+
f"rate-cards/{jsonable_encoder(rate_card_id)}",
|
|
255
|
+
method="DELETE",
|
|
256
|
+
request_options=request_options,
|
|
257
|
+
)
|
|
258
|
+
try:
|
|
259
|
+
if 200 <= _response.status_code < 300:
|
|
260
|
+
return HttpResponse(response=_response, data=None)
|
|
261
|
+
_response_json = _response.json()
|
|
262
|
+
except JSONDecodeError:
|
|
263
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
264
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
265
|
+
|
|
266
|
+
def update_rate_card(
|
|
267
|
+
self, rate_card_id: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
268
|
+
) -> HttpResponse[None]:
|
|
269
|
+
"""
|
|
270
|
+
Parameters
|
|
271
|
+
----------
|
|
272
|
+
rate_card_id : str
|
|
273
|
+
|
|
274
|
+
request_options : typing.Optional[RequestOptions]
|
|
275
|
+
Request-specific configuration.
|
|
276
|
+
|
|
277
|
+
Returns
|
|
278
|
+
-------
|
|
279
|
+
HttpResponse[None]
|
|
280
|
+
"""
|
|
281
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
282
|
+
f"rate-cards/{jsonable_encoder(rate_card_id)}",
|
|
283
|
+
method="PATCH",
|
|
284
|
+
request_options=request_options,
|
|
285
|
+
)
|
|
286
|
+
try:
|
|
287
|
+
if 200 <= _response.status_code < 300:
|
|
288
|
+
return HttpResponse(response=_response, data=None)
|
|
289
|
+
_response_json = _response.json()
|
|
290
|
+
except JSONDecodeError:
|
|
291
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
292
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
293
|
+
|
|
294
|
+
def create_rate_card_version(
|
|
295
|
+
self,
|
|
296
|
+
rate_card_id: str,
|
|
297
|
+
*,
|
|
298
|
+
name: str,
|
|
299
|
+
description: str,
|
|
300
|
+
usage_based_rates: typing.Sequence[CreateRateCardVersionRequestUsageBasedRatesItem],
|
|
301
|
+
version_type: CreateRateCardVersionRequestVersionType,
|
|
302
|
+
fixed_rates: typing.Optional[typing.Sequence[FixedRateInterface]] = OMIT,
|
|
303
|
+
credit_grants: typing.Optional[typing.Sequence[CreditGrantResource]] = OMIT,
|
|
304
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
305
|
+
) -> HttpResponse[CreateRateCardVersionResponse]:
|
|
306
|
+
"""
|
|
307
|
+
Parameters
|
|
308
|
+
----------
|
|
309
|
+
rate_card_id : str
|
|
310
|
+
|
|
311
|
+
name : str
|
|
312
|
+
|
|
313
|
+
description : str
|
|
314
|
+
|
|
315
|
+
usage_based_rates : typing.Sequence[CreateRateCardVersionRequestUsageBasedRatesItem]
|
|
316
|
+
|
|
317
|
+
version_type : CreateRateCardVersionRequestVersionType
|
|
318
|
+
|
|
319
|
+
fixed_rates : typing.Optional[typing.Sequence[FixedRateInterface]]
|
|
320
|
+
|
|
321
|
+
credit_grants : typing.Optional[typing.Sequence[CreditGrantResource]]
|
|
322
|
+
|
|
323
|
+
request_options : typing.Optional[RequestOptions]
|
|
324
|
+
Request-specific configuration.
|
|
325
|
+
|
|
326
|
+
Returns
|
|
327
|
+
-------
|
|
328
|
+
HttpResponse[CreateRateCardVersionResponse]
|
|
329
|
+
Successful Response
|
|
330
|
+
"""
|
|
331
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
332
|
+
f"rate-cards/{jsonable_encoder(rate_card_id)}/versions",
|
|
333
|
+
method="POST",
|
|
334
|
+
json={
|
|
335
|
+
"name": name,
|
|
336
|
+
"description": description,
|
|
337
|
+
"usage_based_rates": convert_and_respect_annotation_metadata(
|
|
338
|
+
object_=usage_based_rates,
|
|
339
|
+
annotation=typing.Sequence[CreateRateCardVersionRequestUsageBasedRatesItem],
|
|
340
|
+
direction="write",
|
|
341
|
+
),
|
|
342
|
+
"fixed_rates": convert_and_respect_annotation_metadata(
|
|
343
|
+
object_=fixed_rates, annotation=typing.Sequence[FixedRateInterface], direction="write"
|
|
344
|
+
),
|
|
345
|
+
"version_type": version_type,
|
|
346
|
+
"credit_grants": convert_and_respect_annotation_metadata(
|
|
347
|
+
object_=credit_grants, annotation=typing.Sequence[CreditGrantResource], direction="write"
|
|
348
|
+
),
|
|
349
|
+
},
|
|
350
|
+
headers={
|
|
351
|
+
"content-type": "application/json",
|
|
352
|
+
},
|
|
353
|
+
request_options=request_options,
|
|
354
|
+
omit=OMIT,
|
|
355
|
+
)
|
|
356
|
+
try:
|
|
357
|
+
if 200 <= _response.status_code < 300:
|
|
358
|
+
_data = typing.cast(
|
|
359
|
+
CreateRateCardVersionResponse,
|
|
360
|
+
parse_obj_as(
|
|
361
|
+
type_=CreateRateCardVersionResponse, # type: ignore
|
|
362
|
+
object_=_response.json(),
|
|
363
|
+
),
|
|
364
|
+
)
|
|
365
|
+
return HttpResponse(response=_response, data=_data)
|
|
366
|
+
if _response.status_code == 422:
|
|
367
|
+
raise UnprocessableEntityError(
|
|
368
|
+
headers=dict(_response.headers),
|
|
369
|
+
body=typing.cast(
|
|
370
|
+
HttpValidationError,
|
|
371
|
+
parse_obj_as(
|
|
372
|
+
type_=HttpValidationError, # type: ignore
|
|
373
|
+
object_=_response.json(),
|
|
374
|
+
),
|
|
375
|
+
),
|
|
376
|
+
)
|
|
377
|
+
_response_json = _response.json()
|
|
378
|
+
except JSONDecodeError:
|
|
379
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
380
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
381
|
+
|
|
382
|
+
|
|
383
|
+
class AsyncRawRateCardsClient:
|
|
384
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
385
|
+
self._client_wrapper = client_wrapper
|
|
386
|
+
|
|
387
|
+
async def list_rate_cards(
|
|
388
|
+
self,
|
|
389
|
+
*,
|
|
390
|
+
limit: typing.Optional[int] = None,
|
|
391
|
+
offset: typing.Optional[int] = None,
|
|
392
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
393
|
+
) -> AsyncHttpResponse[ListRateCardsResponse]:
|
|
394
|
+
"""
|
|
395
|
+
Parameters
|
|
396
|
+
----------
|
|
397
|
+
limit : typing.Optional[int]
|
|
398
|
+
|
|
399
|
+
offset : typing.Optional[int]
|
|
400
|
+
|
|
401
|
+
request_options : typing.Optional[RequestOptions]
|
|
402
|
+
Request-specific configuration.
|
|
403
|
+
|
|
404
|
+
Returns
|
|
405
|
+
-------
|
|
406
|
+
AsyncHttpResponse[ListRateCardsResponse]
|
|
407
|
+
Successful Response
|
|
408
|
+
"""
|
|
409
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
410
|
+
"rate-cards",
|
|
411
|
+
method="GET",
|
|
412
|
+
params={
|
|
413
|
+
"limit": limit,
|
|
414
|
+
"offset": offset,
|
|
415
|
+
},
|
|
416
|
+
request_options=request_options,
|
|
417
|
+
)
|
|
418
|
+
try:
|
|
419
|
+
if 200 <= _response.status_code < 300:
|
|
420
|
+
_data = typing.cast(
|
|
421
|
+
ListRateCardsResponse,
|
|
422
|
+
parse_obj_as(
|
|
423
|
+
type_=ListRateCardsResponse, # type: ignore
|
|
424
|
+
object_=_response.json(),
|
|
425
|
+
),
|
|
426
|
+
)
|
|
427
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
428
|
+
if _response.status_code == 422:
|
|
429
|
+
raise UnprocessableEntityError(
|
|
430
|
+
headers=dict(_response.headers),
|
|
431
|
+
body=typing.cast(
|
|
432
|
+
HttpValidationError,
|
|
433
|
+
parse_obj_as(
|
|
434
|
+
type_=HttpValidationError, # type: ignore
|
|
435
|
+
object_=_response.json(),
|
|
436
|
+
),
|
|
437
|
+
),
|
|
438
|
+
)
|
|
439
|
+
_response_json = _response.json()
|
|
440
|
+
except JSONDecodeError:
|
|
441
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
442
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
443
|
+
|
|
444
|
+
async def create_rate_card(
|
|
445
|
+
self,
|
|
446
|
+
*,
|
|
447
|
+
name: str,
|
|
448
|
+
description: str,
|
|
449
|
+
usage_based_rates: typing.Sequence[CreateRateCardRequestUsageBasedRatesItem],
|
|
450
|
+
billing_interval: CreateRateCardRequestBillingInterval,
|
|
451
|
+
fixed_rates: typing.Optional[typing.Sequence[CreateFixedRateInterface]] = OMIT,
|
|
452
|
+
credit_grants: typing.Optional[typing.Sequence[CreateCreditGrantInterface]] = OMIT,
|
|
453
|
+
feature_access: typing.Optional[typing.Sequence[FeatureAccessResource]] = OMIT,
|
|
454
|
+
metadata: typing.Optional[typing.Dict[str, str]] = OMIT,
|
|
455
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
456
|
+
) -> AsyncHttpResponse[CreateRateCardResponse]:
|
|
457
|
+
"""
|
|
458
|
+
Parameters
|
|
459
|
+
----------
|
|
460
|
+
name : str
|
|
461
|
+
|
|
462
|
+
description : str
|
|
463
|
+
|
|
464
|
+
usage_based_rates : typing.Sequence[CreateRateCardRequestUsageBasedRatesItem]
|
|
465
|
+
|
|
466
|
+
billing_interval : CreateRateCardRequestBillingInterval
|
|
467
|
+
|
|
468
|
+
fixed_rates : typing.Optional[typing.Sequence[CreateFixedRateInterface]]
|
|
469
|
+
|
|
470
|
+
credit_grants : typing.Optional[typing.Sequence[CreateCreditGrantInterface]]
|
|
471
|
+
|
|
472
|
+
feature_access : typing.Optional[typing.Sequence[FeatureAccessResource]]
|
|
473
|
+
|
|
474
|
+
metadata : typing.Optional[typing.Dict[str, str]]
|
|
475
|
+
|
|
476
|
+
request_options : typing.Optional[RequestOptions]
|
|
477
|
+
Request-specific configuration.
|
|
478
|
+
|
|
479
|
+
Returns
|
|
480
|
+
-------
|
|
481
|
+
AsyncHttpResponse[CreateRateCardResponse]
|
|
482
|
+
Successful Response
|
|
483
|
+
"""
|
|
484
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
485
|
+
"rate-cards",
|
|
486
|
+
method="POST",
|
|
487
|
+
json={
|
|
488
|
+
"name": name,
|
|
489
|
+
"description": description,
|
|
490
|
+
"usage_based_rates": convert_and_respect_annotation_metadata(
|
|
491
|
+
object_=usage_based_rates,
|
|
492
|
+
annotation=typing.Sequence[CreateRateCardRequestUsageBasedRatesItem],
|
|
493
|
+
direction="write",
|
|
494
|
+
),
|
|
495
|
+
"fixed_rates": convert_and_respect_annotation_metadata(
|
|
496
|
+
object_=fixed_rates, annotation=typing.Sequence[CreateFixedRateInterface], direction="write"
|
|
497
|
+
),
|
|
498
|
+
"billing_interval": billing_interval,
|
|
499
|
+
"credit_grants": convert_and_respect_annotation_metadata(
|
|
500
|
+
object_=credit_grants, annotation=typing.Sequence[CreateCreditGrantInterface], direction="write"
|
|
501
|
+
),
|
|
502
|
+
"feature_access": convert_and_respect_annotation_metadata(
|
|
503
|
+
object_=feature_access, annotation=typing.Sequence[FeatureAccessResource], direction="write"
|
|
504
|
+
),
|
|
505
|
+
"metadata": metadata,
|
|
506
|
+
},
|
|
507
|
+
headers={
|
|
508
|
+
"content-type": "application/json",
|
|
509
|
+
},
|
|
510
|
+
request_options=request_options,
|
|
511
|
+
omit=OMIT,
|
|
512
|
+
)
|
|
513
|
+
try:
|
|
514
|
+
if 200 <= _response.status_code < 300:
|
|
515
|
+
_data = typing.cast(
|
|
516
|
+
CreateRateCardResponse,
|
|
517
|
+
parse_obj_as(
|
|
518
|
+
type_=CreateRateCardResponse, # type: ignore
|
|
519
|
+
object_=_response.json(),
|
|
520
|
+
),
|
|
521
|
+
)
|
|
522
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
523
|
+
if _response.status_code == 422:
|
|
524
|
+
raise UnprocessableEntityError(
|
|
525
|
+
headers=dict(_response.headers),
|
|
526
|
+
body=typing.cast(
|
|
527
|
+
HttpValidationError,
|
|
528
|
+
parse_obj_as(
|
|
529
|
+
type_=HttpValidationError, # type: ignore
|
|
530
|
+
object_=_response.json(),
|
|
531
|
+
),
|
|
532
|
+
),
|
|
533
|
+
)
|
|
534
|
+
_response_json = _response.json()
|
|
535
|
+
except JSONDecodeError:
|
|
536
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
537
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
538
|
+
|
|
539
|
+
async def get_rate_card(
|
|
540
|
+
self, rate_card_id: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
541
|
+
) -> AsyncHttpResponse[GetRateCardResponse]:
|
|
542
|
+
"""
|
|
543
|
+
Parameters
|
|
544
|
+
----------
|
|
545
|
+
rate_card_id : str
|
|
546
|
+
|
|
547
|
+
request_options : typing.Optional[RequestOptions]
|
|
548
|
+
Request-specific configuration.
|
|
549
|
+
|
|
550
|
+
Returns
|
|
551
|
+
-------
|
|
552
|
+
AsyncHttpResponse[GetRateCardResponse]
|
|
553
|
+
Successful Response
|
|
554
|
+
"""
|
|
555
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
556
|
+
f"rate-cards/{jsonable_encoder(rate_card_id)}",
|
|
557
|
+
method="GET",
|
|
558
|
+
request_options=request_options,
|
|
559
|
+
)
|
|
560
|
+
try:
|
|
561
|
+
if 200 <= _response.status_code < 300:
|
|
562
|
+
_data = typing.cast(
|
|
563
|
+
GetRateCardResponse,
|
|
564
|
+
parse_obj_as(
|
|
565
|
+
type_=GetRateCardResponse, # type: ignore
|
|
566
|
+
object_=_response.json(),
|
|
567
|
+
),
|
|
568
|
+
)
|
|
569
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
570
|
+
if _response.status_code == 422:
|
|
571
|
+
raise UnprocessableEntityError(
|
|
572
|
+
headers=dict(_response.headers),
|
|
573
|
+
body=typing.cast(
|
|
574
|
+
HttpValidationError,
|
|
575
|
+
parse_obj_as(
|
|
576
|
+
type_=HttpValidationError, # type: ignore
|
|
577
|
+
object_=_response.json(),
|
|
578
|
+
),
|
|
579
|
+
),
|
|
580
|
+
)
|
|
581
|
+
_response_json = _response.json()
|
|
582
|
+
except JSONDecodeError:
|
|
583
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
584
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
585
|
+
|
|
586
|
+
async def delete_rate_card(
|
|
587
|
+
self, rate_card_id: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
588
|
+
) -> AsyncHttpResponse[None]:
|
|
589
|
+
"""
|
|
590
|
+
Parameters
|
|
591
|
+
----------
|
|
592
|
+
rate_card_id : str
|
|
593
|
+
|
|
594
|
+
request_options : typing.Optional[RequestOptions]
|
|
595
|
+
Request-specific configuration.
|
|
596
|
+
|
|
597
|
+
Returns
|
|
598
|
+
-------
|
|
599
|
+
AsyncHttpResponse[None]
|
|
600
|
+
"""
|
|
601
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
602
|
+
f"rate-cards/{jsonable_encoder(rate_card_id)}",
|
|
603
|
+
method="DELETE",
|
|
604
|
+
request_options=request_options,
|
|
605
|
+
)
|
|
606
|
+
try:
|
|
607
|
+
if 200 <= _response.status_code < 300:
|
|
608
|
+
return AsyncHttpResponse(response=_response, data=None)
|
|
609
|
+
_response_json = _response.json()
|
|
610
|
+
except JSONDecodeError:
|
|
611
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
612
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
613
|
+
|
|
614
|
+
async def update_rate_card(
|
|
615
|
+
self, rate_card_id: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
616
|
+
) -> AsyncHttpResponse[None]:
|
|
617
|
+
"""
|
|
618
|
+
Parameters
|
|
619
|
+
----------
|
|
620
|
+
rate_card_id : str
|
|
621
|
+
|
|
622
|
+
request_options : typing.Optional[RequestOptions]
|
|
623
|
+
Request-specific configuration.
|
|
624
|
+
|
|
625
|
+
Returns
|
|
626
|
+
-------
|
|
627
|
+
AsyncHttpResponse[None]
|
|
628
|
+
"""
|
|
629
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
630
|
+
f"rate-cards/{jsonable_encoder(rate_card_id)}",
|
|
631
|
+
method="PATCH",
|
|
632
|
+
request_options=request_options,
|
|
633
|
+
)
|
|
634
|
+
try:
|
|
635
|
+
if 200 <= _response.status_code < 300:
|
|
636
|
+
return AsyncHttpResponse(response=_response, data=None)
|
|
637
|
+
_response_json = _response.json()
|
|
638
|
+
except JSONDecodeError:
|
|
639
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
640
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
641
|
+
|
|
642
|
+
async def create_rate_card_version(
|
|
643
|
+
self,
|
|
644
|
+
rate_card_id: str,
|
|
645
|
+
*,
|
|
646
|
+
name: str,
|
|
647
|
+
description: str,
|
|
648
|
+
usage_based_rates: typing.Sequence[CreateRateCardVersionRequestUsageBasedRatesItem],
|
|
649
|
+
version_type: CreateRateCardVersionRequestVersionType,
|
|
650
|
+
fixed_rates: typing.Optional[typing.Sequence[FixedRateInterface]] = OMIT,
|
|
651
|
+
credit_grants: typing.Optional[typing.Sequence[CreditGrantResource]] = OMIT,
|
|
652
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
653
|
+
) -> AsyncHttpResponse[CreateRateCardVersionResponse]:
|
|
654
|
+
"""
|
|
655
|
+
Parameters
|
|
656
|
+
----------
|
|
657
|
+
rate_card_id : str
|
|
658
|
+
|
|
659
|
+
name : str
|
|
660
|
+
|
|
661
|
+
description : str
|
|
662
|
+
|
|
663
|
+
usage_based_rates : typing.Sequence[CreateRateCardVersionRequestUsageBasedRatesItem]
|
|
664
|
+
|
|
665
|
+
version_type : CreateRateCardVersionRequestVersionType
|
|
666
|
+
|
|
667
|
+
fixed_rates : typing.Optional[typing.Sequence[FixedRateInterface]]
|
|
668
|
+
|
|
669
|
+
credit_grants : typing.Optional[typing.Sequence[CreditGrantResource]]
|
|
670
|
+
|
|
671
|
+
request_options : typing.Optional[RequestOptions]
|
|
672
|
+
Request-specific configuration.
|
|
673
|
+
|
|
674
|
+
Returns
|
|
675
|
+
-------
|
|
676
|
+
AsyncHttpResponse[CreateRateCardVersionResponse]
|
|
677
|
+
Successful Response
|
|
678
|
+
"""
|
|
679
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
680
|
+
f"rate-cards/{jsonable_encoder(rate_card_id)}/versions",
|
|
681
|
+
method="POST",
|
|
682
|
+
json={
|
|
683
|
+
"name": name,
|
|
684
|
+
"description": description,
|
|
685
|
+
"usage_based_rates": convert_and_respect_annotation_metadata(
|
|
686
|
+
object_=usage_based_rates,
|
|
687
|
+
annotation=typing.Sequence[CreateRateCardVersionRequestUsageBasedRatesItem],
|
|
688
|
+
direction="write",
|
|
689
|
+
),
|
|
690
|
+
"fixed_rates": convert_and_respect_annotation_metadata(
|
|
691
|
+
object_=fixed_rates, annotation=typing.Sequence[FixedRateInterface], direction="write"
|
|
692
|
+
),
|
|
693
|
+
"version_type": version_type,
|
|
694
|
+
"credit_grants": convert_and_respect_annotation_metadata(
|
|
695
|
+
object_=credit_grants, annotation=typing.Sequence[CreditGrantResource], direction="write"
|
|
696
|
+
),
|
|
697
|
+
},
|
|
698
|
+
headers={
|
|
699
|
+
"content-type": "application/json",
|
|
700
|
+
},
|
|
701
|
+
request_options=request_options,
|
|
702
|
+
omit=OMIT,
|
|
703
|
+
)
|
|
704
|
+
try:
|
|
705
|
+
if 200 <= _response.status_code < 300:
|
|
706
|
+
_data = typing.cast(
|
|
707
|
+
CreateRateCardVersionResponse,
|
|
708
|
+
parse_obj_as(
|
|
709
|
+
type_=CreateRateCardVersionResponse, # type: ignore
|
|
710
|
+
object_=_response.json(),
|
|
711
|
+
),
|
|
712
|
+
)
|
|
713
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
714
|
+
if _response.status_code == 422:
|
|
715
|
+
raise UnprocessableEntityError(
|
|
716
|
+
headers=dict(_response.headers),
|
|
717
|
+
body=typing.cast(
|
|
718
|
+
HttpValidationError,
|
|
719
|
+
parse_obj_as(
|
|
720
|
+
type_=HttpValidationError, # type: ignore
|
|
721
|
+
object_=_response.json(),
|
|
722
|
+
),
|
|
723
|
+
),
|
|
724
|
+
)
|
|
725
|
+
_response_json = _response.json()
|
|
726
|
+
except JSONDecodeError:
|
|
727
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
728
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|