orq-ai-sdk 4.2.0rc28__py3-none-any.whl → 4.2.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. orq_ai_sdk/_hooks/globalhook.py +0 -1
  2. orq_ai_sdk/_version.py +3 -3
  3. orq_ai_sdk/audio.py +30 -0
  4. orq_ai_sdk/basesdk.py +20 -6
  5. orq_ai_sdk/chat.py +22 -0
  6. orq_ai_sdk/completions.py +332 -0
  7. orq_ai_sdk/contacts.py +43 -855
  8. orq_ai_sdk/deployments.py +61 -0
  9. orq_ai_sdk/edits.py +258 -0
  10. orq_ai_sdk/embeddings.py +238 -0
  11. orq_ai_sdk/generations.py +272 -0
  12. orq_ai_sdk/identities.py +1037 -0
  13. orq_ai_sdk/images.py +28 -0
  14. orq_ai_sdk/models/__init__.py +5341 -737
  15. orq_ai_sdk/models/actionreviewedstreamingevent.py +18 -1
  16. orq_ai_sdk/models/actionreviewrequestedstreamingevent.py +44 -1
  17. orq_ai_sdk/models/agenterroredstreamingevent.py +18 -1
  18. orq_ai_sdk/models/agentinactivestreamingevent.py +168 -70
  19. orq_ai_sdk/models/agentmessagecreatedstreamingevent.py +18 -2
  20. orq_ai_sdk/models/agentresponsemessage.py +18 -2
  21. orq_ai_sdk/models/agentstartedstreamingevent.py +127 -2
  22. orq_ai_sdk/models/agentthoughtstreamingevent.py +178 -211
  23. orq_ai_sdk/models/conversationresponse.py +31 -20
  24. orq_ai_sdk/models/conversationwithmessagesresponse.py +31 -20
  25. orq_ai_sdk/models/createagentrequestop.py +1922 -384
  26. orq_ai_sdk/models/createagentresponse.py +147 -91
  27. orq_ai_sdk/models/createagentresponserequestop.py +111 -2
  28. orq_ai_sdk/models/createchatcompletionop.py +1375 -861
  29. orq_ai_sdk/models/createchunkop.py +46 -19
  30. orq_ai_sdk/models/createcompletionop.py +1890 -0
  31. orq_ai_sdk/models/createcontactop.py +45 -56
  32. orq_ai_sdk/models/createconversationop.py +61 -39
  33. orq_ai_sdk/models/createconversationresponseop.py +68 -4
  34. orq_ai_sdk/models/createdatasetitemop.py +424 -80
  35. orq_ai_sdk/models/createdatasetop.py +19 -2
  36. orq_ai_sdk/models/createdatasourceop.py +92 -26
  37. orq_ai_sdk/models/createembeddingop.py +384 -0
  38. orq_ai_sdk/models/createevalop.py +552 -24
  39. orq_ai_sdk/models/createidentityop.py +176 -0
  40. orq_ai_sdk/models/createimageeditop.py +504 -0
  41. orq_ai_sdk/models/createimageop.py +208 -117
  42. orq_ai_sdk/models/createimagevariationop.py +486 -0
  43. orq_ai_sdk/models/createknowledgeop.py +186 -121
  44. orq_ai_sdk/models/creatememorydocumentop.py +50 -1
  45. orq_ai_sdk/models/creatememoryop.py +34 -21
  46. orq_ai_sdk/models/creatememorystoreop.py +34 -1
  47. orq_ai_sdk/models/createmoderationop.py +521 -0
  48. orq_ai_sdk/models/createpromptop.py +2748 -1252
  49. orq_ai_sdk/models/creatererankop.py +416 -0
  50. orq_ai_sdk/models/createresponseop.py +2567 -0
  51. orq_ai_sdk/models/createspeechop.py +316 -0
  52. orq_ai_sdk/models/createtoolop.py +537 -12
  53. orq_ai_sdk/models/createtranscriptionop.py +562 -0
  54. orq_ai_sdk/models/createtranslationop.py +540 -0
  55. orq_ai_sdk/models/datapart.py +18 -1
  56. orq_ai_sdk/models/deletechunksop.py +34 -1
  57. orq_ai_sdk/models/{deletecontactop.py → deleteidentityop.py} +9 -9
  58. orq_ai_sdk/models/deletepromptop.py +26 -0
  59. orq_ai_sdk/models/deploymentcreatemetricop.py +362 -76
  60. orq_ai_sdk/models/deploymentgetconfigop.py +635 -194
  61. orq_ai_sdk/models/deploymentinvokeop.py +168 -173
  62. orq_ai_sdk/models/deploymentsop.py +195 -58
  63. orq_ai_sdk/models/deploymentstreamop.py +652 -304
  64. orq_ai_sdk/models/errorpart.py +18 -1
  65. orq_ai_sdk/models/filecontentpartschema.py +18 -1
  66. orq_ai_sdk/models/filegetop.py +19 -2
  67. orq_ai_sdk/models/filelistop.py +35 -2
  68. orq_ai_sdk/models/filepart.py +50 -1
  69. orq_ai_sdk/models/fileuploadop.py +51 -2
  70. orq_ai_sdk/models/generateconversationnameop.py +31 -20
  71. orq_ai_sdk/models/get_v2_evaluators_id_versionsop.py +34 -1
  72. orq_ai_sdk/models/get_v2_tools_tool_id_versions_version_id_op.py +18 -1
  73. orq_ai_sdk/models/get_v2_tools_tool_id_versionsop.py +34 -1
  74. orq_ai_sdk/models/getallmemoriesop.py +34 -21
  75. orq_ai_sdk/models/getallmemorydocumentsop.py +42 -1
  76. orq_ai_sdk/models/getallmemorystoresop.py +34 -1
  77. orq_ai_sdk/models/getallpromptsop.py +1690 -230
  78. orq_ai_sdk/models/getalltoolsop.py +325 -8
  79. orq_ai_sdk/models/getchunkscountop.py +34 -1
  80. orq_ai_sdk/models/getevalsop.py +395 -43
  81. orq_ai_sdk/models/getonechunkop.py +14 -19
  82. orq_ai_sdk/models/getoneknowledgeop.py +116 -96
  83. orq_ai_sdk/models/getonepromptop.py +1673 -230
  84. orq_ai_sdk/models/getpromptversionop.py +1670 -216
  85. orq_ai_sdk/models/imagecontentpartschema.py +50 -1
  86. orq_ai_sdk/models/internal/globals.py +18 -1
  87. orq_ai_sdk/models/invokeagentop.py +140 -2
  88. orq_ai_sdk/models/invokedeploymentrequest.py +418 -80
  89. orq_ai_sdk/models/invokeevalop.py +160 -131
  90. orq_ai_sdk/models/listagentsop.py +793 -166
  91. orq_ai_sdk/models/listchunksop.py +32 -19
  92. orq_ai_sdk/models/listchunkspaginatedop.py +46 -19
  93. orq_ai_sdk/models/listconversationsop.py +18 -1
  94. orq_ai_sdk/models/listdatasetdatapointsop.py +252 -42
  95. orq_ai_sdk/models/listdatasetsop.py +35 -2
  96. orq_ai_sdk/models/listdatasourcesop.py +35 -26
  97. orq_ai_sdk/models/{listcontactsop.py → listidentitiesop.py} +89 -79
  98. orq_ai_sdk/models/listknowledgebasesop.py +132 -96
  99. orq_ai_sdk/models/listmodelsop.py +1 -0
  100. orq_ai_sdk/models/listpromptversionsop.py +1684 -216
  101. orq_ai_sdk/models/parseop.py +161 -17
  102. orq_ai_sdk/models/partdoneevent.py +19 -2
  103. orq_ai_sdk/models/post_v2_router_ocrop.py +408 -0
  104. orq_ai_sdk/models/publiccontact.py +27 -4
  105. orq_ai_sdk/models/publicidentity.py +62 -0
  106. orq_ai_sdk/models/reasoningpart.py +19 -2
  107. orq_ai_sdk/models/refusalpartschema.py +18 -1
  108. orq_ai_sdk/models/remoteconfigsgetconfigop.py +34 -1
  109. orq_ai_sdk/models/responsedoneevent.py +114 -84
  110. orq_ai_sdk/models/responsestartedevent.py +18 -1
  111. orq_ai_sdk/models/retrieveagentrequestop.py +787 -166
  112. orq_ai_sdk/models/retrievedatapointop.py +236 -42
  113. orq_ai_sdk/models/retrievedatasetop.py +19 -2
  114. orq_ai_sdk/models/retrievedatasourceop.py +17 -26
  115. orq_ai_sdk/models/{retrievecontactop.py → retrieveidentityop.py} +38 -41
  116. orq_ai_sdk/models/retrievememorydocumentop.py +18 -1
  117. orq_ai_sdk/models/retrievememoryop.py +18 -21
  118. orq_ai_sdk/models/retrievememorystoreop.py +18 -1
  119. orq_ai_sdk/models/retrievetoolop.py +309 -8
  120. orq_ai_sdk/models/runagentop.py +1451 -197
  121. orq_ai_sdk/models/searchknowledgeop.py +108 -1
  122. orq_ai_sdk/models/security.py +18 -1
  123. orq_ai_sdk/models/streamagentop.py +93 -2
  124. orq_ai_sdk/models/streamrunagentop.py +1428 -195
  125. orq_ai_sdk/models/textcontentpartschema.py +34 -1
  126. orq_ai_sdk/models/thinkingconfigenabledschema.py +18 -1
  127. orq_ai_sdk/models/toolcallpart.py +18 -1
  128. orq_ai_sdk/models/tooldoneevent.py +18 -1
  129. orq_ai_sdk/models/toolexecutionfailedstreamingevent.py +50 -1
  130. orq_ai_sdk/models/toolexecutionfinishedstreamingevent.py +34 -1
  131. orq_ai_sdk/models/toolexecutionstartedstreamingevent.py +34 -1
  132. orq_ai_sdk/models/toolresultpart.py +18 -1
  133. orq_ai_sdk/models/toolreviewrequestedevent.py +18 -1
  134. orq_ai_sdk/models/toolstartedevent.py +18 -1
  135. orq_ai_sdk/models/updateagentop.py +1951 -404
  136. orq_ai_sdk/models/updatechunkop.py +46 -19
  137. orq_ai_sdk/models/updateconversationop.py +61 -39
  138. orq_ai_sdk/models/updatedatapointop.py +424 -80
  139. orq_ai_sdk/models/updatedatasetop.py +51 -2
  140. orq_ai_sdk/models/updatedatasourceop.py +17 -26
  141. orq_ai_sdk/models/updateevalop.py +577 -16
  142. orq_ai_sdk/models/{updatecontactop.py → updateidentityop.py} +78 -68
  143. orq_ai_sdk/models/updateknowledgeop.py +234 -190
  144. orq_ai_sdk/models/updatememorydocumentop.py +50 -1
  145. orq_ai_sdk/models/updatememoryop.py +50 -21
  146. orq_ai_sdk/models/updatememorystoreop.py +66 -1
  147. orq_ai_sdk/models/updatepromptop.py +2844 -1450
  148. orq_ai_sdk/models/updatetoolop.py +592 -9
  149. orq_ai_sdk/models/usermessagerequest.py +18 -2
  150. orq_ai_sdk/moderations.py +218 -0
  151. orq_ai_sdk/orq_completions.py +660 -0
  152. orq_ai_sdk/orq_responses.py +398 -0
  153. orq_ai_sdk/prompts.py +28 -36
  154. orq_ai_sdk/rerank.py +232 -0
  155. orq_ai_sdk/router.py +89 -641
  156. orq_ai_sdk/sdk.py +3 -0
  157. orq_ai_sdk/speech.py +251 -0
  158. orq_ai_sdk/transcriptions.py +326 -0
  159. orq_ai_sdk/translations.py +298 -0
  160. orq_ai_sdk/utils/__init__.py +13 -1
  161. orq_ai_sdk/variations.py +254 -0
  162. orq_ai_sdk-4.2.6.dist-info/METADATA +888 -0
  163. orq_ai_sdk-4.2.6.dist-info/RECORD +263 -0
  164. {orq_ai_sdk-4.2.0rc28.dist-info → orq_ai_sdk-4.2.6.dist-info}/WHEEL +2 -1
  165. orq_ai_sdk-4.2.6.dist-info/top_level.txt +1 -0
  166. orq_ai_sdk-4.2.0rc28.dist-info/METADATA +0 -867
  167. orq_ai_sdk-4.2.0rc28.dist-info/RECORD +0 -233
