paid-python 0.5.0__py3-none-any.whl → 0.6.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
paid/__init__.py CHANGED
@@ -30,6 +30,7 @@ from .types import (
30
30
  OrderLineCreate,
31
31
  PaginationMeta,
32
32
  Plan,
33
+ PlanGroup,
33
34
  PlanPlanProductsItem,
34
35
  PlanPlanProductsItemPlanProductAttributeItem,
35
36
  PricePoint,
@@ -95,6 +96,7 @@ __all__ = [
95
96
  "Paid",
96
97
  "PaidEnvironment",
97
98
  "Plan",
99
+ "PlanGroup",
98
100
  "PlanPlanProductsItem",
99
101
  "PlanPlanProductsItemPlanProductAttributeItem",
100
102
  "PricePoint",
@@ -22,7 +22,7 @@ class BaseClientWrapper:
22
22
  headers: typing.Dict[str, str] = {
23
23
  "X-Fern-Language": "Python",
24
24
  "X-Fern-SDK-Name": "paid",
25
- "X-Fern-SDK-Version": "0.5.0",
25
+ "X-Fern-SDK-Version": "0.6.0",
26
26
  }
27
27
  token = self._get_token()
28
28
  if token is not None:
paid/orders/client.py CHANGED
@@ -64,6 +64,7 @@ class OrdersClient:
64
64
  billing_contact_id: typing.Optional[str] = OMIT,
65
65
  description: typing.Optional[str] = OMIT,
66
66
  end_date: typing.Optional[str] = OMIT,
67
+ plan_id: typing.Optional[str] = OMIT,
67
68
  order_lines: typing.Optional[typing.Sequence[OrderLineCreate]] = OMIT,
68
69
  request_options: typing.Optional[RequestOptions] = None,
69
70
  ) -> Order:
@@ -86,6 +87,9 @@ class OrdersClient:
86
87
 
87
88
  end_date : typing.Optional[str]
88
89
 
90
+ plan_id : typing.Optional[str]
91
+ Optional plan ID to associate with this order
92
+
89
93
  order_lines : typing.Optional[typing.Sequence[OrderLineCreate]]
90
94
 
91
95
  request_options : typing.Optional[RequestOptions]
@@ -121,6 +125,7 @@ class OrdersClient:
121
125
  billing_contact_id=billing_contact_id,
122
126
  description=description,
123
127
  end_date=end_date,
128
+ plan_id=plan_id,
124
129
  order_lines=order_lines,
125
130
  request_options=request_options,
126
131
  )
@@ -269,6 +274,7 @@ class AsyncOrdersClient:
269
274
  billing_contact_id: typing.Optional[str] = OMIT,
270
275
  description: typing.Optional[str] = OMIT,
271
276
  end_date: typing.Optional[str] = OMIT,
277
+ plan_id: typing.Optional[str] = OMIT,
272
278
  order_lines: typing.Optional[typing.Sequence[OrderLineCreate]] = OMIT,
273
279
  request_options: typing.Optional[RequestOptions] = None,
274
280
  ) -> Order:
@@ -291,6 +297,9 @@ class AsyncOrdersClient:
291
297
 
292
298
  end_date : typing.Optional[str]
293
299
 
300
+ plan_id : typing.Optional[str]
301
+ Optional plan ID to associate with this order
302
+
294
303
  order_lines : typing.Optional[typing.Sequence[OrderLineCreate]]
295
304
 
296
305
  request_options : typing.Optional[RequestOptions]
@@ -334,6 +343,7 @@ class AsyncOrdersClient:
334
343
  billing_contact_id=billing_contact_id,
335
344
  description=description,
336
345
  end_date=end_date,
346
+ plan_id=plan_id,
337
347
  order_lines=order_lines,
338
348
  request_options=request_options,
339
349
  )
paid/orders/raw_client.py CHANGED
@@ -64,6 +64,7 @@ class RawOrdersClient:
64
64
  billing_contact_id: typing.Optional[str] = OMIT,
65
65
  description: typing.Optional[str] = OMIT,
66
66
  end_date: typing.Optional[str] = OMIT,
67
+ plan_id: typing.Optional[str] = OMIT,
67
68
  order_lines: typing.Optional[typing.Sequence[OrderLineCreate]] = OMIT,
68
69
  request_options: typing.Optional[RequestOptions] = None,
69
70
  ) -> HttpResponse[Order]:
@@ -86,6 +87,9 @@ class RawOrdersClient:
86
87
 
87
88
  end_date : typing.Optional[str]
88
89
 
90
+ plan_id : typing.Optional[str]
91
+ Optional plan ID to associate with this order
92
+
89
93
  order_lines : typing.Optional[typing.Sequence[OrderLineCreate]]
90
94
 
91
95
  request_options : typing.Optional[RequestOptions]
@@ -108,6 +112,7 @@ class RawOrdersClient:
108
112
  "startDate": start_date,
109
113
  "endDate": end_date,
110
114
  "currency": currency,
115
+ "planId": plan_id,
111
116
  "orderLines": convert_and_respect_annotation_metadata(
112
117
  object_=order_lines, annotation=typing.Sequence[OrderLineCreate], direction="write"
113
118
  ),
@@ -279,6 +284,7 @@ class AsyncRawOrdersClient:
279
284
  billing_contact_id: typing.Optional[str] = OMIT,
280
285
  description: typing.Optional[str] = OMIT,
281
286
  end_date: typing.Optional[str] = OMIT,
287
+ plan_id: typing.Optional[str] = OMIT,
282
288
  order_lines: typing.Optional[typing.Sequence[OrderLineCreate]] = OMIT,
283
289
  request_options: typing.Optional[RequestOptions] = None,
284
290
  ) -> AsyncHttpResponse[Order]:
@@ -301,6 +307,9 @@ class AsyncRawOrdersClient:
301
307
 
302
308
  end_date : typing.Optional[str]
303
309
 
310
+ plan_id : typing.Optional[str]
311
+ Optional plan ID to associate with this order
312
+
304
313
  order_lines : typing.Optional[typing.Sequence[OrderLineCreate]]
305
314
 
306
315
  request_options : typing.Optional[RequestOptions]
@@ -323,6 +332,7 @@ class AsyncRawOrdersClient:
323
332
  "startDate": start_date,
324
333
  "endDate": end_date,
325
334
  "currency": currency,
335
+ "planId": plan_id,
326
336
  "orderLines": convert_and_respect_annotation_metadata(
327
337
  object_=order_lines, annotation=typing.Sequence[OrderLineCreate], direction="write"
328
338
  ),
paid/plans/client.py CHANGED
@@ -6,6 +6,7 @@ import typing
6
6
  from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
7
7
  from ..core.request_options import RequestOptions
8
8
  from ..types.plan import Plan
9
+ from ..types.plan_group import PlanGroup
9
10
  from ..types.usage_summaries_response import UsageSummariesResponse
10
11
  from .raw_client import AsyncRawPlansClient, RawPlansClient
11
12
 
@@ -127,6 +128,37 @@ class PlansClient:
127
128
  )
128
129
  return _response.data
129
130
 
131
+ def get_group_by_id(
132
+ self, plan_group_id: str, *, request_options: typing.Optional[RequestOptions] = None
133
+ ) -> PlanGroup:
134
+ """
135
+ Parameters
136
+ ----------
137
+ plan_group_id : str
138
+ The ID of the plan group
139
+
140
+ request_options : typing.Optional[RequestOptions]
141
+ Request-specific configuration.
142
+
143
+ Returns
144
+ -------
145
+ PlanGroup
146
+ Success response
147
+
148
+ Examples
149
+ --------
150
+ from paid import Paid
151
+
152
+ client = Paid(
153
+ token="YOUR_TOKEN",
154
+ )
155
+ client.plans.get_group_by_id(
156
+ plan_group_id="planGroupId",
157
+ )
158
+ """
159
+ _response = self._raw_client.get_group_by_id(plan_group_id, request_options=request_options)
160
+ return _response.data
161
+
130
162
 
131
163
  class AsyncPlansClient:
132
164
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
@@ -259,3 +291,42 @@ class AsyncPlansClient:
259
291
  request_options=request_options,
260
292
  )
261
293
  return _response.data
