payi 0.1.0a106__py3-none-any.whl → 0.1.0a108__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.
- payi/_base_client.py +4 -1
- payi/_files.py +4 -4
- payi/_version.py +1 -1
- payi/lib/helpers.py +9 -4
- payi/lib/instrument.py +39 -1
- payi/resources/ingest.py +4 -4
- payi/resources/limits/limits.py +0 -8
- payi/resources/use_cases/definitions/kpis.py +12 -12
- payi/resources/use_cases/kpis.py +4 -2
- payi/resources/use_cases/properties.py +5 -5
- payi/resources/use_cases/use_cases.py +13 -15
- payi/types/__init__.py +1 -3
- payi/types/category_resource_response.py +4 -0
- payi/types/cost_details.py +0 -2
- payi/types/ingest_event_param.py +4 -10
- payi/types/ingest_units_params.py +2 -2
- payi/types/limit_create_params.py +0 -4
- payi/types/shared/xproxy_result.py +2 -2
- payi/types/{use_case_create_response.py → use_case_instance_response.py} +2 -2
- payi/types/use_cases/__init__.py +0 -1
- payi/types/use_cases/definitions/kpi_create_params.py +3 -3
- payi/types/use_cases/kpi_update_params.py +2 -1
- {payi-0.1.0a106.dist-info → payi-0.1.0a108.dist-info}/METADATA +1 -1
- {payi-0.1.0a106.dist-info → payi-0.1.0a108.dist-info}/RECORD +26 -29
- payi/types/use_case_delete_response.py +0 -15
- payi/types/use_case_retrieve_response.py +0 -15
- payi/types/use_cases/property_create_response.py +0 -15
- {payi-0.1.0a106.dist-info → payi-0.1.0a108.dist-info}/WHEEL +0 -0
- {payi-0.1.0a106.dist-info → payi-0.1.0a108.dist-info}/licenses/LICENSE +0 -0
payi/_base_client.py
CHANGED
|
@@ -532,7 +532,10 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
|
|
|
532
532
|
is_body_allowed = options.method.lower() != "get"
|
|
533
533
|
|
|
534
534
|
if is_body_allowed:
|
|
535
|
-
|
|
535
|
+
if isinstance(json_data, bytes):
|
|
536
|
+
kwargs["content"] = json_data
|
|
537
|
+
else:
|
|
538
|
+
kwargs["json"] = json_data if is_given(json_data) else None
|
|
536
539
|
kwargs["files"] = files
|
|
537
540
|
else:
|
|
538
541
|
headers.pop("Content-Type", None)
|
payi/_files.py
CHANGED
|
@@ -69,12 +69,12 @@ def _transform_file(file: FileTypes) -> HttpxFileTypes:
|
|
|
69
69
|
return file
|
|
70
70
|
|
|
71
71
|
if is_tuple_t(file):
|
|
72
|
-
return (file[0],
|
|
72
|
+
return (file[0], read_file_content(file[1]), *file[2:])
|
|
73
73
|
|
|
74
74
|
raise TypeError(f"Expected file types input to be a FileContent type or to be a tuple")
|
|
75
75
|
|
|
76
76
|
|
|
77
|
-
def
|
|
77
|
+
def read_file_content(file: FileContent) -> HttpxFileContent:
|
|
78
78
|
if isinstance(file, os.PathLike):
|
|
79
79
|
return pathlib.Path(file).read_bytes()
|
|
80
80
|
return file
|
|
@@ -111,12 +111,12 @@ async def _async_transform_file(file: FileTypes) -> HttpxFileTypes:
|
|
|
111
111
|
return file
|
|
112
112
|
|
|
113
113
|
if is_tuple_t(file):
|
|
114
|
-
return (file[0], await
|
|
114
|
+
return (file[0], await async_read_file_content(file[1]), *file[2:])
|
|
115
115
|
|
|
116
116
|
raise TypeError(f"Expected file types input to be a FileContent type or to be a tuple")
|
|
117
117
|
|
|
118
118
|
|
|
119
|
-
async def
|
|
119
|
+
async def async_read_file_content(file: FileContent) -> HttpxFileContent:
|
|
120
120
|
if isinstance(file, os.PathLike):
|
|
121
121
|
return await anyio.Path(file).read_bytes()
|
|
122
122
|
|
payi/_version.py
CHANGED
payi/lib/helpers.py
CHANGED
|
@@ -11,6 +11,7 @@ class PayiHeaderNames:
|
|
|
11
11
|
use_case_version:str = "xProxy-UseCase-Version"
|
|
12
12
|
use_case_step:str = "xProxy-UseCase-Step"
|
|
13
13
|
user_id:str = "xProxy-User-ID"
|
|
14
|
+
account_name:str = "xProxy-Account-Name"
|
|
14
15
|
price_as_category:str = "xProxy-PriceAs-Category"
|
|
15
16
|
price_as_resource:str = "xProxy-PriceAs-Resource"
|
|
16
17
|
provider_base_uri = "xProxy-Provider-BaseUri"
|
|
@@ -24,7 +25,7 @@ class PayiCategories:
|
|
|
24
25
|
aws_bedrock:str = "system.aws.bedrock"
|
|
25
26
|
google_vertex:str = "system.google.vertex"
|
|
26
27
|
|
|
27
|
-
def create_limit_header_from_ids(limit_ids: List[str]) -> Dict[str, str]:
|
|
28
|
+
def create_limit_header_from_ids(*, limit_ids: List[str]) -> Dict[str, str]:
|
|
28
29
|
if not isinstance(limit_ids, list): # type: ignore
|
|
29
30
|
raise TypeError("limit_ids must be a list")
|
|
30
31
|
|
|
@@ -32,7 +33,7 @@ def create_limit_header_from_ids(limit_ids: List[str]) -> Dict[str, str]:
|
|
|
32
33
|
|
|
33
34
|
return { PayiHeaderNames.limit_ids: ",".join(valid_ids) } if valid_ids else {}
|
|
34
35
|
|
|
35
|
-
def create_request_header_from_tags(request_tags: List[str]) -> Dict[str, str]:
|
|
36
|
+
def create_request_header_from_tags(*, request_tags: List[str]) -> Dict[str, str]:
|
|
36
37
|
if not isinstance(request_tags, list): # type: ignore
|
|
37
38
|
raise TypeError("request_tags must be a list")
|
|
38
39
|
|
|
@@ -41,9 +42,11 @@ def create_request_header_from_tags(request_tags: List[str]) -> Dict[str, str]:
|
|
|
41
42
|
return { PayiHeaderNames.request_tags: ",".join(valid_tags) } if valid_tags else {}
|
|
42
43
|
|
|
43
44
|
def create_headers(
|
|
45
|
+
*,
|
|
44
46
|
limit_ids: Union[List[str], None] = None,
|
|
45
47
|
request_tags: Union[List[str], None] = None,
|
|
46
48
|
user_id: Union[str, None] = None,
|
|
49
|
+
account_name: Union[str, None] = None,
|
|
47
50
|
use_case_id: Union[str, None] = None,
|
|
48
51
|
use_case_name: Union[str, None] = None,
|
|
49
52
|
use_case_version: Union[int, None] = None,
|
|
@@ -55,11 +58,13 @@ def create_headers(
|
|
|
55
58
|
headers: Dict[str, str] = {}
|
|
56
59
|
|
|
57
60
|
if limit_ids:
|
|
58
|
-
headers.update(create_limit_header_from_ids(limit_ids))
|
|
61
|
+
headers.update(create_limit_header_from_ids(limit_ids=limit_ids))
|
|
59
62
|
if request_tags:
|
|
60
|
-
headers.update(create_request_header_from_tags(request_tags))
|
|
63
|
+
headers.update(create_request_header_from_tags(request_tags=request_tags))
|
|
61
64
|
if user_id:
|
|
62
65
|
headers.update({ PayiHeaderNames.user_id: user_id})
|
|
66
|
+
if account_name:
|
|
67
|
+
headers.update({ PayiHeaderNames.account_name: account_name})
|
|
63
68
|
if use_case_id:
|
|
64
69
|
headers.update({ PayiHeaderNames.use_case_id: use_case_id})
|
|
65
70
|
if use_case_name:
|
payi/lib/instrument.py
CHANGED
|
@@ -157,6 +157,7 @@ class PayiInstrumentConfig(TypedDict, total=False):
|
|
|
157
157
|
use_case_version: Optional[int]
|
|
158
158
|
use_case_properties: Optional["dict[str, str]"]
|
|
159
159
|
user_id: Optional[str]
|
|
160
|
+
account_name: Optional[str]
|
|
160
161
|
request_tags: Optional["list[str]"]
|
|
161
162
|
request_properties: Optional["dict[str, str]"]
|
|
162
163
|
|
|
@@ -168,6 +169,7 @@ class PayiContext(TypedDict, total=False):
|
|
|
168
169
|
use_case_properties: Optional["dict[str, str]"]
|
|
169
170
|
limit_ids: Optional['list[str]']
|
|
170
171
|
user_id: Optional[str]
|
|
172
|
+
account_name: Optional[str]
|
|
171
173
|
request_tags: Optional["list[str]"]
|
|
172
174
|
request_properties: Optional["dict[str, str]"]
|
|
173
175
|
price_as_category: Optional[str]
|
|
@@ -184,6 +186,7 @@ class _Context(TypedDict, total=False):
|
|
|
184
186
|
use_case_properties: Optional["dict[str, str]"]
|
|
185
187
|
limit_ids: Optional['list[str]']
|
|
186
188
|
user_id: Optional[str]
|
|
189
|
+
account_name: Optional[str]
|
|
187
190
|
request_tags: Optional["list[str]"]
|
|
188
191
|
request_properties: Optional["dict[str, str]"]
|
|
189
192
|
price_as_category: Optional[str]
|
|
@@ -655,6 +658,7 @@ class _PayiInstrumentor:
|
|
|
655
658
|
use_case_version: Optional[int]= None,
|
|
656
659
|
use_case_step: Optional[str]= None,
|
|
657
660
|
user_id: Optional[str]= None,
|
|
661
|
+
account_name: Optional[str]= None,
|
|
658
662
|
request_tags: Optional["list[str]"] = None,
|
|
659
663
|
request_properties: Optional["dict[str, str]"] = None,
|
|
660
664
|
use_case_properties: Optional["dict[str, str]"] = None,
|
|
@@ -747,6 +751,16 @@ class _PayiInstrumentor:
|
|
|
747
751
|
else:
|
|
748
752
|
context["user_id"] = user_id
|
|
749
753
|
|
|
754
|
+
parent_account_name = parent_context.get("account_name", None)
|
|
755
|
+
if account_name is None:
|
|
756
|
+
# use the parent account_name if it exists
|
|
757
|
+
context["account_name"] = parent_account_name
|
|
758
|
+
elif len(account_name) == 0:
|
|
759
|
+
# caller passing an empty string explicitly blocks inheriting from the parent state
|
|
760
|
+
context["account_name"] = None
|
|
761
|
+
else:
|
|
762
|
+
context["account_name"] = account_name
|
|
763
|
+
|
|
750
764
|
parent_request_tags = parent_context.get("request_tags", None)
|
|
751
765
|
if request_tags is not None:
|
|
752
766
|
if len(request_tags) == 0:
|
|
@@ -795,6 +809,7 @@ class _PayiInstrumentor:
|
|
|
795
809
|
use_case_id: Optional[str],
|
|
796
810
|
use_case_version: Optional[int],
|
|
797
811
|
user_id: Optional[str],
|
|
812
|
+
account_name: Optional[str],
|
|
798
813
|
request_tags: Optional["list[str]"] = None,
|
|
799
814
|
request_properties: Optional["dict[str, str]"] = None,
|
|
800
815
|
use_case_properties: Optional["dict[str, str]"] = None,
|
|
@@ -809,6 +824,7 @@ class _PayiInstrumentor:
|
|
|
809
824
|
use_case_id=use_case_id,
|
|
810
825
|
use_case_version=use_case_version,
|
|
811
826
|
user_id=user_id,
|
|
827
|
+
account_name=account_name,
|
|
812
828
|
request_tags=request_tags,
|
|
813
829
|
request_properties=request_properties,
|
|
814
830
|
use_case_properties=use_case_properties
|
|
@@ -824,6 +840,7 @@ class _PayiInstrumentor:
|
|
|
824
840
|
use_case_id: Optional[str],
|
|
825
841
|
use_case_version: Optional[int],
|
|
826
842
|
user_id: Optional[str],
|
|
843
|
+
account_name: Optional[str],
|
|
827
844
|
request_tags: Optional["list[str]"] = None,
|
|
828
845
|
request_properties: Optional["dict[str, str]"] = None,
|
|
829
846
|
use_case_properties: Optional["dict[str, str]"] = None,
|
|
@@ -838,6 +855,7 @@ class _PayiInstrumentor:
|
|
|
838
855
|
use_case_id=use_case_id,
|
|
839
856
|
use_case_version=use_case_version,
|
|
840
857
|
user_id=user_id,
|
|
858
|
+
account_name=account_name,
|
|
841
859
|
request_tags=request_tags,
|
|
842
860
|
request_properties=request_properties,
|
|
843
861
|
use_case_properties=use_case_properties)
|
|
@@ -879,6 +897,7 @@ class _PayiInstrumentor:
|
|
|
879
897
|
use_case_step = ingest_extra_headers.pop(PayiHeaderNames.use_case_step, None)
|
|
880
898
|
|
|
881
899
|
user_id = ingest_extra_headers.pop(PayiHeaderNames.user_id, None)
|
|
900
|
+
account_name = ingest_extra_headers.pop(PayiHeaderNames.account_name, None)
|
|
882
901
|
|
|
883
902
|
if limit_ids:
|
|
884
903
|
request._ingest["limit_ids"] = limit_ids.split(",")
|
|
@@ -894,6 +913,8 @@ class _PayiInstrumentor:
|
|
|
894
913
|
request._ingest["use_case_step"] = use_case_step
|
|
895
914
|
if user_id:
|
|
896
915
|
request._ingest["user_id"] = user_id
|
|
916
|
+
if account_name:
|
|
917
|
+
request._ingest["account_name"] = account_name
|
|
897
918
|
|
|
898
919
|
request_properties = context.get("request_properties", None)
|
|
899
920
|
if request_properties:
|
|
@@ -1207,6 +1228,7 @@ class _PayiInstrumentor:
|
|
|
1207
1228
|
context_use_case_step: Optional[str] = context.get("use_case_step")
|
|
1208
1229
|
|
|
1209
1230
|
context_user_id: Optional[str] = context.get("user_id")
|
|
1231
|
+
context_account_name: Optional[str] = context.get("account_name")
|
|
1210
1232
|
context_request_tags: Optional[list[str]] = context.get("request_tags")
|
|
1211
1233
|
|
|
1212
1234
|
context_price_as_category: Optional[str] = context.get("price_as_category")
|
|
@@ -1239,6 +1261,17 @@ class _PayiInstrumentor:
|
|
|
1239
1261
|
elif context_user_id:
|
|
1240
1262
|
extra_headers[PayiHeaderNames.user_id] = context_user_id
|
|
1241
1263
|
|
|
1264
|
+
if PayiHeaderNames.account_name in extra_headers:
|
|
1265
|
+
headers_account_name = extra_headers.get(PayiHeaderNames.account_name, None)
|
|
1266
|
+
if headers_account_name is None or len(headers_account_name) == 0:
|
|
1267
|
+
# headers_account_name is empty, remove it from extra_headers
|
|
1268
|
+
extra_headers.pop(PayiHeaderNames.account_name, None)
|
|
1269
|
+
else:
|
|
1270
|
+
# leave the value in extra_headers
|
|
1271
|
+
...
|
|
1272
|
+
elif context_account_name:
|
|
1273
|
+
extra_headers[PayiHeaderNames.account_name] = context_account_name
|
|
1274
|
+
|
|
1242
1275
|
if PayiHeaderNames.use_case_name in extra_headers:
|
|
1243
1276
|
headers_use_case_name = extra_headers.get(PayiHeaderNames.use_case_name, None)
|
|
1244
1277
|
if headers_use_case_name is None or len(headers_use_case_name) == 0:
|
|
@@ -1711,6 +1744,7 @@ def track(
|
|
|
1711
1744
|
use_case_id: Optional[str] = None,
|
|
1712
1745
|
use_case_version: Optional[int] = None,
|
|
1713
1746
|
user_id: Optional[str] = None,
|
|
1747
|
+
account_name: Optional[str] = None,
|
|
1714
1748
|
request_tags: Optional["list[str]"] = None,
|
|
1715
1749
|
request_properties: Optional["dict[str, str]"] = None,
|
|
1716
1750
|
use_case_properties: Optional["dict[str, str]"] = None,
|
|
@@ -1735,6 +1769,7 @@ def track(
|
|
|
1735
1769
|
use_case_id,
|
|
1736
1770
|
use_case_version,
|
|
1737
1771
|
user_id,
|
|
1772
|
+
account_name,
|
|
1738
1773
|
request_tags,
|
|
1739
1774
|
request_properties,
|
|
1740
1775
|
use_case_properties,
|
|
@@ -1748,7 +1783,7 @@ def track(
|
|
|
1748
1783
|
_g_logger.debug(f"track: no instrumentor!")
|
|
1749
1784
|
return func(*args, **kwargs)
|
|
1750
1785
|
|
|
1751
|
-
_instrumentor._logger.debug(f"track: call sync function (proxy={proxy}, limit_ids={limit_ids}, use_case_name={use_case_name}, use_case_id={use_case_id}, use_case_version={use_case_version}, user_id={user_id})")
|
|
1786
|
+
_instrumentor._logger.debug(f"track: call sync function (proxy={proxy}, limit_ids={limit_ids}, use_case_name={use_case_name}, use_case_id={use_case_id}, use_case_version={use_case_version}, user_id={user_id}, account_name={account_name})")
|
|
1752
1787
|
|
|
1753
1788
|
return _instrumentor._call_func(
|
|
1754
1789
|
func,
|
|
@@ -1758,6 +1793,7 @@ def track(
|
|
|
1758
1793
|
use_case_id,
|
|
1759
1794
|
use_case_version,
|
|
1760
1795
|
user_id,
|
|
1796
|
+
account_name,
|
|
1761
1797
|
request_tags,
|
|
1762
1798
|
request_properties,
|
|
1763
1799
|
use_case_properties,
|
|
@@ -1775,6 +1811,7 @@ def track_context(
|
|
|
1775
1811
|
use_case_version: Optional[int] = None,
|
|
1776
1812
|
use_case_step: Optional[str] = None,
|
|
1777
1813
|
user_id: Optional[str] = None,
|
|
1814
|
+
account_name: Optional[str] = None,
|
|
1778
1815
|
request_tags: Optional["list[str]"] = None,
|
|
1779
1816
|
request_properties: Optional["dict[str, str]"] = None,
|
|
1780
1817
|
use_case_properties: Optional["dict[str, str]"] = None,
|
|
@@ -1796,6 +1833,7 @@ def track_context(
|
|
|
1796
1833
|
context["use_case_step"] = use_case_step
|
|
1797
1834
|
|
|
1798
1835
|
context["user_id"] = user_id
|
|
1836
|
+
context["account_name"] = account_name
|
|
1799
1837
|
context["request_tags"] = request_tags
|
|
1800
1838
|
|
|
1801
1839
|
context["price_as_category"] = price_as_category
|
payi/resources/ingest.py
CHANGED
|
@@ -86,7 +86,6 @@ class IngestResource(SyncAPIResource):
|
|
|
86
86
|
self,
|
|
87
87
|
*,
|
|
88
88
|
category: str,
|
|
89
|
-
resource: str,
|
|
90
89
|
units: Dict[str, IngestUnits],
|
|
91
90
|
end_to_end_latency_ms: Optional[int] | NotGiven = NOT_GIVEN,
|
|
92
91
|
event_timestamp: Union[str, datetime, None] | NotGiven = NOT_GIVEN,
|
|
@@ -101,6 +100,7 @@ class IngestResource(SyncAPIResource):
|
|
|
101
100
|
provider_response_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
102
101
|
provider_response_json: Union[str, List[str], None] | NotGiven = NOT_GIVEN,
|
|
103
102
|
provider_uri: Optional[str] | NotGiven = NOT_GIVEN,
|
|
103
|
+
resource: Optional[str] | NotGiven = NOT_GIVEN,
|
|
104
104
|
time_to_first_completion_token_ms: Optional[int] | NotGiven = NOT_GIVEN,
|
|
105
105
|
time_to_first_token_ms: Optional[int] | NotGiven = NOT_GIVEN,
|
|
106
106
|
use_case_properties: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
@@ -233,7 +233,6 @@ class IngestResource(SyncAPIResource):
|
|
|
233
233
|
body=maybe_transform(
|
|
234
234
|
{
|
|
235
235
|
"category": category,
|
|
236
|
-
"resource": resource,
|
|
237
236
|
"units": units,
|
|
238
237
|
"end_to_end_latency_ms": end_to_end_latency_ms,
|
|
239
238
|
"event_timestamp": event_timestamp,
|
|
@@ -247,6 +246,7 @@ class IngestResource(SyncAPIResource):
|
|
|
247
246
|
"provider_response_id": provider_response_id,
|
|
248
247
|
"provider_response_json": provider_response_json,
|
|
249
248
|
"provider_uri": provider_uri,
|
|
249
|
+
"resource": resource,
|
|
250
250
|
"time_to_first_completion_token_ms": time_to_first_completion_token_ms,
|
|
251
251
|
"time_to_first_token_ms": time_to_first_token_ms,
|
|
252
252
|
"use_case_properties": use_case_properties,
|
|
@@ -316,7 +316,6 @@ class AsyncIngestResource(AsyncAPIResource):
|
|
|
316
316
|
self,
|
|
317
317
|
*,
|
|
318
318
|
category: str,
|
|
319
|
-
resource: str,
|
|
320
319
|
units: Dict[str, IngestUnits],
|
|
321
320
|
end_to_end_latency_ms: Optional[int] | NotGiven = NOT_GIVEN,
|
|
322
321
|
event_timestamp: Union[str, datetime, None] | NotGiven = NOT_GIVEN,
|
|
@@ -331,6 +330,7 @@ class AsyncIngestResource(AsyncAPIResource):
|
|
|
331
330
|
provider_response_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
332
331
|
provider_response_json: Union[str, List[str], None] | NotGiven = NOT_GIVEN,
|
|
333
332
|
provider_uri: Optional[str] | NotGiven = NOT_GIVEN,
|
|
333
|
+
resource: Optional[str] | NotGiven = NOT_GIVEN,
|
|
334
334
|
time_to_first_completion_token_ms: Optional[int] | NotGiven = NOT_GIVEN,
|
|
335
335
|
time_to_first_token_ms: Optional[int] | NotGiven = NOT_GIVEN,
|
|
336
336
|
use_case_properties: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
@@ -461,7 +461,6 @@ class AsyncIngestResource(AsyncAPIResource):
|
|
|
461
461
|
body=await async_maybe_transform(
|
|
462
462
|
{
|
|
463
463
|
"category": category,
|
|
464
|
-
"resource": resource,
|
|
465
464
|
"units": units,
|
|
466
465
|
"end_to_end_latency_ms": end_to_end_latency_ms,
|
|
467
466
|
"event_timestamp": event_timestamp,
|
|
@@ -475,6 +474,7 @@ class AsyncIngestResource(AsyncAPIResource):
|
|
|
475
474
|
"provider_response_id": provider_response_id,
|
|
476
475
|
"provider_response_json": provider_response_json,
|
|
477
476
|
"provider_uri": provider_uri,
|
|
477
|
+
"resource": resource,
|
|
478
478
|
"time_to_first_completion_token_ms": time_to_first_completion_token_ms,
|
|
479
479
|
"time_to_first_token_ms": time_to_first_token_ms,
|
|
480
480
|
"use_case_properties": use_case_properties,
|
payi/resources/limits/limits.py
CHANGED
|
@@ -66,8 +66,6 @@ class LimitsResource(SyncAPIResource):
|
|
|
66
66
|
*,
|
|
67
67
|
limit_name: str,
|
|
68
68
|
max: float,
|
|
69
|
-
billing_model_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
70
|
-
limit_basis: Literal["base", "billed"] | NotGiven = NOT_GIVEN,
|
|
71
69
|
limit_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
72
70
|
limit_tags: Optional[List[str]] | NotGiven = NOT_GIVEN,
|
|
73
71
|
limit_type: Literal["block", "allow"] | NotGiven = NOT_GIVEN,
|
|
@@ -97,8 +95,6 @@ class LimitsResource(SyncAPIResource):
|
|
|
97
95
|
{
|
|
98
96
|
"limit_name": limit_name,
|
|
99
97
|
"max": max,
|
|
100
|
-
"billing_model_id": billing_model_id,
|
|
101
|
-
"limit_basis": limit_basis,
|
|
102
98
|
"limit_id": limit_id,
|
|
103
99
|
"limit_tags": limit_tags,
|
|
104
100
|
"limit_type": limit_type,
|
|
@@ -337,8 +333,6 @@ class AsyncLimitsResource(AsyncAPIResource):
|
|
|
337
333
|
*,
|
|
338
334
|
limit_name: str,
|
|
339
335
|
max: float,
|
|
340
|
-
billing_model_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
341
|
-
limit_basis: Literal["base", "billed"] | NotGiven = NOT_GIVEN,
|
|
342
336
|
limit_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
343
337
|
limit_tags: Optional[List[str]] | NotGiven = NOT_GIVEN,
|
|
344
338
|
limit_type: Literal["block", "allow"] | NotGiven = NOT_GIVEN,
|
|
@@ -368,8 +362,6 @@ class AsyncLimitsResource(AsyncAPIResource):
|
|
|
368
362
|
{
|
|
369
363
|
"limit_name": limit_name,
|
|
370
364
|
"max": max,
|
|
371
|
-
"billing_model_id": billing_model_id,
|
|
372
|
-
"limit_basis": limit_basis,
|
|
373
365
|
"limit_id": limit_id,
|
|
374
366
|
"limit_tags": limit_tags,
|
|
375
367
|
"limit_type": limit_type,
|
|
@@ -54,9 +54,9 @@ class KpisResource(SyncAPIResource):
|
|
|
54
54
|
use_case_name: str,
|
|
55
55
|
*,
|
|
56
56
|
description: str,
|
|
57
|
+
goal: float,
|
|
58
|
+
kpi_type: Literal["boolean", "number", "percentage", "likert5", "likert7", "likert10"],
|
|
57
59
|
name: str,
|
|
58
|
-
goal: float | NotGiven = NOT_GIVEN,
|
|
59
|
-
kpi_type: Literal["boolean", "number", "percentage", "likert5", "likert7", "likert10"] | NotGiven = NOT_GIVEN,
|
|
60
60
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
61
61
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
62
62
|
extra_headers: Headers | None = None,
|
|
@@ -65,7 +65,7 @@ class KpisResource(SyncAPIResource):
|
|
|
65
65
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
66
66
|
) -> KpiCreateResponse:
|
|
67
67
|
"""
|
|
68
|
-
Create a new Use Case
|
|
68
|
+
Create a new KPI definition for a Use Case
|
|
69
69
|
|
|
70
70
|
Args:
|
|
71
71
|
extra_headers: Send extra headers
|
|
@@ -83,9 +83,9 @@ class KpisResource(SyncAPIResource):
|
|
|
83
83
|
body=maybe_transform(
|
|
84
84
|
{
|
|
85
85
|
"description": description,
|
|
86
|
-
"name": name,
|
|
87
86
|
"goal": goal,
|
|
88
87
|
"kpi_type": kpi_type,
|
|
88
|
+
"name": name,
|
|
89
89
|
},
|
|
90
90
|
kpi_create_params.KpiCreateParams,
|
|
91
91
|
),
|
|
@@ -146,7 +146,7 @@ class KpisResource(SyncAPIResource):
|
|
|
146
146
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
147
147
|
) -> KpiUpdateResponse:
|
|
148
148
|
"""
|
|
149
|
-
Update a Use Case
|
|
149
|
+
Update a KPI definition for a Use Case
|
|
150
150
|
|
|
151
151
|
Args:
|
|
152
152
|
extra_headers: Send extra headers
|
|
@@ -239,7 +239,7 @@ class KpisResource(SyncAPIResource):
|
|
|
239
239
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
240
240
|
) -> KpiDeleteResponse:
|
|
241
241
|
"""
|
|
242
|
-
Delete a Use Case
|
|
242
|
+
Delete a KPI definition for a Use Case
|
|
243
243
|
|
|
244
244
|
Args:
|
|
245
245
|
extra_headers: Send extra headers
|
|
@@ -288,9 +288,9 @@ class AsyncKpisResource(AsyncAPIResource):
|
|
|
288
288
|
use_case_name: str,
|
|
289
289
|
*,
|
|
290
290
|
description: str,
|
|
291
|
+
goal: float,
|
|
292
|
+
kpi_type: Literal["boolean", "number", "percentage", "likert5", "likert7", "likert10"],
|
|
291
293
|
name: str,
|
|
292
|
-
goal: float | NotGiven = NOT_GIVEN,
|
|
293
|
-
kpi_type: Literal["boolean", "number", "percentage", "likert5", "likert7", "likert10"] | NotGiven = NOT_GIVEN,
|
|
294
294
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
295
295
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
296
296
|
extra_headers: Headers | None = None,
|
|
@@ -299,7 +299,7 @@ class AsyncKpisResource(AsyncAPIResource):
|
|
|
299
299
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
300
300
|
) -> KpiCreateResponse:
|
|
301
301
|
"""
|
|
302
|
-
Create a new Use Case
|
|
302
|
+
Create a new KPI definition for a Use Case
|
|
303
303
|
|
|
304
304
|
Args:
|
|
305
305
|
extra_headers: Send extra headers
|
|
@@ -317,9 +317,9 @@ class AsyncKpisResource(AsyncAPIResource):
|
|
|
317
317
|
body=await async_maybe_transform(
|
|
318
318
|
{
|
|
319
319
|
"description": description,
|
|
320
|
-
"name": name,
|
|
321
320
|
"goal": goal,
|
|
322
321
|
"kpi_type": kpi_type,
|
|
322
|
+
"name": name,
|
|
323
323
|
},
|
|
324
324
|
kpi_create_params.KpiCreateParams,
|
|
325
325
|
),
|
|
@@ -380,7 +380,7 @@ class AsyncKpisResource(AsyncAPIResource):
|
|
|
380
380
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
381
381
|
) -> KpiUpdateResponse:
|
|
382
382
|
"""
|
|
383
|
-
Update a Use Case
|
|
383
|
+
Update a KPI definition for a Use Case
|
|
384
384
|
|
|
385
385
|
Args:
|
|
386
386
|
extra_headers: Send extra headers
|
|
@@ -473,7 +473,7 @@ class AsyncKpisResource(AsyncAPIResource):
|
|
|
473
473
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
474
474
|
) -> KpiDeleteResponse:
|
|
475
475
|
"""
|
|
476
|
-
Delete a Use Case
|
|
476
|
+
Delete a KPI definition for a Use Case
|
|
477
477
|
|
|
478
478
|
Args:
|
|
479
479
|
extra_headers: Send extra headers
|
payi/resources/use_cases/kpis.py
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
from typing import Union
|
|
6
|
+
|
|
5
7
|
import httpx
|
|
6
8
|
|
|
7
9
|
from ..._types import NOT_GIVEN, Body, Query, Headers, NoneType, NotGiven
|
|
@@ -47,7 +49,7 @@ class KpisResource(SyncAPIResource):
|
|
|
47
49
|
kpi_name: str,
|
|
48
50
|
*,
|
|
49
51
|
use_case_id: str,
|
|
50
|
-
score: float | NotGiven = NOT_GIVEN,
|
|
52
|
+
score: Union[bool, float, None] | NotGiven = NOT_GIVEN,
|
|
51
53
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
52
54
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
53
55
|
extra_headers: Headers | None = None,
|
|
@@ -157,7 +159,7 @@ class AsyncKpisResource(AsyncAPIResource):
|
|
|
157
159
|
kpi_name: str,
|
|
158
160
|
*,
|
|
159
161
|
use_case_id: str,
|
|
160
|
-
score: float | NotGiven = NOT_GIVEN,
|
|
162
|
+
score: Union[bool, float, None] | NotGiven = NOT_GIVEN,
|
|
161
163
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
162
164
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
163
165
|
extra_headers: Headers | None = None,
|
|
@@ -18,7 +18,7 @@ from ..._response import (
|
|
|
18
18
|
)
|
|
19
19
|
from ..._base_client import make_request_options
|
|
20
20
|
from ...types.use_cases import property_update_params
|
|
21
|
-
from ...types.
|
|
21
|
+
from ...types.use_case_instance_response import UseCaseInstanceResponse
|
|
22
22
|
|
|
23
23
|
__all__ = ["PropertiesResource", "AsyncPropertiesResource"]
|
|
24
24
|
|
|
@@ -54,7 +54,7 @@ class PropertiesResource(SyncAPIResource):
|
|
|
54
54
|
extra_query: Query | None = None,
|
|
55
55
|
extra_body: Body | None = None,
|
|
56
56
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
57
|
-
) ->
|
|
57
|
+
) -> UseCaseInstanceResponse:
|
|
58
58
|
"""
|
|
59
59
|
Update a Use Case instance properties
|
|
60
60
|
|
|
@@ -75,7 +75,7 @@ class PropertiesResource(SyncAPIResource):
|
|
|
75
75
|
options=make_request_options(
|
|
76
76
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
77
77
|
),
|
|
78
|
-
cast_to=
|
|
78
|
+
cast_to=UseCaseInstanceResponse,
|
|
79
79
|
)
|
|
80
80
|
|
|
81
81
|
|
|
@@ -110,7 +110,7 @@ class AsyncPropertiesResource(AsyncAPIResource):
|
|
|
110
110
|
extra_query: Query | None = None,
|
|
111
111
|
extra_body: Body | None = None,
|
|
112
112
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
113
|
-
) ->
|
|
113
|
+
) -> UseCaseInstanceResponse:
|
|
114
114
|
"""
|
|
115
115
|
Update a Use Case instance properties
|
|
116
116
|
|
|
@@ -131,7 +131,7 @@ class AsyncPropertiesResource(AsyncAPIResource):
|
|
|
131
131
|
options=make_request_options(
|
|
132
132
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
133
133
|
),
|
|
134
|
-
cast_to=
|
|
134
|
+
cast_to=UseCaseInstanceResponse,
|
|
135
135
|
)
|
|
136
136
|
|
|
137
137
|
|
|
@@ -38,9 +38,7 @@ from .definitions.definitions import (
|
|
|
38
38
|
DefinitionsResourceWithStreamingResponse,
|
|
39
39
|
AsyncDefinitionsResourceWithStreamingResponse,
|
|
40
40
|
)
|
|
41
|
-
from ...types.
|
|
42
|
-
from ...types.use_case_delete_response import UseCaseDeleteResponse
|
|
43
|
-
from ...types.use_case_retrieve_response import UseCaseRetrieveResponse
|
|
41
|
+
from ...types.use_case_instance_response import UseCaseInstanceResponse
|
|
44
42
|
|
|
45
43
|
__all__ = ["UseCasesResource", "AsyncUseCasesResource"]
|
|
46
44
|
|
|
@@ -87,7 +85,7 @@ class UseCasesResource(SyncAPIResource):
|
|
|
87
85
|
extra_query: Query | None = None,
|
|
88
86
|
extra_body: Body | None = None,
|
|
89
87
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
90
|
-
) ->
|
|
88
|
+
) -> UseCaseInstanceResponse:
|
|
91
89
|
"""
|
|
92
90
|
Create a Use Case instance
|
|
93
91
|
|
|
@@ -107,7 +105,7 @@ class UseCasesResource(SyncAPIResource):
|
|
|
107
105
|
options=make_request_options(
|
|
108
106
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
109
107
|
),
|
|
110
|
-
cast_to=
|
|
108
|
+
cast_to=UseCaseInstanceResponse,
|
|
111
109
|
)
|
|
112
110
|
|
|
113
111
|
def retrieve(
|
|
@@ -120,7 +118,7 @@ class UseCasesResource(SyncAPIResource):
|
|
|
120
118
|
extra_query: Query | None = None,
|
|
121
119
|
extra_body: Body | None = None,
|
|
122
120
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
123
|
-
) ->
|
|
121
|
+
) -> UseCaseInstanceResponse:
|
|
124
122
|
"""
|
|
125
123
|
Get a Use Case instance details
|
|
126
124
|
|
|
@@ -140,7 +138,7 @@ class UseCasesResource(SyncAPIResource):
|
|
|
140
138
|
options=make_request_options(
|
|
141
139
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
142
140
|
),
|
|
143
|
-
cast_to=
|
|
141
|
+
cast_to=UseCaseInstanceResponse,
|
|
144
142
|
)
|
|
145
143
|
|
|
146
144
|
def delete(
|
|
@@ -153,7 +151,7 @@ class UseCasesResource(SyncAPIResource):
|
|
|
153
151
|
extra_query: Query | None = None,
|
|
154
152
|
extra_body: Body | None = None,
|
|
155
153
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
156
|
-
) ->
|
|
154
|
+
) -> UseCaseInstanceResponse:
|
|
157
155
|
"""
|
|
158
156
|
Delete a Use Case instance
|
|
159
157
|
|
|
@@ -173,7 +171,7 @@ class UseCasesResource(SyncAPIResource):
|
|
|
173
171
|
options=make_request_options(
|
|
174
172
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
175
173
|
),
|
|
176
|
-
cast_to=
|
|
174
|
+
cast_to=UseCaseInstanceResponse,
|
|
177
175
|
)
|
|
178
176
|
|
|
179
177
|
|
|
@@ -219,7 +217,7 @@ class AsyncUseCasesResource(AsyncAPIResource):
|
|
|
219
217
|
extra_query: Query | None = None,
|
|
220
218
|
extra_body: Body | None = None,
|
|
221
219
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
222
|
-
) ->
|
|
220
|
+
) -> UseCaseInstanceResponse:
|
|
223
221
|
"""
|
|
224
222
|
Create a Use Case instance
|
|
225
223
|
|
|
@@ -239,7 +237,7 @@ class AsyncUseCasesResource(AsyncAPIResource):
|
|
|
239
237
|
options=make_request_options(
|
|
240
238
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
241
239
|
),
|
|
242
|
-
cast_to=
|
|
240
|
+
cast_to=UseCaseInstanceResponse,
|
|
243
241
|
)
|
|
244
242
|
|
|
245
243
|
async def retrieve(
|
|
@@ -252,7 +250,7 @@ class AsyncUseCasesResource(AsyncAPIResource):
|
|
|
252
250
|
extra_query: Query | None = None,
|
|
253
251
|
extra_body: Body | None = None,
|
|
254
252
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
255
|
-
) ->
|
|
253
|
+
) -> UseCaseInstanceResponse:
|
|
256
254
|
"""
|
|
257
255
|
Get a Use Case instance details
|
|
258
256
|
|
|
@@ -272,7 +270,7 @@ class AsyncUseCasesResource(AsyncAPIResource):
|
|
|
272
270
|
options=make_request_options(
|
|
273
271
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
274
272
|
),
|
|
275
|
-
cast_to=
|
|
273
|
+
cast_to=UseCaseInstanceResponse,
|
|
276
274
|
)
|
|
277
275
|
|
|
278
276
|
async def delete(
|
|
@@ -285,7 +283,7 @@ class AsyncUseCasesResource(AsyncAPIResource):
|
|
|
285
283
|
extra_query: Query | None = None,
|
|
286
284
|
extra_body: Body | None = None,
|
|
287
285
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
288
|
-
) ->
|
|
286
|
+
) -> UseCaseInstanceResponse:
|
|
289
287
|
"""
|
|
290
288
|
Delete a Use Case instance
|
|
291
289
|
|
|
@@ -305,7 +303,7 @@ class AsyncUseCasesResource(AsyncAPIResource):
|
|
|
305
303
|
options=make_request_options(
|
|
306
304
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
307
305
|
),
|
|
308
|
-
cast_to=
|
|
306
|
+
cast_to=UseCaseInstanceResponse,
|
|
309
307
|
)
|
|
310
308
|
|
|
311
309
|
|
payi/types/__init__.py
CHANGED
|
@@ -31,10 +31,8 @@ from .bulk_ingest_response import BulkIngestResponse as BulkIngestResponse
|
|
|
31
31
|
from .category_list_params import CategoryListParams as CategoryListParams
|
|
32
32
|
from .limit_history_response import LimitHistoryResponse as LimitHistoryResponse
|
|
33
33
|
from .category_delete_response import CategoryDeleteResponse as CategoryDeleteResponse
|
|
34
|
-
from .use_case_create_response import UseCaseCreateResponse as UseCaseCreateResponse
|
|
35
|
-
from .use_case_delete_response import UseCaseDeleteResponse as UseCaseDeleteResponse
|
|
36
34
|
from .category_resource_response import CategoryResourceResponse as CategoryResourceResponse
|
|
37
|
-
from .
|
|
35
|
+
from .use_case_instance_response import UseCaseInstanceResponse as UseCaseInstanceResponse
|
|
38
36
|
from .category_list_resources_params import CategoryListResourcesParams as CategoryListResourcesParams
|
|
39
37
|
from .category_delete_resource_response import CategoryDeleteResourceResponse as CategoryDeleteResourceResponse
|
|
40
38
|
from .pay_i_common_models_api_router_header_info_param import (
|
|
@@ -27,10 +27,14 @@ class CategoryResourceResponse(BaseModel):
|
|
|
27
27
|
|
|
28
28
|
units: Dict[str, Units]
|
|
29
29
|
|
|
30
|
+
character_billing: Optional[bool] = None
|
|
31
|
+
|
|
30
32
|
cost_per_hour: Optional[float] = None
|
|
31
33
|
|
|
32
34
|
deprecated_timestamp: Optional[datetime] = None
|
|
33
35
|
|
|
36
|
+
large_context_threshold: Optional[int] = None
|
|
37
|
+
|
|
34
38
|
max_input_units: Optional[int] = None
|
|
35
39
|
|
|
36
40
|
max_output_units: Optional[int] = None
|
payi/types/cost_details.py
CHANGED
payi/types/ingest_event_param.py
CHANGED
|
@@ -22,22 +22,14 @@ class ProviderResponseFunctionCall(TypedDict, total=False):
|
|
|
22
22
|
class IngestEventParam(TypedDict, total=False):
|
|
23
23
|
category: Required[str]
|
|
24
24
|
|
|
25
|
-
resource: Required[str]
|
|
26
|
-
|
|
27
25
|
units: Required[Dict[str, IngestUnits]]
|
|
28
26
|
|
|
27
|
+
account_name: Optional[str]
|
|
28
|
+
|
|
29
29
|
end_to_end_latency_ms: Optional[int]
|
|
30
30
|
|
|
31
31
|
event_timestamp: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
|
|
32
32
|
|
|
33
|
-
experience_id: Optional[str]
|
|
34
|
-
|
|
35
|
-
experience_name: Optional[str]
|
|
36
|
-
|
|
37
|
-
experience_properties: Optional[Dict[str, str]]
|
|
38
|
-
|
|
39
|
-
experience_version: Optional[int]
|
|
40
|
-
|
|
41
33
|
http_status_code: Optional[int]
|
|
42
34
|
|
|
43
35
|
limit_ids: Optional[List[str]]
|
|
@@ -62,6 +54,8 @@ class IngestEventParam(TypedDict, total=False):
|
|
|
62
54
|
|
|
63
55
|
request_tags: Optional[List[str]]
|
|
64
56
|
|
|
57
|
+
resource: Optional[str]
|
|
58
|
+
|
|
65
59
|
time_to_first_completion_token_ms: Optional[int]
|
|
66
60
|
|
|
67
61
|
time_to_first_token_ms: Optional[int]
|
|
@@ -16,8 +16,6 @@ __all__ = ["IngestUnitsParams", "ProviderResponseFunctionCall"]
|
|
|
16
16
|
class IngestUnitsParams(TypedDict, total=False):
|
|
17
17
|
category: Required[str]
|
|
18
18
|
|
|
19
|
-
resource: Required[str]
|
|
20
|
-
|
|
21
19
|
units: Required[Dict[str, IngestUnits]]
|
|
22
20
|
|
|
23
21
|
end_to_end_latency_ms: Optional[int]
|
|
@@ -44,6 +42,8 @@ class IngestUnitsParams(TypedDict, total=False):
|
|
|
44
42
|
|
|
45
43
|
provider_uri: Optional[str]
|
|
46
44
|
|
|
45
|
+
resource: Optional[str]
|
|
46
|
+
|
|
47
47
|
time_to_first_completion_token_ms: Optional[int]
|
|
48
48
|
|
|
49
49
|
time_to_first_token_ms: Optional[int]
|
|
@@ -26,12 +26,12 @@ class Limits(BaseModel):
|
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
class XproxyResult(BaseModel):
|
|
29
|
+
account_name: Optional[str] = None
|
|
30
|
+
|
|
29
31
|
blocked_limit_ids: Optional[List[str]] = None
|
|
30
32
|
|
|
31
33
|
cost: Optional[Cost] = None
|
|
32
34
|
|
|
33
|
-
experience_id: Optional[str] = None
|
|
34
|
-
|
|
35
35
|
limits: Optional[Dict[str, Limits]] = None
|
|
36
36
|
|
|
37
37
|
request_id: Optional[str] = None
|
|
@@ -4,10 +4,10 @@ from typing import Optional
|
|
|
4
4
|
|
|
5
5
|
from .._models import BaseModel
|
|
6
6
|
|
|
7
|
-
__all__ = ["
|
|
7
|
+
__all__ = ["UseCaseInstanceResponse"]
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
class
|
|
10
|
+
class UseCaseInstanceResponse(BaseModel):
|
|
11
11
|
use_case_id: str
|
|
12
12
|
|
|
13
13
|
limit_id: Optional[str] = None
|
payi/types/use_cases/__init__.py
CHANGED
|
@@ -10,4 +10,3 @@ from .definition_list_params import DefinitionListParams as DefinitionListParams
|
|
|
10
10
|
from .property_update_params import PropertyUpdateParams as PropertyUpdateParams
|
|
11
11
|
from .definition_create_params import DefinitionCreateParams as DefinitionCreateParams
|
|
12
12
|
from .definition_update_params import DefinitionUpdateParams as DefinitionUpdateParams
|
|
13
|
-
from .property_create_response import PropertyCreateResponse as PropertyCreateResponse
|
|
@@ -10,8 +10,8 @@ __all__ = ["KpiCreateParams"]
|
|
|
10
10
|
class KpiCreateParams(TypedDict, total=False):
|
|
11
11
|
description: Required[str]
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
goal: Required[float]
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
kpi_type: Required[Literal["boolean", "number", "percentage", "likert5", "likert7", "likert10"]]
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
name: Required[str]
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
from typing import Union
|
|
5
6
|
from typing_extensions import Required, TypedDict
|
|
6
7
|
|
|
7
8
|
__all__ = ["KpiUpdateParams"]
|
|
@@ -10,4 +11,4 @@ __all__ = ["KpiUpdateParams"]
|
|
|
10
11
|
class KpiUpdateParams(TypedDict, total=False):
|
|
11
12
|
use_case_id: Required[str]
|
|
12
13
|
|
|
13
|
-
score: float
|
|
14
|
+
score: Union[bool, float, None]
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
payi/__init__.py,sha256=D0Hb0f0CuE6t648U7C0qOOKez56wyNcIndIYcNuamlU,2560
|
|
2
|
-
payi/_base_client.py,sha256=
|
|
2
|
+
payi/_base_client.py,sha256=bbDglAL7W_pbfvcDSMy07UIGWJj9FJddyTCcpKdYJ-4,67033
|
|
3
3
|
payi/_client.py,sha256=tKKTYVdI7BWHLNUzYDI9t1zqu2OQrDjm0Blm9lkqTUw,17199
|
|
4
4
|
payi/_compat.py,sha256=VWemUKbj6DDkQ-O4baSpHVLJafotzeXmCQGJugfVTIw,6580
|
|
5
5
|
payi/_constants.py,sha256=S14PFzyN9-I31wiV7SmIlL5Ga0MLHxdvegInGdXH7tM,462
|
|
6
6
|
payi/_exceptions.py,sha256=ItygKNrNXIVY0H6LsGVZvFuAHB3Vtm_VZXmWzCnpHy0,3216
|
|
7
|
-
payi/_files.py,sha256=
|
|
7
|
+
payi/_files.py,sha256=KnEzGi_O756MvKyJ4fOCW_u3JhOeWPQ4RsmDvqihDQU,3545
|
|
8
8
|
payi/_models.py,sha256=KvjsMfb88XZlFUKVoOxr8OyDj47MhoH2OKqWNEbBhk4,30010
|
|
9
9
|
payi/_qs.py,sha256=AOkSz4rHtK4YI3ZU_kzea-zpwBUgEY8WniGmTPyEimc,4846
|
|
10
10
|
payi/_resource.py,sha256=j2jIkTr8OIC8sU6-05nxSaCyj4MaFlbZrwlyg4_xJos,1088
|
|
11
11
|
payi/_response.py,sha256=rh9oJAvCKcPwQFm4iqH_iVrmK8bNx--YP_A2a4kN1OU,28776
|
|
12
12
|
payi/_streaming.py,sha256=Z_wIyo206T6Jqh2rolFg2VXZgX24PahLmpURp0-NssU,10092
|
|
13
13
|
payi/_types.py,sha256=7jE5MoQQFVoVxw5vVzvZ2Ao0kcjfNOGsBgyJfLBEnMo,6195
|
|
14
|
-
payi/_version.py,sha256=
|
|
14
|
+
payi/_version.py,sha256=AOL6_Y2uHGOJX-kZb-qGKKCHgBP2ikn9mz6ccxBjqxo,166
|
|
15
15
|
payi/pagination.py,sha256=k2356QGPOUSjRF2vHpwLBdF6P-2vnQzFfRIJQAHGQ7A,1258
|
|
16
16
|
payi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
17
|
payi/_utils/__init__.py,sha256=PNZ_QJuzZEgyYXqkO1HVhGkj5IU9bglVUcw7H-Knjzw,2062
|
|
@@ -32,17 +32,17 @@ payi/lib/OpenAIInstrumentor.py,sha256=_ULwIli11XP1yZK_pMGXuaSmHZ5pozuEt_v5DfhNuG
|
|
|
32
32
|
payi/lib/Stopwatch.py,sha256=7OJlxvr2Jyb6Zr1LYCYKczRB7rDVKkIR7gc4YoleNdE,764
|
|
33
33
|
payi/lib/VertexInstrumentor.py,sha256=OWuMPiW4LdLhj6DSAAy5qZiosVo8DSAuFWGxYpEucoE,7431
|
|
34
34
|
payi/lib/VertexRequest.py,sha256=edv14HR5QtKaf07gmOqzWdhoJGdWCos85uCZASwsGL4,11710
|
|
35
|
-
payi/lib/helpers.py,sha256=
|
|
36
|
-
payi/lib/instrument.py,sha256=
|
|
35
|
+
payi/lib/helpers.py,sha256=jcMyxsuWmyPymDCYmDbQAb6IgbkmkiiNUaxeEPkCKZs,4457
|
|
36
|
+
payi/lib/instrument.py,sha256=01AVcCT2RRaXlxsz7zd8pappUYpjlFdKovZ8AJanXfE,75349
|
|
37
37
|
payi/lib/version_helper.py,sha256=v0lC3kuaXn6PBDolE3mkmwJiA8Ot3z4RkVR7wlBuZCs,540
|
|
38
38
|
payi/resources/__init__.py,sha256=B2bn1ZfCf6TbHlzZvy5TpFPtALnFcBRPYVKQH3S5qfQ,2457
|
|
39
|
-
payi/resources/ingest.py,sha256=
|
|
39
|
+
payi/resources/ingest.py,sha256=7HeaAnIhPmAYdom8tAPPTa1WlbKL8pFCuQdZ2QSFuyE,23079
|
|
40
40
|
payi/resources/categories/__init__.py,sha256=WeotN_d-0Ri8ohsrNPbve7RyViD9_N0NA9DrV3WYg3w,1701
|
|
41
41
|
payi/resources/categories/categories.py,sha256=yYCkCxaYPWees9I9cx9CPy_H9wZK2X7jq8tRh-G__v8,20653
|
|
42
42
|
payi/resources/categories/fixed_cost_resources.py,sha256=tLJlZ06KDIOHpVF4iq8S9IPocGohbOYh9LO0cWGznUA,7824
|
|
43
43
|
payi/resources/categories/resources.py,sha256=nY5mKJPEy7-6J_UsyXZebNmUs6WK5ONx_qON9z6DwUg,19979
|
|
44
44
|
payi/resources/limits/__init__.py,sha256=URXh9vglDH-dqbVGk-XcrDa8H5Bg2pgFuVQQecgEtaA,976
|
|
45
|
-
payi/resources/limits/limits.py,sha256=
|
|
45
|
+
payi/resources/limits/limits.py,sha256=kyzyLrgjrK3qgMvSjzHAJGyFTNTFWUnAr7uw4bRpBp4,25196
|
|
46
46
|
payi/resources/limits/tags.py,sha256=gPW2ds6Zh7-BV7_SwtbRGcMMgj94NciGzcui6FRRQ-o,18964
|
|
47
47
|
payi/resources/requests/__init__.py,sha256=L86SkNRyb9oySva7oQu6rMwBRUnctb4grtDSRN3T9_g,1571
|
|
48
48
|
payi/resources/requests/requests.py,sha256=Mkyy-Iv7dZ-uKLMBm4eZdwHwm4ZKdF6O7W9QY53YcTo,4972
|
|
@@ -55,30 +55,30 @@ payi/resources/requests/response_id/properties.py,sha256=ei7Z64f1rr1IXJ0WNkZK4MI
|
|
|
55
55
|
payi/resources/requests/response_id/response_id.py,sha256=PR2bLNJdMlgt3qjLBtnpyXrydZVd8dFUvRLC3W5WcJk,4942
|
|
56
56
|
payi/resources/requests/response_id/result.py,sha256=TZadukcmGAVIA1VcCgPMu1fhOc6gJKO-GHsOJKc-rH8,6336
|
|
57
57
|
payi/resources/use_cases/__init__.py,sha256=ckXPaVoPQmGESfgQF_ySP_eGskI6T4bJjPKoEGyo2gI,2020
|
|
58
|
-
payi/resources/use_cases/kpis.py,sha256=
|
|
59
|
-
payi/resources/use_cases/properties.py,sha256=
|
|
60
|
-
payi/resources/use_cases/use_cases.py,sha256=
|
|
58
|
+
payi/resources/use_cases/kpis.py,sha256=d154_8Fdu0JcsVZKAbuQd6ZEqo4_RzemPnkUmOa15FE,11121
|
|
59
|
+
payi/resources/use_cases/properties.py,sha256=sCf0MM-VdxO6uGuyuSma6Ydjf-ghWKwqnS_35DQrxzo,6528
|
|
60
|
+
payi/resources/use_cases/use_cases.py,sha256=rTwgr7EL7UTsot61JsTLvs8hGykxFxjVflwZ99VjE_w,15582
|
|
61
61
|
payi/resources/use_cases/definitions/__init__.py,sha256=pImtiVUbgsm6PkMJ0NPkrhQj8kEi36db-LF5rJukmMY,2020
|
|
62
62
|
payi/resources/use_cases/definitions/definitions.py,sha256=aEnHvpULs0oRbDl_Fvr32Dr5Pd_ySX7kmtC5uiqcBKM,24542
|
|
63
|
-
payi/resources/use_cases/definitions/kpis.py,sha256=
|
|
63
|
+
payi/resources/use_cases/definitions/kpis.py,sha256=3c25hms6laX_9q3an47RcsBJUnS7lcoPpQKsSLbiWmg,22586
|
|
64
64
|
payi/resources/use_cases/definitions/limit_config.py,sha256=ojUg3Hhc5tGk5qE2Oxf9OlgcvvxY0A7HN3Q0uq1fsVo,10583
|
|
65
65
|
payi/resources/use_cases/definitions/version.py,sha256=I1mrP_OEyEytMaQJeb06SS5GCJ6JO9K58nVIVdOgZiY,6013
|
|
66
|
-
payi/types/__init__.py,sha256=
|
|
66
|
+
payi/types/__init__.py,sha256=16tyUhSSlJzmqKVog8WuMdJzRQn8U5oZ3u2hK-K9GoI,2459
|
|
67
67
|
payi/types/bulk_ingest_response.py,sha256=BN6UUzNqICkSzbT0ucu2swznLpErmEN_kgWORCb2rwE,1211
|
|
68
68
|
payi/types/category_delete_resource_response.py,sha256=PLz4wZA1XMpS9SUYB_j4hEw5EoZ0VVE9Ll-MQ26SAfc,339
|
|
69
69
|
payi/types/category_delete_response.py,sha256=exq8rNDGoq2-YN528V8osdcmuptJ-k63rmCvPMm6hLA,323
|
|
70
70
|
payi/types/category_list_params.py,sha256=hHe6LRxl8CGykRj4F4-eW_z5d5PxP3YzY0m7qtiM5jY,307
|
|
71
71
|
payi/types/category_list_resources_params.py,sha256=Od65gihJCHdJWti1jdjUMp5l0vOvZb1PR50v9IQ4Mkk,325
|
|
72
|
-
payi/types/category_resource_response.py,sha256=
|
|
72
|
+
payi/types/category_resource_response.py,sha256=izvwIS0w21PAmxIF5CcOZst1S3JZ9ghvDIbD-NLRT5I,853
|
|
73
73
|
payi/types/category_response.py,sha256=dlvHaKJlcGm936aduRIMxJXHapPGo4Rfs9ObIYkP4Yc,206
|
|
74
74
|
payi/types/cost_data.py,sha256=KXGLnqOKxS0q8yT9eRhdQHyGMSAcuukCHWcWZC1A6Fk,487
|
|
75
|
-
payi/types/cost_details.py,sha256=
|
|
75
|
+
payi/types/cost_details.py,sha256=3ldvnYILAG6Sz9wGWMs1SZvIfdGEbn5i4-CauWEXMPA,265
|
|
76
76
|
payi/types/default_response.py,sha256=o617LpRsCIZHCZxAc5nVI2JQ3HPGZo4gCDvSDkxkIJ8,270
|
|
77
77
|
payi/types/ingest_bulk_params.py,sha256=A-IRb39d2tmVzEQqrvhlF_3si-9ufHBKYLlvdXupAHU,362
|
|
78
|
-
payi/types/ingest_event_param.py,sha256=
|
|
78
|
+
payi/types/ingest_event_param.py,sha256=sPZX3Pdl4zCprCT_B4q3IrzMBrGind5AVy7VYUCOm4U,1925
|
|
79
79
|
payi/types/ingest_response.py,sha256=JwcZ6OL793uXTuDmZAzkzhGcdtDsSXfSy_ERjzc7MZY,378
|
|
80
|
-
payi/types/ingest_units_params.py,sha256=
|
|
81
|
-
payi/types/limit_create_params.py,sha256=
|
|
80
|
+
payi/types/ingest_units_params.py,sha256=UgOVXsSerkVYwbAgDZ5xFZ_p2DcZsESNPF7Kc5RIhDo,2526
|
|
81
|
+
payi/types/limit_create_params.py,sha256=cPUTDLtUqJxCv7xvoB3e3kefN6iZTvnjaw01Y5tHEIo,497
|
|
82
82
|
payi/types/limit_history_response.py,sha256=vJnVVa5BROfYHRPvpfymcOabjDhcJtFowQF-L-apNgw,770
|
|
83
83
|
payi/types/limit_list_params.py,sha256=OYlK0anDA5G71FfwrMDzhEX4S5AlASLRiR0tmyD9tTU,322
|
|
84
84
|
payi/types/limit_list_response.py,sha256=8UMtHrO38HqOkn8qAC9R90N902VVRZrZYp0C7fPEX1g,622
|
|
@@ -89,9 +89,7 @@ payi/types/pay_i_common_models_api_router_header_info_param.py,sha256=91djoPLmoa
|
|
|
89
89
|
payi/types/request_result.py,sha256=mD0akFmhrAqCFZwo-ampDuBH7cK5Y6GOmQm7vT-WIwE,261
|
|
90
90
|
payi/types/requests_data.py,sha256=coHpXgOIQv8oKaX354G-uYoJMzbJcjIW1oX1wuQppts,307
|
|
91
91
|
payi/types/total_cost_data.py,sha256=1xoiInVI0UaKup_8poAHNgcpK8gu09RQnMrdorQtFgQ,301
|
|
92
|
-
payi/types/
|
|
93
|
-
payi/types/use_case_delete_response.py,sha256=eHhHVEDtsWY48CAXmN6sdgbCEaeUWM4sB7pikDkWu9s,324
|
|
94
|
-
payi/types/use_case_retrieve_response.py,sha256=yYCTV0CLGUdQTM_yccsedUf8Ia7J6KGXGY88S-53OyA,328
|
|
92
|
+
payi/types/use_case_instance_response.py,sha256=khdcmoU1L8djNVYLu4rSmWkaceZmGwkE9eHLedN1ePU,328
|
|
95
93
|
payi/types/categories/__init__.py,sha256=mpdvOCRgkzQgIqgcb30nvunzZFqMrDOAoa_N0MJZouE,389
|
|
96
94
|
payi/types/categories/fixed_cost_resource_create_params.py,sha256=7aCIr-qIGTRkDtYwcnnFgt_iSOIrVbelw23rYYP1IgI,567
|
|
97
95
|
payi/types/categories/resource_create_params.py,sha256=HVzUWhvmUhVu9h70DmUrBPUcO-g2VUIc5cg0sxbG3fs,745
|
|
@@ -118,22 +116,21 @@ payi/types/shared/pay_i_common_models_budget_management_cost_details_base.py,sha
|
|
|
118
116
|
payi/types/shared/pay_i_common_models_budget_management_create_limit_base.py,sha256=FDFCOvxG7Dep7oELqQATc_YWrRZ-Uh9WOpL2ZKPDQ6Q,482
|
|
119
117
|
payi/types/shared/properties_response.py,sha256=HpFNtxl_OjoMCs24xPVZLKe3FwCVcNkcRs0LsQKLrHM,259
|
|
120
118
|
payi/types/shared/xproxy_error.py,sha256=I8dsEHZF_0dM-1YvZ6_mysRJuNlWJrQIHacs9yRaZCM,274
|
|
121
|
-
payi/types/shared/xproxy_result.py,sha256=
|
|
119
|
+
payi/types/shared/xproxy_result.py,sha256=Q9DfH8vfZ7NU0d9nUKDTFeLWorZ83oICbbdJsKgTsBM,1382
|
|
122
120
|
payi/types/shared_params/__init__.py,sha256=dRGuNTZWLagRlbQfl5tKc0JMEYNRVXUad5oyl7IFeIU,317
|
|
123
121
|
payi/types/shared_params/ingest_units.py,sha256=ueGIq14EQRGIDQlIHCCParrDxh1TZ_Hjfx2GP3_19yA,267
|
|
124
122
|
payi/types/shared_params/pay_i_common_models_budget_management_create_limit_base.py,sha256=8UXPHFrNDZfF5tgEeV0mIqevksNGEWayv2NJV5DY_Rg,497
|
|
125
|
-
payi/types/use_cases/__init__.py,sha256=
|
|
123
|
+
payi/types/use_cases/__init__.py,sha256=etITqrdbGF_cdY2CSF0xq1Be9LFdUeQtZXNg_uJEfeM,723
|
|
126
124
|
payi/types/use_cases/definition_create_params.py,sha256=8Z48UFbJq0nohT0rG64-3Js9nadWNDMoeVUTXn4PLp4,597
|
|
127
125
|
payi/types/use_cases/definition_list_params.py,sha256=8lVZQPafxHSAULib1RcjRJh82POL9zKKHMHn2r_l31I,335
|
|
128
126
|
payi/types/use_cases/definition_update_params.py,sha256=nRhHHVUvEFYr_dtAESZcyxZNU7qpKLF7VajgNZ9FIx8,353
|
|
129
127
|
payi/types/use_cases/kpi_list_params.py,sha256=lx8rGm1Ri9Qn7EsIhwb07-HLHbV1BWc904sJkmPhodI,316
|
|
130
128
|
payi/types/use_cases/kpi_list_response.py,sha256=6REE5-V5j2dxAOX6ShDpXTGvYAT6xIl4X1WBAx0apSY,561
|
|
131
|
-
payi/types/use_cases/kpi_update_params.py,sha256=
|
|
132
|
-
payi/types/use_cases/property_create_response.py,sha256=4NjhkvCHwX9uh0370NN_J06lrW8VlHmtVkuMdR5Xbkc,327
|
|
129
|
+
payi/types/use_cases/kpi_update_params.py,sha256=TZvwDtS5VtngTnAR0bPPVoy8UD3YxjCVl5CEthPoYqc,346
|
|
133
130
|
payi/types/use_cases/property_update_params.py,sha256=Um7m9FvIFJXkqIBH3ZMqMLSRnZZkNqA9AUHL8S3Pmo8,328
|
|
134
131
|
payi/types/use_cases/use_case_definition.py,sha256=R2DMV9t1EZ4pStQhZSul8SFCyfqqQuAUoevlkFOg2Mc,579
|
|
135
132
|
payi/types/use_cases/definitions/__init__.py,sha256=xro0oPNhbIPOYx-6fvAINvaHL0kaCUMbALzrZmLeuwA,766
|
|
136
|
-
payi/types/use_cases/definitions/kpi_create_params.py,sha256=
|
|
133
|
+
payi/types/use_cases/definitions/kpi_create_params.py,sha256=09jkxFxXJzguEJ3MxCwaa8X5_WcsUCjnWk3al6OJ_vM,447
|
|
137
134
|
payi/types/use_cases/definitions/kpi_create_response.py,sha256=ykszUJzVkINzHpVUEJCB7rzVKGZN5P3pb9DeHSus2TU,459
|
|
138
135
|
payi/types/use_cases/definitions/kpi_delete_response.py,sha256=Oy5rTPavC0rwHyEZKp-XyD_WDWZJkHlT-9-KkDLpjAI,459
|
|
139
136
|
payi/types/use_cases/definitions/kpi_list_params.py,sha256=lx8rGm1Ri9Qn7EsIhwb07-HLHbV1BWc904sJkmPhodI,316
|
|
@@ -142,7 +139,7 @@ payi/types/use_cases/definitions/kpi_retrieve_response.py,sha256=uQXliSvS3k-yDYw
|
|
|
142
139
|
payi/types/use_cases/definitions/kpi_update_params.py,sha256=jbawdWAdMnsTWVH0qfQGb8W7_TXe3lq4zjSRu44d8p8,373
|
|
143
140
|
payi/types/use_cases/definitions/kpi_update_response.py,sha256=zLyEoT0S8d7XHsnXZYT8tM7yDw0Aze0Mk-_Z6QeMtc8,459
|
|
144
141
|
payi/types/use_cases/definitions/limit_config_create_params.py,sha256=pzQza_16N3z8cFNEKr6gPbFvuGFrwNuGxAYb--Kbo2M,449
|
|
145
|
-
payi-0.1.
|
|
146
|
-
payi-0.1.
|
|
147
|
-
payi-0.1.
|
|
148
|
-
payi-0.1.
|
|
142
|
+
payi-0.1.0a108.dist-info/METADATA,sha256=Io5cPg1gZrt2k-FbFQ7RshuXv6UL4XJLwk7Pd5KmB4s,16290
|
|
143
|
+
payi-0.1.0a108.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
|
144
|
+
payi-0.1.0a108.dist-info/licenses/LICENSE,sha256=CQt03aM-P4a3Yg5qBg3JSLVoQS3smMyvx7tYg_6V7Gk,11334
|
|
145
|
+
payi-0.1.0a108.dist-info/RECORD,,
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
-
|
|
3
|
-
from typing import Optional
|
|
4
|
-
|
|
5
|
-
from .._models import BaseModel
|
|
6
|
-
|
|
7
|
-
__all__ = ["UseCaseDeleteResponse"]
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class UseCaseDeleteResponse(BaseModel):
|
|
11
|
-
use_case_id: str
|
|
12
|
-
|
|
13
|
-
limit_id: Optional[str] = None
|
|
14
|
-
|
|
15
|
-
type_version: Optional[int] = None
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
-
|
|
3
|
-
from typing import Optional
|
|
4
|
-
|
|
5
|
-
from .._models import BaseModel
|
|
6
|
-
|
|
7
|
-
__all__ = ["UseCaseRetrieveResponse"]
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class UseCaseRetrieveResponse(BaseModel):
|
|
11
|
-
use_case_id: str
|
|
12
|
-
|
|
13
|
-
limit_id: Optional[str] = None
|
|
14
|
-
|
|
15
|
-
type_version: Optional[int] = None
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
-
|
|
3
|
-
from typing import Optional
|
|
4
|
-
|
|
5
|
-
from ..._models import BaseModel
|
|
6
|
-
|
|
7
|
-
__all__ = ["PropertyCreateResponse"]
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class PropertyCreateResponse(BaseModel):
|
|
11
|
-
use_case_id: str
|
|
12
|
-
|
|
13
|
-
limit_id: Optional[str] = None
|
|
14
|
-
|
|
15
|
-
type_version: Optional[int] = None
|
|
File without changes
|
|
File without changes
|