@@ -0,0 +1,1037 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from .basesdk import BaseSDK
4
+ from orq_ai_sdk import models, utils
5
+ from orq_ai_sdk._hooks import HookContext
6
+ from orq_ai_sdk.models import (
7
+ createidentityop as models_createidentityop,
8
+ listidentitiesop as models_listidentitiesop,
9
+ )
10
+ from orq_ai_sdk.types import BaseModel, OptionalNullable, UNSET
11
+ from orq_ai_sdk.utils import get_security_from_env
12
+ from orq_ai_sdk.utils.unmarshal_json_response import unmarshal_json_response
13
+ from typing import Any, Dict, List, Mapping, Optional, Union, cast
14
+
15
+
16
+ class Identities(BaseSDK):
17
+ def list(
18
+ self,
19
+ *,
20
+ limit: Optional[float] = 10,
21
+ starting_after: Optional[str] = None,
22
+ ending_before: Optional[str] = None,
23
+ search: Optional[str] = None,
24
+ filter_by: Optional[
25
+ Union[
26
+ models_listidentitiesop.QueryParamFilterBy,
27
+ models_listidentitiesop.QueryParamFilterByTypedDict,
28
+ ]
29
+ ] = None,
30
+ include_metrics: OptionalNullable[bool] = False,
31
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
32
+ server_url: Optional[str] = None,
33
+ timeout_ms: Optional[int] = None,
34
+ http_headers: Optional[Mapping[str, str]] = None,
35
+ ) -> models.ListIdentitiesResponseBody:
36
+ r"""List identities
37
+
38
+ Retrieves a paginated list of identities in your workspace. Use pagination parameters to navigate through large identity lists efficiently.
39
+
40
+ :param limit: A limit on the number of objects to be returned. Limit can range between 1 and 50, and the default is 10
41
+ :param starting_after: A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `01JJ1HDHN79XAS7A01WB3HYSDB`, your subsequent call can include `after=01JJ1HDHN79XAS7A01WB3HYSDB` in order to fetch the next page of the list.
42
+ :param ending_before: A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `01JJ1HDHN79XAS7A01WB3HYSDB`, your subsequent call can include `before=01JJ1HDHN79XAS7A01WB3HYSDB` in order to fetch the previous page of the list.
43
+ :param search: Search identities by display name or email address. Minimum 2 characters required.
44
+ :param filter_by: Filter identities by tags. Can be provided as JSON object {\"tags\": [\"premium\", \"beta-user\"]} or as query format \"tags=premium,beta-user\"
45
+ :param include_metrics: Include usage metrics of the last 30 days for each identity.
46
+ :param retries: Override the default retry configuration for this method
47
+ :param server_url: Override the default server URL for this method
48
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
49
+ :param http_headers: Additional headers to set or replace on requests.
50
+ """
51
+ base_url = None
52
+ url_variables = None
53
+ if timeout_ms is None:
54
+ timeout_ms = self.sdk_configuration.timeout_ms
55
+
56
+ if timeout_ms is None:
57
+ timeout_ms = 600000
58
+
59
+ if server_url is not None:
60
+ base_url = server_url
61
+ else:
62
+ base_url = self._get_url(base_url, url_variables)
63
+
64
+ request = models.ListIdentitiesRequest(
65
+ limit=limit,
66
+ starting_after=starting_after,
67
+ ending_before=ending_before,
68
+ search=search,
69
+ filter_by=utils.get_pydantic_model(
70
+ filter_by, Optional[models.QueryParamFilterBy]
71
+ ),
72
+ include_metrics=include_metrics,
73
+ )
74
+
75
+ req = self._build_request(
76
+ method="GET",
77
+ path="/v2/identities",
78
+ base_url=base_url,
79
+ url_variables=url_variables,
80
+ request=request,
81
+ request_body_required=False,
82
+ request_has_path_params=False,
83
+ request_has_query_params=True,
84
+ user_agent_header="user-agent",
85
+ accept_header_value="application/json",
86
+ http_headers=http_headers,
87
+ security=self.sdk_configuration.security,
88
+ allow_empty_value=None,
89
+ timeout_ms=timeout_ms,
90
+ )
91
+
92
+ if retries == UNSET:
93
+ if self.sdk_configuration.retry_config is not UNSET:
94
+ retries = self.sdk_configuration.retry_config
95
+
96
+ retry_config = None
97
+ if isinstance(retries, utils.RetryConfig):
98
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
99
+
100
+ http_res = self.do_request(
101
+ hook_ctx=HookContext(
102
+ config=self.sdk_configuration,
103
+ base_url=base_url or "",
104
+ operation_id="ListIdentities",
105
+ oauth2_scopes=None,
106
+ security_source=get_security_from_env(
107
+ self.sdk_configuration.security, models.Security
108
+ ),
109
+ ),
110
+ request=req,
111
+ error_status_codes=["4XX", "5XX"],
112
+ retry_config=retry_config,
113
+ )
114
+
115
+ if utils.match_response(http_res, "200", "application/json"):
116
+ return unmarshal_json_response(models.ListIdentitiesResponseBody, http_res)
117
+ if utils.match_response(http_res, "4XX", "*"):
118
+ http_res_text = utils.stream_to_text(http_res)
119
+ raise models.APIError("API error occurred", http_res, http_res_text)
120
+ if utils.match_response(http_res, "5XX", "*"):
121
+ http_res_text = utils.stream_to_text(http_res)
122
+ raise models.APIError("API error occurred", http_res, http_res_text)
123
+
124
+ raise models.APIError("Unexpected response received", http_res)
125
+
126
+ async def list_async(
127
+ self,
128
+ *,
129
+ limit: Optional[float] = 10,
130
+ starting_after: Optional[str] = None,
131
+ ending_before: Optional[str] = None,
132
+ search: Optional[str] = None,
133
+ filter_by: Optional[
134
+ Union[
135
+ models_listidentitiesop.QueryParamFilterBy,
136
+ models_listidentitiesop.QueryParamFilterByTypedDict,
137
+ ]
138
+ ] = None,
139
+ include_metrics: OptionalNullable[bool] = False,
140
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
141
+ server_url: Optional[str] = None,
142
+ timeout_ms: Optional[int] = None,
143
+ http_headers: Optional[Mapping[str, str]] = None,
144
+ ) -> models.ListIdentitiesResponseBody:
145
+ r"""List identities
146
+
147
+ Retrieves a paginated list of identities in your workspace. Use pagination parameters to navigate through large identity lists efficiently.
148
+
149
+ :param limit: A limit on the number of objects to be returned. Limit can range between 1 and 50, and the default is 10
150
+ :param starting_after: A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `01JJ1HDHN79XAS7A01WB3HYSDB`, your subsequent call can include `after=01JJ1HDHN79XAS7A01WB3HYSDB` in order to fetch the next page of the list.
151
+ :param ending_before: A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `01JJ1HDHN79XAS7A01WB3HYSDB`, your subsequent call can include `before=01JJ1HDHN79XAS7A01WB3HYSDB` in order to fetch the previous page of the list.
152
+ :param search: Search identities by display name or email address. Minimum 2 characters required.
153
+ :param filter_by: Filter identities by tags. Can be provided as JSON object {\"tags\": [\"premium\", \"beta-user\"]} or as query format \"tags=premium,beta-user\"
154
+ :param include_metrics: Include usage metrics of the last 30 days for each identity.
155
+ :param retries: Override the default retry configuration for this method
156
+ :param server_url: Override the default server URL for this method
157
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
158
+ :param http_headers: Additional headers to set or replace on requests.
159
+ """
160
+ base_url = None
161
+ url_variables = None
162
+ if timeout_ms is None:
163
+ timeout_ms = self.sdk_configuration.timeout_ms
164
+
165
+ if timeout_ms is None:
166
+ timeout_ms = 600000
167
+
168
+ if server_url is not None:
169
+ base_url = server_url
170
+ else:
171
+ base_url = self._get_url(base_url, url_variables)
172
+
173
+ request = models.ListIdentitiesRequest(
174
+ limit=limit,
175
+ starting_after=starting_after,
176
+ ending_before=ending_before,
177
+ search=search,
178
+ filter_by=utils.get_pydantic_model(
179
+ filter_by, Optional[models.QueryParamFilterBy]
180
+ ),
181
+ include_metrics=include_metrics,
182
+ )
183
+
184
+ req = self._build_request_async(
185
+ method="GET",
186
+ path="/v2/identities",
187
+ base_url=base_url,
188
+ url_variables=url_variables,
189
+ request=request,
190
+ request_body_required=False,
191
+ request_has_path_params=False,
192
+ request_has_query_params=True,
193
+ user_agent_header="user-agent",
194
+ accept_header_value="application/json",
195
+ http_headers=http_headers,
196
+ security=self.sdk_configuration.security,
197
+ allow_empty_value=None,
198
+ timeout_ms=timeout_ms,
199
+ )
200
+
201
+ if retries == UNSET:
202
+ if self.sdk_configuration.retry_config is not UNSET:
203
+ retries = self.sdk_configuration.retry_config
204
+
205
+ retry_config = None
206
+ if isinstance(retries, utils.RetryConfig):
207
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
208
+
209
+ http_res = await self.do_request_async(
210
+ hook_ctx=HookContext(
211
+ config=self.sdk_configuration,
212
+ base_url=base_url or "",
213
+ operation_id="ListIdentities",
214
+ oauth2_scopes=None,
215
+ security_source=get_security_from_env(
216
+ self.sdk_configuration.security, models.Security
217
+ ),
218
+ ),
219
+ request=req,
220
+ error_status_codes=["4XX", "5XX"],
221
+ retry_config=retry_config,
222
+ )
223
+
224
+ if utils.match_response(http_res, "200", "application/json"):
225
+ return unmarshal_json_response(models.ListIdentitiesResponseBody, http_res)
226
+ if utils.match_response(http_res, "4XX", "*"):
227
+ http_res_text = await utils.stream_to_text_async(http_res)
228
+ raise models.APIError("API error occurred", http_res, http_res_text)
229
+ if utils.match_response(http_res, "5XX", "*"):
230
+ http_res_text = await utils.stream_to_text_async(http_res)
231
+ raise models.APIError("API error occurred", http_res, http_res_text)
232
+
233
+ raise models.APIError("Unexpected response received", http_res)
234
+
235
+ def create(
236
+ self,
237
+ *,
238
+ request: Optional[
239
+ Union[
240
+ models_createidentityop.CreateIdentityRequestBody,
241
+ models_createidentityop.CreateIdentityRequestBodyTypedDict,
242
+ ]
243
+ ] = None,
244
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
245
+ server_url: Optional[str] = None,
246
+ timeout_ms: Optional[int] = None,
247
+ http_headers: Optional[Mapping[str, str]] = None,
248
+ ) -> models.CreateIdentityResponseBody:
249
+ r"""Create an identity
250
+
251
+ Creates a new identity with a unique external_id. If an identity with the same external_id already exists, the operation will fail. Use this endpoint to add users from your system to orq.ai for tracking their usage and engagement.
252
+
253
+ :param request: The request object to send.
254
+ :param retries: Override the default retry configuration for this method
255
+ :param server_url: Override the default server URL for this method
256
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
257
+ :param http_headers: Additional headers to set or replace on requests.
258
+ """
259
+ base_url = None
260
+ url_variables = None
261
+ if timeout_ms is None:
262
+ timeout_ms = self.sdk_configuration.timeout_ms
263
+
264
+ if timeout_ms is None:
265
+ timeout_ms = 600000
266
+
267
+ if server_url is not None:
268
+ base_url = server_url
269
+ else:
270
+ base_url = self._get_url(base_url, url_variables)
271
+
272
+ if not isinstance(request, BaseModel):
273
+ request = utils.unmarshal(
274
+ request, Optional[models.CreateIdentityRequestBody]
275
+ )
276
+ request = cast(Optional[models.CreateIdentityRequestBody], request)
277
+
278
+ req = self._build_request(
279
+ method="POST",
280
+ path="/v2/identities",
281
+ base_url=base_url,
282
+ url_variables=url_variables,
283
+ request=request,
284
+ request_body_required=False,
285
+ request_has_path_params=False,
286
+ request_has_query_params=True,
287
+ user_agent_header="user-agent",
288
+ accept_header_value="application/json",
289
+ http_headers=http_headers,
290
+ security=self.sdk_configuration.security,
291
+ get_serialized_body=lambda: utils.serialize_request_body(
292
+ request, False, True, "json", Optional[models.CreateIdentityRequestBody]
293
+ ),
294
+ allow_empty_value=None,
295
+ timeout_ms=timeout_ms,
296
+ )
297
+
298
+ if retries == UNSET:
299
+ if self.sdk_configuration.retry_config is not UNSET:
300
+ retries = self.sdk_configuration.retry_config
301
+
302
+ retry_config = None
303
+ if isinstance(retries, utils.RetryConfig):
304
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
305
+
306
+ http_res = self.do_request(
307
+ hook_ctx=HookContext(
308
+ config=self.sdk_configuration,
309
+ base_url=base_url or "",
310
+ operation_id="CreateIdentity",
311
+ oauth2_scopes=None,
312
+ security_source=get_security_from_env(
313
+ self.sdk_configuration.security, models.Security
314
+ ),
315
+ ),
316
+ request=req,
317
+ error_status_codes=["4XX", "5XX"],
318
+ retry_config=retry_config,
319
+ )
320
+
321
+ if utils.match_response(http_res, "201", "application/json"):
322
+ return unmarshal_json_response(models.CreateIdentityResponseBody, http_res)
323
+ if utils.match_response(http_res, "4XX", "*"):
324
+ http_res_text = utils.stream_to_text(http_res)
325
+ raise models.APIError("API error occurred", http_res, http_res_text)
326
+ if utils.match_response(http_res, "5XX", "*"):
327
+ http_res_text = utils.stream_to_text(http_res)
328
+ raise models.APIError("API error occurred", http_res, http_res_text)
329
+
330
+ raise models.APIError("Unexpected response received", http_res)
331
+
332
+ async def create_async(
333
+ self,
334
+ *,
335
+ request: Optional[
336
+ Union[
337
+ models_createidentityop.CreateIdentityRequestBody,
338
+ models_createidentityop.CreateIdentityRequestBodyTypedDict,
339
+ ]
340
+ ] = None,
341
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
342
+ server_url: Optional[str] = None,
343
+ timeout_ms: Optional[int] = None,
344
+ http_headers: Optional[Mapping[str, str]] = None,
345
+ ) -> models.CreateIdentityResponseBody:
346
+ r"""Create an identity
347
+
348
+ Creates a new identity with a unique external_id. If an identity with the same external_id already exists, the operation will fail. Use this endpoint to add users from your system to orq.ai for tracking their usage and engagement.
349
+
350
+ :param request: The request object to send.
351
+ :param retries: Override the default retry configuration for this method
352
+ :param server_url: Override the default server URL for this method
353
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
354
+ :param http_headers: Additional headers to set or replace on requests.
355
+ """
356
+ base_url = None
357
+ url_variables = None
358
+ if timeout_ms is None:
359
+ timeout_ms = self.sdk_configuration.timeout_ms
360
+
361
+ if timeout_ms is None:
362
+ timeout_ms = 600000
363
+
364
+ if server_url is not None:
365
+ base_url = server_url
366
+ else:
367
+ base_url = self._get_url(base_url, url_variables)
368
+
369
+ if not isinstance(request, BaseModel):
370
+ request = utils.unmarshal(
371
+ request, Optional[models.CreateIdentityRequestBody]
372
+ )
373
+ request = cast(Optional[models.CreateIdentityRequestBody], request)
374
+
375
+ req = self._build_request_async(
376
+ method="POST",
377
+ path="/v2/identities",
378
+ base_url=base_url,
379
+ url_variables=url_variables,
380
+ request=request,
381
+ request_body_required=False,
382
+ request_has_path_params=False,
383
+ request_has_query_params=True,
384
+ user_agent_header="user-agent",
385
+ accept_header_value="application/json",
386
+ http_headers=http_headers,
387
+ security=self.sdk_configuration.security,
388
+ get_serialized_body=lambda: utils.serialize_request_body(
389
+ request, False, True, "json", Optional[models.CreateIdentityRequestBody]
390
+ ),
391
+ allow_empty_value=None,
392
+ timeout_ms=timeout_ms,
393
+ )
394
+
395
+ if retries == UNSET:
396
+ if self.sdk_configuration.retry_config is not UNSET:
397
+ retries = self.sdk_configuration.retry_config
398
+
399
+ retry_config = None
400
+ if isinstance(retries, utils.RetryConfig):
401
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
402
+
403
+ http_res = await self.do_request_async(
404
+ hook_ctx=HookContext(
405
+ config=self.sdk_configuration,
406
+ base_url=base_url or "",
407
+ operation_id="CreateIdentity",
408
+ oauth2_scopes=None,
409
+ security_source=get_security_from_env(
410
+ self.sdk_configuration.security, models.Security
411
+ ),
412
+ ),
413
+ request=req,
414
+ error_status_codes=["4XX", "5XX"],
415
+ retry_config=retry_config,
416
+ )
417
+
418
+ if utils.match_response(http_res, "201", "application/json"):
419
+ return unmarshal_json_response(models.CreateIdentityResponseBody, http_res)
420
+ if utils.match_response(http_res, "4XX", "*"):
421
+ http_res_text = await utils.stream_to_text_async(http_res)
422
+ raise models.APIError("API error occurred", http_res, http_res_text)
423
+ if utils.match_response(http_res, "5XX", "*"):
424
+ http_res_text = await utils.stream_to_text_async(http_res)
425
+ raise models.APIError("API error occurred", http_res, http_res_text)
426
+
427
+ raise models.APIError("Unexpected response received", http_res)
428
+
429
+ def retrieve(
430
+ self,
431
+ *,
432
+ id: str,
433
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
434
+ server_url: Optional[str] = None,
435
+ timeout_ms: Optional[int] = None,
436
+ http_headers: Optional[Mapping[str, str]] = None,
437
+ ) -> models.RetrieveIdentityResponseBody:
438
+ r"""Retrieve an identity
439
+
440
+ Retrieves detailed information about a specific identity using their identity ID or external ID from your system.
441
+
442
+ :param id: Unique identity id or external id
443
+ :param retries: Override the default retry configuration for this method
444
+ :param server_url: Override the default server URL for this method
445
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
446
+ :param http_headers: Additional headers to set or replace on requests.
447
+ """
448
+ base_url = None
449
+ url_variables = None
450
+ if timeout_ms is None:
451
+ timeout_ms = self.sdk_configuration.timeout_ms
452
+
453
+ if timeout_ms is None:
454
+ timeout_ms = 600000
455
+
456
+ if server_url is not None:
457
+ base_url = server_url
458
+ else:
459
+ base_url = self._get_url(base_url, url_variables)
460
+
461
+ request = models.RetrieveIdentityRequest(
462
+ id=id,
463
+ )
464
+
465
+ req = self._build_request(
466
+ method="GET",
467
+ path="/v2/identities/{id}",
468
+ base_url=base_url,
469
+ url_variables=url_variables,
470
+ request=request,
471
+ request_body_required=False,
472
+ request_has_path_params=True,
473
+ request_has_query_params=True,
474
+ user_agent_header="user-agent",
475
+ accept_header_value="application/json",
476
+ http_headers=http_headers,
477
+ security=self.sdk_configuration.security,
478
+ allow_empty_value=None,
479
+ timeout_ms=timeout_ms,
480
+ )
481
+
482
+ if retries == UNSET:
483
+ if self.sdk_configuration.retry_config is not UNSET:
484
+ retries = self.sdk_configuration.retry_config
485
+
486
+ retry_config = None
487
+ if isinstance(retries, utils.RetryConfig):
488
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
489
+
490
+ http_res = self.do_request(
491
+ hook_ctx=HookContext(
492
+ config=self.sdk_configuration,
493
+ base_url=base_url or "",
494
+ operation_id="RetrieveIdentity",
495
+ oauth2_scopes=None,
496
+ security_source=get_security_from_env(
497
+ self.sdk_configuration.security, models.Security
498
+ ),
499
+ ),
500
+ request=req,
501
+ error_status_codes=["404", "4XX", "5XX"],
502
+ retry_config=retry_config,
503
+ )
504
+
505
+ response_data: Any = None
506
+ if utils.match_response(http_res, "200", "application/json"):
507
+ return unmarshal_json_response(
508
+ models.RetrieveIdentityResponseBody, http_res
509
+ )
510
+ if utils.match_response(http_res, "404", "application/json"):
511
+ response_data = unmarshal_json_response(
512
+ models.RetrieveIdentityIdentitiesResponseBodyData, http_res
513
+ )
514
+ raise models.RetrieveIdentityIdentitiesResponseBody(response_data, http_res)
515
+ if utils.match_response(http_res, "4XX", "*"):
516
+ http_res_text = utils.stream_to_text(http_res)
517
+ raise models.APIError("API error occurred", http_res, http_res_text)
518
+ if utils.match_response(http_res, "5XX", "*"):
519
+ http_res_text = utils.stream_to_text(http_res)
520
+ raise models.APIError("API error occurred", http_res, http_res_text)
521
+
522
+ raise models.APIError("Unexpected response received", http_res)
523
+
524
+ async def retrieve_async(
525
+ self,
526
+ *,
527
+ id: str,
528
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
529
+ server_url: Optional[str] = None,
530
+ timeout_ms: Optional[int] = None,
531
+ http_headers: Optional[Mapping[str, str]] = None,
532
+ ) -> models.RetrieveIdentityResponseBody:
533
+ r"""Retrieve an identity
534
+
535
+ Retrieves detailed information about a specific identity using their identity ID or external ID from your system.
536
+
537
+ :param id: Unique identity id or external id
538
+ :param retries: Override the default retry configuration for this method
539
+ :param server_url: Override the default server URL for this method
540
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
541
+ :param http_headers: Additional headers to set or replace on requests.
542
+ """
543
+ base_url = None
544
+ url_variables = None
545
+ if timeout_ms is None:
546
+ timeout_ms = self.sdk_configuration.timeout_ms
547
+
548
+ if timeout_ms is None:
549
+ timeout_ms = 600000
550
+
551
+ if server_url is not None:
552
+ base_url = server_url
553
+ else:
554
+ base_url = self._get_url(base_url, url_variables)
555
+
556
+ request = models.RetrieveIdentityRequest(
557
+ id=id,
558
+ )
559
+
560
+ req = self._build_request_async(
561
+ method="GET",
562
+ path="/v2/identities/{id}",
563
+ base_url=base_url,
564
+ url_variables=url_variables,
565
+ request=request,
566
+ request_body_required=False,
567
+ request_has_path_params=True,
568
+ request_has_query_params=True,
569
+ user_agent_header="user-agent",
570
+ accept_header_value="application/json",
571
+ http_headers=http_headers,
572
+ security=self.sdk_configuration.security,
573
+ allow_empty_value=None,
574
+ timeout_ms=timeout_ms,
575
+ )
576
+
577
+ if retries == UNSET:
578
+ if self.sdk_configuration.retry_config is not UNSET:
579
+ retries = self.sdk_configuration.retry_config
580
+
581
+ retry_config = None
582
+ if isinstance(retries, utils.RetryConfig):
583
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
584
+
585
+ http_res = await self.do_request_async(
586
+ hook_ctx=HookContext(
587
+ config=self.sdk_configuration,
588
+ base_url=base_url or "",
589
+ operation_id="RetrieveIdentity",
590
+ oauth2_scopes=None,
591
+ security_source=get_security_from_env(
592
+ self.sdk_configuration.security, models.Security
593
+ ),
594
+ ),
595
+ request=req,
596
+ error_status_codes=["404", "4XX", "5XX"],
597
+ retry_config=retry_config,
598
+ )
599
+
600
+ response_data: Any = None
601
+ if utils.match_response(http_res, "200", "application/json"):
602
+ return unmarshal_json_response(
603
+ models.RetrieveIdentityResponseBody, http_res
604
+ )
605
+ if utils.match_response(http_res, "404", "application/json"):
606
+ response_data = unmarshal_json_response(
607
+ models.RetrieveIdentityIdentitiesResponseBodyData, http_res
608
+ )
609
+ raise models.RetrieveIdentityIdentitiesResponseBody(response_data, http_res)
610
+ if utils.match_response(http_res, "4XX", "*"):
611
+ http_res_text = await utils.stream_to_text_async(http_res)
612
+ raise models.APIError("API error occurred", http_res, http_res_text)
613
+ if utils.match_response(http_res, "5XX", "*"):
614
+ http_res_text = await utils.stream_to_text_async(http_res)
615
+ raise models.APIError("API error occurred", http_res, http_res_text)
616
+
617
+ raise models.APIError("Unexpected response received", http_res)
618
+
619
+ def update(
620
+ self,
621
+ *,
622
+ id: str,
623
+ display_name: OptionalNullable[str] = UNSET,
624
+ email: OptionalNullable[str] = UNSET,
625
+ avatar_url: OptionalNullable[str] = UNSET,
626
+ tags: Optional[List[str]] = None,
627
+ metadata: Optional[Dict[str, Any]] = None,
628
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
629
+ server_url: Optional[str] = None,
630
+ timeout_ms: Optional[int] = None,
631
+ http_headers: Optional[Mapping[str, str]] = None,
632
+ ) -> models.UpdateIdentityResponseBody:
633
+ r"""Update an identity
634
+
635
+ Updates specific fields of an existing identity. Only the fields provided in the request body will be updated.
636
+
637
+ :param id: Unique identity id or external id
638
+ :param display_name: Display name or nickname of the contact user. This is typically shown in user interfaces.
639
+ :param email: Email address of the contact user
640
+ :param avatar_url: URL linking to the contact user's avatar image
641
+ :param tags: Array of tags associated with the contact. Useful for organizing and filtering contacts by categories, departments, or custom classifications.
642
+ :param metadata: Additional custom metadata associated with the contact as key-value pairs. Use this to store any extra information specific to your application.
643
+ :param retries: Override the default retry configuration for this method
644
+ :param server_url: Override the default server URL for this method
645
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
646
+ :param http_headers: Additional headers to set or replace on requests.
647
+ """
648
+ base_url = None
649
+ url_variables = None
650
+ if timeout_ms is None:
651
+ timeout_ms = self.sdk_configuration.timeout_ms
652
+
653
+ if timeout_ms is None:
654
+ timeout_ms = 600000
655
+
656
+ if server_url is not None:
657
+ base_url = server_url
658
+ else:
659
+ base_url = self._get_url(base_url, url_variables)
660
+
661
+ request = models.UpdateIdentityRequest(
662
+ id=id,
663
+ request_body=models.UpdateIdentityRequestBody(
664
+ display_name=display_name,
665
+ email=email,
666
+ avatar_url=avatar_url,
667
+ tags=tags,
668
+ metadata=metadata,
669
+ ),
670
+ )
671
+
672
+ req = self._build_request(
673
+ method="PATCH",
674
+ path="/v2/identities/{id}",
675
+ base_url=base_url,
676
+ url_variables=url_variables,
677
+ request=request,
678
+ request_body_required=False,
679
+ request_has_path_params=True,
680
+ request_has_query_params=True,
681
+ user_agent_header="user-agent",
682
+ accept_header_value="application/json",
683
+ http_headers=http_headers,
684
+ security=self.sdk_configuration.security,
685
+ get_serialized_body=lambda: utils.serialize_request_body(
686
+ request.request_body,
687
+ False,
688
+ True,
689
+ "json",
690
+ Optional[models.UpdateIdentityRequestBody],
691
+ ),
692
+ allow_empty_value=None,
693
+ timeout_ms=timeout_ms,
694
+ )
695
+
696
+ if retries == UNSET:
697
+ if self.sdk_configuration.retry_config is not UNSET:
698
+ retries = self.sdk_configuration.retry_config
699
+
700
+ retry_config = None
701
+ if isinstance(retries, utils.RetryConfig):
702
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
703
+
704
+ http_res = self.do_request(
705
+ hook_ctx=HookContext(
706
+ config=self.sdk_configuration,
707
+ base_url=base_url or "",
708
+ operation_id="UpdateIdentity",
709
+ oauth2_scopes=None,
710
+ security_source=get_security_from_env(
711
+ self.sdk_configuration.security, models.Security
712
+ ),
713
+ ),
714
+ request=req,
715
+ error_status_codes=["404", "4XX", "5XX"],
716
+ retry_config=retry_config,
717
+ )
718
+
719
+ response_data: Any = None
720
+ if utils.match_response(http_res, "200", "application/json"):
721
+ return unmarshal_json_response(models.UpdateIdentityResponseBody, http_res)
722
+ if utils.match_response(http_res, "404", "application/json"):
723
+ response_data = unmarshal_json_response(
724
+ models.UpdateIdentityIdentitiesResponseBodyData, http_res
725
+ )
726
+ raise models.UpdateIdentityIdentitiesResponseBody(response_data, http_res)
727
+ if utils.match_response(http_res, "4XX", "*"):
728
+ http_res_text = utils.stream_to_text(http_res)
729
+ raise models.APIError("API error occurred", http_res, http_res_text)
730
+ if utils.match_response(http_res, "5XX", "*"):
731
+ http_res_text = utils.stream_to_text(http_res)
732
+ raise models.APIError("API error occurred", http_res, http_res_text)
733
+
734
+ raise models.APIError("Unexpected response received", http_res)
735
+
736
+ async def update_async(
737
+ self,
738
+ *,
739
+ id: str,
740
+ display_name: OptionalNullable[str] = UNSET,
741
+ email: OptionalNullable[str] = UNSET,
742
+ avatar_url: OptionalNullable[str] = UNSET,
743
+ tags: Optional[List[str]] = None,
744
+ metadata: Optional[Dict[str, Any]] = None,
745
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
746
+ server_url: Optional[str] = None,
747
+ timeout_ms: Optional[int] = None,
748
+ http_headers: Optional[Mapping[str, str]] = None,
749
+ ) -> models.UpdateIdentityResponseBody:
750
+ r"""Update an identity
751
+
752
+ Updates specific fields of an existing identity. Only the fields provided in the request body will be updated.
753
+
754
+ :param id: Unique identity id or external id
755
+ :param display_name: Display name or nickname of the contact user. This is typically shown in user interfaces.
756
+ :param email: Email address of the contact user
757
+ :param avatar_url: URL linking to the contact user's avatar image
758
+ :param tags: Array of tags associated with the contact. Useful for organizing and filtering contacts by categories, departments, or custom classifications.
759
+ :param metadata: Additional custom metadata associated with the contact as key-value pairs. Use this to store any extra information specific to your application.
760
+ :param retries: Override the default retry configuration for this method
761
+ :param server_url: Override the default server URL for this method
762
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
763
+ :param http_headers: Additional headers to set or replace on requests.
764
+ """
765
+ base_url = None
766
+ url_variables = None
767
+ if timeout_ms is None:
768
+ timeout_ms = self.sdk_configuration.timeout_ms
769
+
770
+ if timeout_ms is None:
771
+ timeout_ms = 600000
772
+
773
+ if server_url is not None:
774
+ base_url = server_url
775
+ else:
776
+ base_url = self._get_url(base_url, url_variables)
777
+
778
+ request = models.UpdateIdentityRequest(
779
+ id=id,
780
+ request_body=models.UpdateIdentityRequestBody(
781
+ display_name=display_name,
782
+ email=email,
783
+ avatar_url=avatar_url,
784
+ tags=tags,
785
+ metadata=metadata,
786
+ ),
787
+ )
788
+
789
+ req = self._build_request_async(
790
+ method="PATCH",
791
+ path="/v2/identities/{id}",
792
+ base_url=base_url,
793
+ url_variables=url_variables,
794
+ request=request,
795
+ request_body_required=False,
796
+ request_has_path_params=True,
797
+ request_has_query_params=True,
798
+ user_agent_header="user-agent",
799
+ accept_header_value="application/json",
800
+ http_headers=http_headers,
801
+ security=self.sdk_configuration.security,
802
+ get_serialized_body=lambda: utils.serialize_request_body(
803
+ request.request_body,
804
+ False,
805
+ True,
806
+ "json",
807
+ Optional[models.UpdateIdentityRequestBody],
808
+ ),
809
+ allow_empty_value=None,
810
+ timeout_ms=timeout_ms,
811
+ )
812
+
813
+ if retries == UNSET:
814
+ if self.sdk_configuration.retry_config is not UNSET:
815
+ retries = self.sdk_configuration.retry_config
816
+
817
+ retry_config = None
818
+ if isinstance(retries, utils.RetryConfig):
819
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
820
+
821
+ http_res = await self.do_request_async(
822
+ hook_ctx=HookContext(
823
+ config=self.sdk_configuration,
824
+ base_url=base_url or "",
825
+ operation_id="UpdateIdentity",
826
+ oauth2_scopes=None,
827
+ security_source=get_security_from_env(
828
+ self.sdk_configuration.security, models.Security
829
+ ),
830
+ ),
831
+ request=req,
832
+ error_status_codes=["404", "4XX", "5XX"],
833
+ retry_config=retry_config,
834
+ )
835
+
836
+ response_data: Any = None
837
+ if utils.match_response(http_res, "200", "application/json"):
838
+ return unmarshal_json_response(models.UpdateIdentityResponseBody, http_res)
839
+ if utils.match_response(http_res, "404", "application/json"):
840
+ response_data = unmarshal_json_response(
841
+ models.UpdateIdentityIdentitiesResponseBodyData, http_res
842
+ )
843
+ raise models.UpdateIdentityIdentitiesResponseBody(response_data, http_res)
844
+ if utils.match_response(http_res, "4XX", "*"):
845
+ http_res_text = await utils.stream_to_text_async(http_res)
846
+ raise models.APIError("API error occurred", http_res, http_res_text)
847
+ if utils.match_response(http_res, "5XX", "*"):
848
+ http_res_text = await utils.stream_to_text_async(http_res)
849
+ raise models.APIError("API error occurred", http_res, http_res_text)
850
+
851
+ raise models.APIError("Unexpected response received", http_res)
852
+
853
+ def delete(
854
+ self,
855
+ *,
856
+ id: str,
857
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
858
+ server_url: Optional[str] = None,
859
+ timeout_ms: Optional[int] = None,
860
+ http_headers: Optional[Mapping[str, str]] = None,
861
+ ):
862
+ r"""Delete an identity
863
+
864
+ Permanently deletes an identity from your workspace and cleans up associated budget configurations. This action cannot be undone.
865
+
866
+ :param id: Identity ID or External ID
867
+ :param retries: Override the default retry configuration for this method
868
+ :param server_url: Override the default server URL for this method
869
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
870
+ :param http_headers: Additional headers to set or replace on requests.
871
+ """
872
+ base_url = None
873
+ url_variables = None
874
+ if timeout_ms is None:
875
+ timeout_ms = self.sdk_configuration.timeout_ms
876
+
877
+ if timeout_ms is None:
878
+ timeout_ms = 600000
879
+
880
+ if server_url is not None:
881
+ base_url = server_url
882
+ else:
883
+ base_url = self._get_url(base_url, url_variables)
884
+
885
+ request = models.DeleteIdentityRequest(
886
+ id=id,
887
+ )
888
+
889
+ req = self._build_request(
890
+ method="DELETE",
891
+ path="/v2/identities/{id}",
892
+ base_url=base_url,
893
+ url_variables=url_variables,
894
+ request=request,
895
+ request_body_required=False,
896
+ request_has_path_params=True,
897
+ request_has_query_params=True,
898
+ user_agent_header="user-agent",
899
+ accept_header_value="application/json",
900
+ http_headers=http_headers,
901
+ security=self.sdk_configuration.security,
902
+ allow_empty_value=None,
903
+ timeout_ms=timeout_ms,
904
+ )
905
+
906
+ if retries == UNSET:
907
+ if self.sdk_configuration.retry_config is not UNSET:
908
+ retries = self.sdk_configuration.retry_config
909
+
910
+ retry_config = None
911
+ if isinstance(retries, utils.RetryConfig):
912
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
913
+
914
+ http_res = self.do_request(
915
+ hook_ctx=HookContext(
916
+ config=self.sdk_configuration,
917
+ base_url=base_url or "",
918
+ operation_id="DeleteIdentity",
919
+ oauth2_scopes=None,
920
+ security_source=get_security_from_env(
921
+ self.sdk_configuration.security, models.Security
922
+ ),
923
+ ),
924
+ request=req,
925
+ error_status_codes=["404", "4XX", "5XX"],
926
+ retry_config=retry_config,
927
+ )
928
+
929
+ response_data: Any = None
930
+ if utils.match_response(http_res, "204", "*"):
931
+ return
932
+ if utils.match_response(http_res, "404", "application/json"):
933
+ response_data = unmarshal_json_response(
934
+ models.DeleteIdentityResponseBodyData, http_res
935
+ )
936
+ raise models.DeleteIdentityResponseBody(response_data, http_res)
937
+ if utils.match_response(http_res, "4XX", "*"):
938
+ http_res_text = utils.stream_to_text(http_res)
939
+ raise models.APIError("API error occurred", http_res, http_res_text)
940
+ if utils.match_response(http_res, "5XX", "*"):
941
+ http_res_text = utils.stream_to_text(http_res)
942
+ raise models.APIError("API error occurred", http_res, http_res_text)
943
+
944
+ raise models.APIError("Unexpected response received", http_res)
945
+
946
+ async def delete_async(
947
+ self,
948
+ *,
949
+ id: str,
950
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
951
+ server_url: Optional[str] = None,
952
+ timeout_ms: Optional[int] = None,
953
+ http_headers: Optional[Mapping[str, str]] = None,
954
+ ):
955
+ r"""Delete an identity
956
+
957
+ Permanently deletes an identity from your workspace and cleans up associated budget configurations. This action cannot be undone.
958
+
959
+ :param id: Identity ID or External ID
960
+ :param retries: Override the default retry configuration for this method
961
+ :param server_url: Override the default server URL for this method
962
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
963
+ :param http_headers: Additional headers to set or replace on requests.
964
+ """
965
+ base_url = None
966
+ url_variables = None
967
+ if timeout_ms is None:
968
+ timeout_ms = self.sdk_configuration.timeout_ms
969
+
970
+ if timeout_ms is None:
971
+ timeout_ms = 600000
972
+
973
+ if server_url is not None:
974
+ base_url = server_url
975
+ else:
976
+ base_url = self._get_url(base_url, url_variables)
977
+
978
+ request = models.DeleteIdentityRequest(
979
+ id=id,
980
+ )
981
+
982
+ req = self._build_request_async(
983
+ method="DELETE",
984
+ path="/v2/identities/{id}",
985
+ base_url=base_url,
986
+ url_variables=url_variables,
987
+ request=request,
988
+ request_body_required=False,
989
+ request_has_path_params=True,
990
+ request_has_query_params=True,
991
+ user_agent_header="user-agent",
992
+ accept_header_value="application/json",
993
+ http_headers=http_headers,
994
+ security=self.sdk_configuration.security,
995
+ allow_empty_value=None,
996
+ timeout_ms=timeout_ms,
997
+ )
998
+
999
+ if retries == UNSET:
1000
+ if self.sdk_configuration.retry_config is not UNSET:
1001
+ retries = self.sdk_configuration.retry_config
1002
+
1003
+ retry_config = None
1004
+ if isinstance(retries, utils.RetryConfig):
1005
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
1006
+
1007
+ http_res = await self.do_request_async(
1008
+ hook_ctx=HookContext(
1009
+ config=self.sdk_configuration,
1010
+ base_url=base_url or "",
1011
+ operation_id="DeleteIdentity",
1012
+ oauth2_scopes=None,
1013
+ security_source=get_security_from_env(
1014
+ self.sdk_configuration.security, models.Security
1015
+ ),
1016
+ ),
1017
+ request=req,
1018
+ error_status_codes=["404", "4XX", "5XX"],
1019
+ retry_config=retry_config,
1020
+ )
1021
+
1022
+ response_data: Any = None
1023
+ if utils.match_response(http_res, "204", "*"):
1024
+ return
1025
+ if utils.match_response(http_res, "404", "application/json"):
1026
+ response_data = unmarshal_json_response(
1027
+ models.DeleteIdentityResponseBodyData, http_res
1028
+ )
1029
+ raise models.DeleteIdentityResponseBody(response_data, http_res)
1030
+ if utils.match_response(http_res, "4XX", "*"):
1031
+ http_res_text = await utils.stream_to_text_async(http_res)
1032
+ raise models.APIError("API error occurred", http_res, http_res_text)
1033
+ if utils.match_response(http_res, "5XX", "*"):
1034
+ http_res_text = await utils.stream_to_text_async(http_res)
1035
+ raise models.APIError("API error occurred", http_res, http_res_text)
1036
+
1037
+ raise models.APIError("Unexpected response received", http_res)