294
+
295
+ async def get_group_by_id(
296
+ self, plan_group_id: str, *, request_options: typing.Optional[RequestOptions] = None
297
+ ) -> PlanGroup:
298
+ """
299
+ Parameters
300
+ ----------
301
+ plan_group_id : str
302
+ The ID of the plan group
303
+
304
+ request_options : typing.Optional[RequestOptions]
305
+ Request-specific configuration.
306
+
307
+ Returns
308
+ -------
309
+ PlanGroup
310
+ Success response
311
+
312
+ Examples
313
+ --------
314
+ import asyncio
315
+
316
+ from paid import AsyncPaid
317
+
318
+ client = AsyncPaid(
319
+ token="YOUR_TOKEN",
320
+ )
321
+
322
+
323
+ async def main() -> None:
324
+ await client.plans.get_group_by_id(
325
+ plan_group_id="planGroupId",
326
+ )
327
+
328
+
329
+ asyncio.run(main())
330
+ """
331
+ _response = await self._raw_client.get_group_by_id(plan_group_id, request_options=request_options)
332
+ return _response.data
paid/plans/raw_client.py CHANGED
@@ -16,6 +16,7 @@ from ..errors.forbidden_error import ForbiddenError
16
16
  from ..errors.not_found_error import NotFoundError
17
17
  from ..types.error import Error
18
18
  from ..types.plan import Plan
19
+ from ..types.plan_group import PlanGroup
19
20
  from ..types.usage_summaries_response import UsageSummariesResponse
20
21
 
21
22
 
@@ -180,6 +181,65 @@ class RawPlansClient:
180
181
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
181
182
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
182
183
 
184
+ def get_group_by_id(
185
+ self, plan_group_id: str, *, request_options: typing.Optional[RequestOptions] = None
186
+ ) -> HttpResponse[PlanGroup]:
187
+ """
188
+ Parameters
189
+ ----------
190
+ plan_group_id : str
191
+ The ID of the plan group
192
+
193
+ request_options : typing.Optional[RequestOptions]
194
+ Request-specific configuration.
195
+
196
+ Returns
197
+ -------
198
+ HttpResponse[PlanGroup]
199
+ Success response
200
+ """
201
+ _response = self._client_wrapper.httpx_client.request(
202
+ f"plans/group/{jsonable_encoder(plan_group_id)}",
203
+ method="GET",
204
+ request_options=request_options,
205
+ )
206
+ try:
207
+ if 200 <= _response.status_code < 300:
208
+ _data = typing.cast(
209
+ PlanGroup,
210
+ parse_obj_as(
211
+ type_=PlanGroup, # type: ignore
212
+ object_=_response.json(),
213
+ ),
214
+ )
215
+ return HttpResponse(response=_response, data=_data)
216
+ if _response.status_code == 403:
217
+ raise ForbiddenError(
218
+ headers=dict(_response.headers),
219
+ body=typing.cast(
220
+ Error,
221
+ parse_obj_as(
222
+ type_=Error, # type: ignore
223
+ object_=_response.json(),
224
+ ),
225
+ ),
226
+ )
227
+ if _response.status_code == 404:
228
+ raise NotFoundError(
229
+ headers=dict(_response.headers),
230
+ body=typing.cast(
231
+ Error,
232
+ parse_obj_as(
233
+ type_=Error, # type: ignore
234
+ object_=_response.json(),
235
+ ),
236
+ ),
237
+ )
238
+ _response_json = _response.json()
239
+ except JSONDecodeError:
240
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
241
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
242
+
183
243
 
184
244
  class AsyncRawPlansClient:
185
245
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
@@ -343,3 +403,62 @@ class AsyncRawPlansClient:
343
403
  except JSONDecodeError:
344
404
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
345
405
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
406
+
407
+ async def get_group_by_id(
408
+ self, plan_group_id: str, *, request_options: typing.Optional[RequestOptions] = None
409
+ ) -> AsyncHttpResponse[PlanGroup]:
410
+ """
411
+ Parameters
412
+ ----------
413
+ plan_group_id : str
414
+ The ID of the plan group
415
+
416
+ request_options : typing.Optional[RequestOptions]
417
+ Request-specific configuration.
418
+
419
+ Returns
420
+ -------
421
+ AsyncHttpResponse[PlanGroup]
422
+ Success response
423
+ """
424
+ _response = await self._client_wrapper.httpx_client.request(
425
+ f"plans/group/{jsonable_encoder(plan_group_id)}",
426
+ method="GET",
427
+ request_options=request_options,
428
+ )
429
+ try:
430
+ if 200 <= _response.status_code < 300:
431
+ _data = typing.cast(
432
+ PlanGroup,
433
+ parse_obj_as(
434
+ type_=PlanGroup, # type: ignore
435
+ object_=_response.json(),
436
+ ),
437
+ )
438
+ return AsyncHttpResponse(response=_response, data=_data)
439
+ if _response.status_code == 403:
440
+ raise ForbiddenError(
441
+ headers=dict(_response.headers),
442
+ body=typing.cast(
443
+ Error,
444
+ parse_obj_as(
445
+ type_=Error, # type: ignore
446
+ object_=_response.json(),
447
+ ),
448
+ ),
449
+ )
450
+ if _response.status_code == 404:
451
+ raise NotFoundError(
452
+ headers=dict(_response.headers),
453
+ body=typing.cast(
454
+ Error,
455
+ parse_obj_as(
456
+ type_=Error, # type: ignore
457
+ object_=_response.json(),
458
+ ),
459
+ ),
460
+ )
461
+ _response_json = _response.json()
462
+ except JSONDecodeError:
463
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
464
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
paid/types/__init__.py CHANGED
@@ -29,6 +29,7 @@ from .order_line_attribute_pricing import OrderLineAttributePricing
29
29
  from .order_line_create import OrderLineCreate
