payi 0.1.0a130__py3-none-any.whl → 0.1.0a132__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 payi might be problematic. Click here for more details.

Files changed (33) hide show
  1. payi/_version.py +1 -1
  2. payi/lib/instrument.py +42 -3
  3. payi/resources/categories/categories.py +4 -0
  4. payi/resources/limits/__init__.py +14 -14
  5. payi/resources/limits/limits.py +26 -26
  6. payi/resources/limits/properties.py +171 -0
  7. payi/resources/requests/request_id/properties.py +2 -2
  8. payi/resources/requests/response_id/properties.py +2 -2
  9. payi/resources/use_cases/definitions/limit_config.py +6 -6
  10. payi/types/category_list_resources_params.py +5 -1
  11. payi/types/category_resource_response.py +1 -3
  12. payi/types/limit_create_params.py +3 -5
  13. payi/types/limit_list_response.py +1 -3
  14. payi/types/limit_response.py +1 -3
  15. payi/types/limits/__init__.py +2 -9
  16. payi/types/limits/property_update_params.py +12 -0
  17. payi/types/limits/{tag_remove_response.py → property_update_response.py} +3 -3
  18. payi/types/shared/pay_i_common_models_budget_management_create_limit_base.py +3 -3
  19. payi/types/shared_params/pay_i_common_models_budget_management_create_limit_base.py +3 -5
  20. payi/types/use_cases/definitions/limit_config_create_params.py +3 -5
  21. {payi-0.1.0a130.dist-info → payi-0.1.0a132.dist-info}/METADATA +1 -1
  22. {payi-0.1.0a130.dist-info → payi-0.1.0a132.dist-info}/RECORD +24 -31
  23. payi/resources/limits/tags.py +0 -505
  24. payi/types/limits/limit_tags.py +0 -16
  25. payi/types/limits/tag_create_params.py +0 -14
  26. payi/types/limits/tag_create_response.py +0 -10
  27. payi/types/limits/tag_delete_response.py +0 -10
  28. payi/types/limits/tag_list_response.py +0 -10
  29. payi/types/limits/tag_remove_params.py +0 -14
  30. payi/types/limits/tag_update_params.py +0 -14
  31. payi/types/limits/tag_update_response.py +0 -10
  32. {payi-0.1.0a130.dist-info → payi-0.1.0a132.dist-info}/WHEEL +0 -0
  33. {payi-0.1.0a130.dist-info → payi-0.1.0a132.dist-info}/licenses/LICENSE +0 -0
@@ -1,505 +0,0 @@
1
- # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- from __future__ import annotations
4
-
5
- import httpx
6
-
7
- from ..._types import Body, Query, Headers, NotGiven, SequenceNotStr, not_given
8
- from ..._utils import maybe_transform, async_maybe_transform
9
- from ..._compat import cached_property
10
- from ..._resource import SyncAPIResource, AsyncAPIResource
11
- from ..._response import (
12
- to_raw_response_wrapper,
13
- to_streamed_response_wrapper,
14
- async_to_raw_response_wrapper,
15
- async_to_streamed_response_wrapper,
16
- )
17
- from ..._base_client import make_request_options
18
- from ...types.limits import tag_create_params, tag_remove_params, tag_update_params
19
- from ...types.limits.tag_list_response import TagListResponse
20
- from ...types.limits.tag_create_response import TagCreateResponse
21
- from ...types.limits.tag_delete_response import TagDeleteResponse
22
- from ...types.limits.tag_remove_response import TagRemoveResponse
23
- from ...types.limits.tag_update_response import TagUpdateResponse
24
-
25
- __all__ = ["TagsResource", "AsyncTagsResource"]
26
-
27
-
28
- class TagsResource(SyncAPIResource):
29
- @cached_property
30
- def with_raw_response(self) -> TagsResourceWithRawResponse:
31
- """
32
- This property can be used as a prefix for any HTTP method call to return
33
- the raw response object instead of the parsed content.
34
-
35
- For more information, see https://www.github.com/Pay-i/pay-i-python#accessing-raw-response-data-eg-headers
36
- """
37
- return TagsResourceWithRawResponse(self)
38
-
39
- @cached_property
40
- def with_streaming_response(self) -> TagsResourceWithStreamingResponse:
41
- """
42
- An alternative to `.with_raw_response` that doesn't eagerly read the response body.
43
-
44
- For more information, see https://www.github.com/Pay-i/pay-i-python#with_streaming_response
45
- """
46
- return TagsResourceWithStreamingResponse(self)
47
-
48
- def create(
49
- self,
50
- limit_id: str,
51
- *,
52
- limit_tags: SequenceNotStr[str],
53
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
54
- # The extra values given here take precedence over values defined on the client or passed to this method.
55
- extra_headers: Headers | None = None,
56
- extra_query: Query | None = None,
57
- extra_body: Body | None = None,
58
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
59
- ) -> TagCreateResponse:
60
- """
61
- Add Limit Tags
62
-
63
- Args:
64
- limit_tags: List of limit tags
65
-
66
- extra_headers: Send extra headers
67
-
68
- extra_query: Add additional query parameters to the request
69
-
70
- extra_body: Add additional JSON properties to the request
71
-
72
- timeout: Override the client-level default timeout for this request, in seconds
73
- """
74
- if not limit_id:
75
- raise ValueError(f"Expected a non-empty value for `limit_id` but received {limit_id!r}")
76
- return self._post(
77
- f"/api/v1/limits/{limit_id}/tags",
78
- body=maybe_transform({"limit_tags": limit_tags}, tag_create_params.TagCreateParams),
79
- options=make_request_options(
80
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
81
- ),
82
- cast_to=TagCreateResponse,
83
- )
84
-
85
- def update(
86
- self,
87
- limit_id: str,
88
- *,
89
- limit_tags: SequenceNotStr[str],
90
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
91
- # The extra values given here take precedence over values defined on the client or passed to this method.
92
- extra_headers: Headers | None = None,
93
- extra_query: Query | None = None,
94
- extra_body: Body | None = None,
95
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
96
- ) -> TagUpdateResponse:
97
- """
98
- Update the Limit Tags
99
-
100
- Args:
101
- limit_tags: List of limit tags
102
-
103
- extra_headers: Send extra headers
104
-
105
- extra_query: Add additional query parameters to the request
106
-
107
- extra_body: Add additional JSON properties to the request
108
-
109
- timeout: Override the client-level default timeout for this request, in seconds
110
- """
111
- if not limit_id:
112
- raise ValueError(f"Expected a non-empty value for `limit_id` but received {limit_id!r}")
113
- return self._put(
114
- f"/api/v1/limits/{limit_id}/tags",
115
- body=maybe_transform({"limit_tags": limit_tags}, tag_update_params.TagUpdateParams),
116
- options=make_request_options(
117
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
118
- ),
119
- cast_to=TagUpdateResponse,
120
- )
121
-
122
- def list(
123
- self,
124
- limit_id: str,
125
- *,
126
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
127
- # The extra values given here take precedence over values defined on the client or passed to this method.
128
- extra_headers: Headers | None = None,
129
- extra_query: Query | None = None,
130
- extra_body: Body | None = None,
131
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
132
- ) -> TagListResponse:
133
- """
134
- Get Limit Tags
135
-
136
- Args:
137
- extra_headers: Send extra headers
138
-
139
- extra_query: Add additional query parameters to the request
140
-
141
- extra_body: Add additional JSON properties to the request
142
-
143
- timeout: Override the client-level default timeout for this request, in seconds
144
- """
145
- if not limit_id:
146
- raise ValueError(f"Expected a non-empty value for `limit_id` but received {limit_id!r}")
147
- return self._get(
148
- f"/api/v1/limits/{limit_id}/tags",
149
- options=make_request_options(
150
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
151
- ),
152
- cast_to=TagListResponse,
153
- )
154
-
155
- def delete(
156
- self,
157
- limit_id: str,
158
- *,
159
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
160
- # The extra values given here take precedence over values defined on the client or passed to this method.
161
- extra_headers: Headers | None = None,
162
- extra_query: Query | None = None,
163
- extra_body: Body | None = None,
164
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
165
- ) -> TagDeleteResponse:
166
- """
167
- Delete all Tags from Limit
168
-
169
- Args:
170
- extra_headers: Send extra headers
171
-
172
- extra_query: Add additional query parameters to the request
173
-
174
- extra_body: Add additional JSON properties to the request
175
-
176
- timeout: Override the client-level default timeout for this request, in seconds
177
- """
178
- if not limit_id:
179
- raise ValueError(f"Expected a non-empty value for `limit_id` but received {limit_id!r}")
180
- return self._delete(
181
- f"/api/v1/limits/{limit_id}/tags",
182
- options=make_request_options(
183
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
184
- ),
185
- cast_to=TagDeleteResponse,
186
- )
187
-
188
- def remove(
189
- self,
190
- limit_id: str,
191
- *,
192
- limit_tags: SequenceNotStr[str],
193
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
194
- # The extra values given here take precedence over values defined on the client or passed to this method.
195
- extra_headers: Headers | None = None,
196
- extra_query: Query | None = None,
197
- extra_body: Body | None = None,
198
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
199
- ) -> TagRemoveResponse:
200
- """
201
- Remove Tags from Limit
202
-
203
- Args:
204
- limit_tags: List of limit tags
205
-
206
- extra_headers: Send extra headers
207
-
208
- extra_query: Add additional query parameters to the request
209
-
210
- extra_body: Add additional JSON properties to the request
211
-
212
- timeout: Override the client-level default timeout for this request, in seconds
213
- """
214
- if not limit_id:
215
- raise ValueError(f"Expected a non-empty value for `limit_id` but received {limit_id!r}")
216
- return self._patch(
217
- f"/api/v1/limits/{limit_id}/tags/remove",
218
- body=maybe_transform({"limit_tags": limit_tags}, tag_remove_params.TagRemoveParams),
219
- options=make_request_options(
220
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
221
- ),
222
- cast_to=TagRemoveResponse,
223
- )
224
-
225
-
226
- class AsyncTagsResource(AsyncAPIResource):
227
- @cached_property
228
- def with_raw_response(self) -> AsyncTagsResourceWithRawResponse:
229
- """
230
- This property can be used as a prefix for any HTTP method call to return
231
- the raw response object instead of the parsed content.
232
-
233
- For more information, see https://www.github.com/Pay-i/pay-i-python#accessing-raw-response-data-eg-headers
234
- """
235
- return AsyncTagsResourceWithRawResponse(self)
236
-
237
- @cached_property
238
- def with_streaming_response(self) -> AsyncTagsResourceWithStreamingResponse:
239
- """
240
- An alternative to `.with_raw_response` that doesn't eagerly read the response body.
241
-
242
- For more information, see https://www.github.com/Pay-i/pay-i-python#with_streaming_response
243
- """
244
- return AsyncTagsResourceWithStreamingResponse(self)
245
-
246
- async def create(
247
- self,
248
- limit_id: str,
249
- *,
250
- limit_tags: SequenceNotStr[str],
251
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
252
- # The extra values given here take precedence over values defined on the client or passed to this method.
253
- extra_headers: Headers | None = None,
254
- extra_query: Query | None = None,
255
- extra_body: Body | None = None,
256
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
257
- ) -> TagCreateResponse:
258
- """
259
- Add Limit Tags
260
-
261
- Args:
262
- limit_tags: List of limit tags
263
-
264
- extra_headers: Send extra headers
265
-
266
- extra_query: Add additional query parameters to the request
267
-
268
- extra_body: Add additional JSON properties to the request
269
-
270
- timeout: Override the client-level default timeout for this request, in seconds
271
- """
272
- if not limit_id:
273
- raise ValueError(f"Expected a non-empty value for `limit_id` but received {limit_id!r}")
274
- return await self._post(
275
- f"/api/v1/limits/{limit_id}/tags",
276
- body=await async_maybe_transform({"limit_tags": limit_tags}, tag_create_params.TagCreateParams),
277
- options=make_request_options(
278
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
279
- ),
280
- cast_to=TagCreateResponse,
281
- )
282
-
283
- async def update(
284
- self,
285
- limit_id: str,
286
- *,
287
- limit_tags: SequenceNotStr[str],
288
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
289
- # The extra values given here take precedence over values defined on the client or passed to this method.
290
- extra_headers: Headers | None = None,
291
- extra_query: Query | None = None,
292
- extra_body: Body | None = None,
293
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
294
- ) -> TagUpdateResponse:
295
- """
296
- Update the Limit Tags
297
-
298
- Args:
299
- limit_tags: List of limit tags
300
-
301
- extra_headers: Send extra headers
302
-
303
- extra_query: Add additional query parameters to the request
304
-
305
- extra_body: Add additional JSON properties to the request
306
-
307
- timeout: Override the client-level default timeout for this request, in seconds
308
- """
309
- if not limit_id:
310
- raise ValueError(f"Expected a non-empty value for `limit_id` but received {limit_id!r}")
311
- return await self._put(
312
- f"/api/v1/limits/{limit_id}/tags",
313
- body=await async_maybe_transform({"limit_tags": limit_tags}, tag_update_params.TagUpdateParams),
314
- options=make_request_options(
315
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
316
- ),
317
- cast_to=TagUpdateResponse,
318
- )
319
-
320
- async def list(
321
- self,
322
- limit_id: str,
323
- *,
324
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
325
- # The extra values given here take precedence over values defined on the client or passed to this method.
326
- extra_headers: Headers | None = None,
327
- extra_query: Query | None = None,
328
- extra_body: Body | None = None,
329
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
330
- ) -> TagListResponse:
331
- """
332
- Get Limit Tags
333
-
334
- Args:
335
- extra_headers: Send extra headers
336
-
337
- extra_query: Add additional query parameters to the request
338
-
339
- extra_body: Add additional JSON properties to the request
340
-
341
- timeout: Override the client-level default timeout for this request, in seconds
342
- """
343
- if not limit_id:
344
- raise ValueError(f"Expected a non-empty value for `limit_id` but received {limit_id!r}")
345
- return await self._get(
346
- f"/api/v1/limits/{limit_id}/tags",
347
- options=make_request_options(
348
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
349
- ),
350
- cast_to=TagListResponse,
351
- )
352
-
353
- async def delete(
354
- self,
355
- limit_id: str,
356
- *,
357
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
358
- # The extra values given here take precedence over values defined on the client or passed to this method.
359
- extra_headers: Headers | None = None,
360
- extra_query: Query | None = None,
361
- extra_body: Body | None = None,
362
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
363
- ) -> TagDeleteResponse:
364
- """
365
- Delete all Tags from Limit
366
-
367
- Args:
368
- extra_headers: Send extra headers
369
-
370
- extra_query: Add additional query parameters to the request
371
-
372
- extra_body: Add additional JSON properties to the request
373
-
374
- timeout: Override the client-level default timeout for this request, in seconds
375
- """
376
- if not limit_id:
377
- raise ValueError(f"Expected a non-empty value for `limit_id` but received {limit_id!r}")
378
- return await self._delete(
379
- f"/api/v1/limits/{limit_id}/tags",
380
- options=make_request_options(
381
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
382
- ),
383
- cast_to=TagDeleteResponse,
384
- )
385
-
386
- async def remove(
387
- self,
388
- limit_id: str,
389
- *,
390
- limit_tags: SequenceNotStr[str],
391
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
392
- # The extra values given here take precedence over values defined on the client or passed to this method.
393
- extra_headers: Headers | None = None,
394
- extra_query: Query | None = None,
395
- extra_body: Body | None = None,
396
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
397
- ) -> TagRemoveResponse:
398
- """
399
- Remove Tags from Limit
400
-
401
- Args:
402
- limit_tags: List of limit tags
403
-
404
- extra_headers: Send extra headers
405
-
406
- extra_query: Add additional query parameters to the request
407
-
408
- extra_body: Add additional JSON properties to the request
409
-
410
- timeout: Override the client-level default timeout for this request, in seconds
411
- """
412
- if not limit_id:
413
- raise ValueError(f"Expected a non-empty value for `limit_id` but received {limit_id!r}")
414
- return await self._patch(
415
- f"/api/v1/limits/{limit_id}/tags/remove",
416
- body=await async_maybe_transform({"limit_tags": limit_tags}, tag_remove_params.TagRemoveParams),
417
- options=make_request_options(
418
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
419
- ),
420
- cast_to=TagRemoveResponse,
421
- )
422
-
423
-
424
- class TagsResourceWithRawResponse:
425
- def __init__(self, tags: TagsResource) -> None:
426
- self._tags = tags
427
-
428
- self.create = to_raw_response_wrapper(
429
- tags.create,
430
- )
431
- self.update = to_raw_response_wrapper(
432
- tags.update,
433
- )
434
- self.list = to_raw_response_wrapper(
435
- tags.list,
436
- )
437
- self.delete = to_raw_response_wrapper(
438
- tags.delete,
439
- )
440
- self.remove = to_raw_response_wrapper(
441
- tags.remove,
442
- )
443
-
444
-
445
- class AsyncTagsResourceWithRawResponse:
446
- def __init__(self, tags: AsyncTagsResource) -> None:
447
- self._tags = tags
448
-
449
- self.create = async_to_raw_response_wrapper(
450
- tags.create,
451
- )
452
- self.update = async_to_raw_response_wrapper(
453
- tags.update,
454
- )
455
- self.list = async_to_raw_response_wrapper(
456
- tags.list,
457
- )
458
- self.delete = async_to_raw_response_wrapper(
459
- tags.delete,
460
- )
461
- self.remove = async_to_raw_response_wrapper(
462
- tags.remove,
463
- )
464
-
465
-
466
- class TagsResourceWithStreamingResponse:
467
- def __init__(self, tags: TagsResource) -> None:
468
- self._tags = tags
469
-
470
- self.create = to_streamed_response_wrapper(
471
- tags.create,
472
- )
473
- self.update = to_streamed_response_wrapper(
474
- tags.update,
475
- )
476
- self.list = to_streamed_response_wrapper(
477
- tags.list,
478
- )
479
- self.delete = to_streamed_response_wrapper(
480
- tags.delete,
481
- )
482
- self.remove = to_streamed_response_wrapper(
483
- tags.remove,
484
- )
485
-
486
-
487
- class AsyncTagsResourceWithStreamingResponse:
488
- def __init__(self, tags: AsyncTagsResource) -> None:
489
- self._tags = tags
490
-
491
- self.create = async_to_streamed_response_wrapper(
492
- tags.create,
493
- )
494
- self.update = async_to_streamed_response_wrapper(
495
- tags.update,
496
- )
497
- self.list = async_to_streamed_response_wrapper(
498
- tags.list,
499
- )
500
- self.delete = async_to_streamed_response_wrapper(
501
- tags.delete,
502
- )
503
- self.remove = async_to_streamed_response_wrapper(
504
- tags.remove,
505
- )
@@ -1,16 +0,0 @@
1
- # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- from typing import Optional
4
- from datetime import datetime
5
-
6
- from ..._models import BaseModel
7
-
8
- __all__ = ["LimitTags"]
9
-
10
-
11
- class LimitTags(BaseModel):
12
- created_on: Optional[datetime] = None
13
-
14
- tag_id: Optional[int] = None
15
-
16
- tag_name: Optional[str] = None
@@ -1,14 +0,0 @@
1
- # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- from __future__ import annotations
4
-
5
- from typing_extensions import Required, TypedDict
6
-
7
- from ..._types import SequenceNotStr
8
-
9
- __all__ = ["TagCreateParams"]
10
-
11
-
12
- class TagCreateParams(TypedDict, total=False):
13
- limit_tags: Required[SequenceNotStr[str]]
14
- """List of limit tags"""
@@ -1,10 +0,0 @@
1
- # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- from typing import List
4
- from typing_extensions import TypeAlias
5
-
6
- from .limit_tags import LimitTags
7
-
8
- __all__ = ["TagCreateResponse"]
9
-
10
- TagCreateResponse: TypeAlias = List[LimitTags]
@@ -1,10 +0,0 @@
1
- # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- from typing import List
4
- from typing_extensions import TypeAlias
5
-
6
- from .limit_tags import LimitTags
7
-
8
- __all__ = ["TagDeleteResponse"]
9
-
10
- TagDeleteResponse: TypeAlias = List[LimitTags]
@@ -1,10 +0,0 @@
1
- # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- from typing import List
4
- from typing_extensions import TypeAlias
5
-
6
- from .limit_tags import LimitTags
7
-
8
- __all__ = ["TagListResponse"]
9
-
10
- TagListResponse: TypeAlias = List[LimitTags]
@@ -1,14 +0,0 @@
1
- # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- from __future__ import annotations
4
-
5
- from typing_extensions import Required, TypedDict
6
-
7
- from ..._types import SequenceNotStr
8
-
9
- __all__ = ["TagRemoveParams"]
10
-
11
-
12
- class TagRemoveParams(TypedDict, total=False):
13
- limit_tags: Required[SequenceNotStr[str]]
14
- """List of limit tags"""
@@ -1,14 +0,0 @@
1
- # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- from __future__ import annotations
4
-
5
- from typing_extensions import Required, TypedDict
6
-
7
- from ..._types import SequenceNotStr
8
-
9
- __all__ = ["TagUpdateParams"]
10
-
11
-
12
- class TagUpdateParams(TypedDict, total=False):
13
- limit_tags: Required[SequenceNotStr[str]]
14
- """List of limit tags"""
@@ -1,10 +0,0 @@
1
- # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- from typing import List
4
- from typing_extensions import TypeAlias
5
-
6
- from .limit_tags import LimitTags
7
-
8
- __all__ = ["TagUpdateResponse"]
9
-
10
- TagUpdateResponse: TypeAlias = List[LimitTags]