30
30
  from .pagination_meta import PaginationMeta
31
31
  from .plan import Plan
32
+ from .plan_group import PlanGroup
32
33
  from .plan_plan_products_item import PlanPlanProductsItem
33
34
  from .plan_plan_products_item_plan_product_attribute_item import PlanPlanProductsItemPlanProductAttributeItem
34
35
  from .price_point import PricePoint
@@ -79,6 +80,7 @@ __all__ = [
79
80
  "OrderLineCreate",
80
81
  "PaginationMeta",
81
82
  "Plan",
83
+ "PlanGroup",
82
84
  "PlanPlanProductsItem",
83
85
  "PlanPlanProductsItemPlanProductAttributeItem",
84
86
  "PricePoint",
@@ -0,0 +1,60 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ import pydantic
7
+ import typing_extensions
8
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
9
+ from ..core.serialization import FieldMetadata
10
+ from .plan import Plan
11
+
12
+
13
+ class PlanGroup(UniversalBaseModel):
14
+ """
15
+ A plan group containing multiple plans
16
+ """
17
+
18
+ id: str = pydantic.Field()
19
+ """
20
+ The unique identifier of the plan group
21
+ """
22
+
23
+ organization_id: typing_extensions.Annotated[str, FieldMetadata(alias="organizationId")] = pydantic.Field()
24
+ """
25
+ The organization ID that owns this plan group
26
+ """
27
+
28
+ name: str = pydantic.Field()
29
+ """
30
+ The name of the plan group
31
+ """
32
+
33
+ description: typing.Optional[str] = pydantic.Field(default=None)
34
+ """
35
+ The description of the plan group
36
+ """
37
+
38
+ created_at: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="createdAt")] = pydantic.Field()
39
+ """
40
+ When the plan group was created
41
+ """
42
+
43
+ updated_at: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="updatedAt")] = pydantic.Field()
44
+ """
45
+ When the plan group was last updated
46
+ """
47
+
48
+ plans: typing.Optional[typing.List[Plan]] = pydantic.Field(default=None)
49
+ """
50
+ The plans included in this plan group
51
+ """
52
+
53
+ if IS_PYDANTIC_V2:
54
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
55
+ else:
56
+
57
+ class Config:
58
+ frozen = True
59
+ smart_union = True
60
+ extra = pydantic.Extra.allow
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: paid-python
3
- Version: 0.5.0
3
+ Version: 0.6.0
4
4
  Summary:
5
5
  Requires-Python: >=3.9,<3.14
6
6
  Classifier: Intended Audience :: Developers
@@ -1,4 +1,4 @@
1
- paid/__init__.py,sha256=Pc42soa5fO9u2qiwcxiMYPm_O1TxcBiWGX84UEDCdTc,2765
1
+ paid/__init__.py,sha256=atXO9KY9MOUipS2yX3lQ0zlbK0tnLzNDxZYM2nexSRU,2797
2
2
  paid/agents/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
3
3
  paid/agents/client.py,sha256=kfErQ51mMppV0YS-n0G2w_kISShdC4S8JoL02TZae1U,24369
4
4
  paid/agents/raw_client.py,sha256=4ehmy21TnS_FhL_NmPwYrUVNWkYaVTobTO22YWu7PGc,27897
@@ -8,7 +8,7 @@ paid/contacts/client.py,sha256=sNm-yAg4dR9AyYWL7-RC_CuCCvOXX7YlDAUqn47yZhE,14058
8
8
  paid/contacts/raw_client.py,sha256=ZYNWuekHiL2sqK_gHR0IzcrLAopUKRXIqMUi-fuLGe4,19211
9
9
  paid/core/__init__.py,sha256=lTcqUPXcx4112yLDd70RAPeqq6tu3eFMe1pKOqkW9JQ,1562
10
10
  paid/core/api_error.py,sha256=44vPoTyWN59gonCIZMdzw7M1uspygiLnr3GNFOoVL2Q,614
11
- paid/core/client_wrapper.py,sha256=gVOAPDsTC0chTu-Ys6G5oORJMAS8c_VgK_f8om81MPw,2350
11
+ paid/core/client_wrapper.py,sha256=FlkWEi-0SnGRJ6dNRJb_ftjyOmU_4GFafuWjO18pUYU,2350
12
12
  paid/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
13
13
  paid/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
14
14
  paid/core/force_multipart.py,sha256=awxh5MtcRYe74ehY8U76jzv6fYM_w_D3Rur7KQQzSDk,429
@@ -31,14 +31,14 @@ paid/errors/internal_server_error.py,sha256=WPvk3xayCQqRAir4nfMhVVextjsR9hMi8zCq
31
31
  paid/errors/not_found_error.py,sha256=nsBHj9gxzRkoJMdFyChYv9ePaPYYf8h4s2nuoUo4CuI,346
32
32
  paid/logger.py,sha256=CIo_i2n2Azp4g57GkU9twb_GzJ7x9lZmURqPsq4379M,514
33
33
  paid/orders/__init__.py,sha256=CrbHKbmp63NAum57EE9NnGmJqLKiWDMLyPRemOs_U9w,126
34
- paid/orders/client.py,sha256=TO3hsHj_0w1NTipmu092yQaEawLyKEHHQA1Je2Gj4QE,11533
34
+ paid/orders/client.py,sha256=unSUMQvKJRCEGcxXVwDxaHcpev7FxDeUOsO3LJosY1s,11879
35
35
  paid/orders/lines/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
36
36
  paid/orders/lines/client.py,sha256=7RCqD78g4VARoCLiwjFm59imsSlbd1E3HPrGKhYG6xI,4062
37
37
  paid/orders/lines/raw_client.py,sha256=KZN_yBokCOkf1lUb4ZJtX_NZbqmTqCdJNoaIOdWar8I,4590
38
- paid/orders/raw_client.py,sha256=650e1Sj2vi9KVJc15M3ENXIKYoth0qMz66dzvXy1Sb4,16245
38
+ paid/orders/raw_client.py,sha256=2lriEGXPls8KJE-d0PLLNNQMcCwAW1qz68GdacMIfVo,16603
39
39
  paid/plans/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
40
- paid/plans/client.py,sha256=9qRN5wdF7DVDJXpHVDZRw6GqPe-ABoiHI4pmgRwitFc,7330
41
- paid/plans/raw_client.py,sha256=NrYlBBL-xiQzwAE_C_7cBDCd9g2GPFSHV9RpxLDFMXw,13179
40
+ paid/plans/client.py,sha256=qvEMxk2u1vKILH9fU-VewpU3xNY5h3ug-0yRt1M4e2U,9101
41
+ paid/plans/raw_client.py,sha256=GCvmY_yQhkFYl7PpXvEFE8OiRjVTz8au1IZRGtWJmWA,17675
42
42
  paid/products/__init__.py,sha256=oCZ9LvM5pb1zsdux1hBIxN1DVphi5gyPgQmR2p7XNZw,155
43
43
  paid/products/client.py,sha256=doYlu9mI1j_rzMX3wWvetptxVrJmYeOuXJ0Pm3z02uE,21010
44
44
  paid/products/raw_client.py,sha256=LwYSuv6wj1N7oU1GDUINkGbgF_Q5x6y_0g6gy8PaJ0A,29546
@@ -73,7 +73,7 @@ paid/tracing/wrappers/openai/openAiWrapper.py,sha256=DIMOGdQTjpFaiKV-JeJvNH_cxHs
73
73
  paid/tracing/wrappers/openai_agents/__init__.py,sha256=-xX5HPhYYX6hDWbn5FpFw-P6M2h0k1X9Qjrg0Bkv7cc,94
74
74
  paid/tracing/wrappers/openai_agents/openaiAgentsHook.py,sha256=-uXUNL0S85cFVT7ObrL9hzEQAIYh5Lo1JgEE57hxk2Y,6650
75
75
  paid/tracing/wrappers/utils.py,sha256=_0FCF3BC2wK5cU8suEvo_mXm6Jn8ULkyeEhnYPUlO2Y,2347
76
- paid/types/__init__.py,sha256=0mlvPvWwYFtfKzH3n-qsTB-gSyAc4mB689La2R1NBuY,3172
76
+ paid/types/__init__.py,sha256=XvRatcTA_4P-B9BDgOL1K-DCAdTMy8bWBCcKoe8c_YU,3223
77
77
  paid/types/address.py,sha256=fJa_oYXxsIxJXFZy5UQqflVkr8BQkwQ7fKhp2wO05fo,871
78
78
  paid/types/agent.py,sha256=dHqSO_hO0fgM5TsnEYrx3zL-rZsWc2GkjkCD2_aOch4,1168
79
79
  paid/types/agent_attribute.py,sha256=rmIQnmPFOAvCYUtc9oiBD5aqMrL3vdJ1krdxNhLRTEc,588
@@ -101,6 +101,7 @@ paid/types/order_line_attribute_pricing.py,sha256=UDE8OYP93wwmXcPVwgchMknCd64O0g
101
101
  paid/types/order_line_create.py,sha256=T8M2nDfyTmc2ph226mePT9SI_MJSciOOsBS-uoIF-K8,2696
102
102
  paid/types/pagination_meta.py,sha256=RJFmwweexzkYdfsb9ohascJCvQep2scF51kk4377Huo,2398
103
103
  paid/types/plan.py,sha256=WE7BXhFrBDsbRWXrcJlND90-UQYPwGomEPCOsNfP81E,2314
104
+ paid/types/plan_group.py,sha256=OlLrDIBmrE6TsnWJXxLBVSirXUvGK4iKxezyEnznSUI,1621
104
105
  paid/types/plan_plan_products_item.py,sha256=fRDm5zZcDehYpnIM6Y63YCxlBW9A_ISfnNIyGe-Mlek,1609
105
106
  paid/types/plan_plan_products_item_plan_product_attribute_item.py,sha256=w9Zc7y6zcxrKCK_RAWZRYx5iwDKm-XepjeBgWYiou8A,1443
106
107
  paid/types/price_point.py,sha256=lyeI38kJCBMOWdq97hG2kyYiixHgMCKjoCNmzOLG9Fk,915
@@ -146,7 +147,7 @@ opentelemetry/instrumentation/openai/v1/assistant_wrappers.py,sha256=gXpQUY0KAi0
146
147
  opentelemetry/instrumentation/openai/v1/event_handler_wrapper.py,sha256=IjmMDnX7EFOuaOi34YIOfHG07pGWDhEssMQhu9AS9XY,4410
147
148
  opentelemetry/instrumentation/openai/v1/responses_wrappers.py,sha256=bfovvrFPI-2v7xxgTBBO3X_D4fzwJffBaYHAGXLq90o,44463
148
149
  opentelemetry/instrumentation/openai/version.py,sha256=lqGEr9tvmZ_6Qa2559q1rV0OQ1kC9xcQ9JVV0A-9nt4,23
149
- paid_python-0.5.0.dist-info/LICENSE,sha256=Nz4baY1zvv0Qy7lqrQtbaiMhmEeGr2Q7A93aqzpml4c,1071
150
- paid_python-0.5.0.dist-info/METADATA,sha256=7-Hqxub31YH7Gtr8WIjM8U1kk0QdpdqPwstw-n_sf5c,24088
151
- paid_python-0.5.0.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
152
- paid_python-0.5.0.dist-info/RECORD,,
150
+ paid_python-0.6.0.dist-info/LICENSE,sha256=Nz4baY1zvv0Qy7lqrQtbaiMhmEeGr2Q7A93aqzpml4c,1071
151
+ paid_python-0.6.0.dist-info/METADATA,sha256=5Hq9GWXA-VSZ2CYeDFMOWJUFpSdMcSVNUSpPfBqsrIA,24088
152
+ paid_python-0.6.0.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
153
+ paid_python-0.6.0.dist-info/RECORD,,