c63a5cfe-b235-4fbe-8bbb-82a9e02a482a-python 0.1.0a3__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 (190) hide show
  1. c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a3.dist-info/METADATA +396 -0
  2. c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a3.dist-info/RECORD +190 -0
  3. c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a3.dist-info/WHEEL +4 -0
  4. c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a3.dist-info/licenses/LICENSE +201 -0
  5. digitalocean_genai_sdk/__init__.py +99 -0
  6. digitalocean_genai_sdk/_base_client.py +1949 -0
  7. digitalocean_genai_sdk/_client.py +795 -0
  8. digitalocean_genai_sdk/_compat.py +219 -0
  9. digitalocean_genai_sdk/_constants.py +14 -0
  10. digitalocean_genai_sdk/_exceptions.py +108 -0
  11. digitalocean_genai_sdk/_files.py +123 -0
  12. digitalocean_genai_sdk/_models.py +805 -0
  13. digitalocean_genai_sdk/_qs.py +150 -0
  14. digitalocean_genai_sdk/_resource.py +43 -0
  15. digitalocean_genai_sdk/_response.py +832 -0
  16. digitalocean_genai_sdk/_streaming.py +333 -0
  17. digitalocean_genai_sdk/_types.py +219 -0
  18. digitalocean_genai_sdk/_utils/__init__.py +57 -0
  19. digitalocean_genai_sdk/_utils/_logs.py +25 -0
  20. digitalocean_genai_sdk/_utils/_proxy.py +65 -0
  21. digitalocean_genai_sdk/_utils/_reflection.py +42 -0
  22. digitalocean_genai_sdk/_utils/_resources_proxy.py +24 -0
  23. digitalocean_genai_sdk/_utils/_streams.py +12 -0
  24. digitalocean_genai_sdk/_utils/_sync.py +86 -0
  25. digitalocean_genai_sdk/_utils/_transform.py +447 -0
  26. digitalocean_genai_sdk/_utils/_typing.py +151 -0
  27. digitalocean_genai_sdk/_utils/_utils.py +422 -0
  28. digitalocean_genai_sdk/_version.py +4 -0
  29. digitalocean_genai_sdk/lib/.keep +4 -0
  30. digitalocean_genai_sdk/py.typed +0 -0
  31. digitalocean_genai_sdk/resources/__init__.py +145 -0
  32. digitalocean_genai_sdk/resources/agents/__init__.py +89 -0
  33. digitalocean_genai_sdk/resources/agents/agents.py +965 -0
  34. digitalocean_genai_sdk/resources/agents/api_keys.py +581 -0
  35. digitalocean_genai_sdk/resources/agents/child_agents.py +508 -0
  36. digitalocean_genai_sdk/resources/agents/functions.py +421 -0
  37. digitalocean_genai_sdk/resources/agents/knowledge_bases.py +346 -0
  38. digitalocean_genai_sdk/resources/agents/versions.py +298 -0
  39. digitalocean_genai_sdk/resources/api_keys/__init__.py +19 -0
  40. digitalocean_genai_sdk/resources/api_keys/api_keys.py +275 -0
  41. digitalocean_genai_sdk/resources/api_keys/api_keys_.py +529 -0
  42. digitalocean_genai_sdk/resources/auth/__init__.py +33 -0
  43. digitalocean_genai_sdk/resources/auth/agents/__init__.py +33 -0
  44. digitalocean_genai_sdk/resources/auth/agents/agents.py +102 -0
  45. digitalocean_genai_sdk/resources/auth/agents/token.py +173 -0
  46. digitalocean_genai_sdk/resources/auth/auth.py +102 -0
  47. digitalocean_genai_sdk/resources/chat.py +381 -0
  48. digitalocean_genai_sdk/resources/embeddings.py +201 -0
  49. digitalocean_genai_sdk/resources/indexing_jobs.py +543 -0
  50. digitalocean_genai_sdk/resources/knowledge_bases/__init__.py +33 -0
  51. digitalocean_genai_sdk/resources/knowledge_bases/data_sources.py +410 -0
  52. digitalocean_genai_sdk/resources/knowledge_bases/knowledge_bases.py +667 -0
  53. digitalocean_genai_sdk/resources/models.py +222 -0
  54. digitalocean_genai_sdk/resources/providers/__init__.py +47 -0
  55. digitalocean_genai_sdk/resources/providers/anthropic/__init__.py +33 -0
  56. digitalocean_genai_sdk/resources/providers/anthropic/anthropic.py +102 -0
  57. digitalocean_genai_sdk/resources/providers/anthropic/keys.py +662 -0
  58. digitalocean_genai_sdk/resources/providers/openai/__init__.py +33 -0
  59. digitalocean_genai_sdk/resources/providers/openai/keys.py +658 -0
  60. digitalocean_genai_sdk/resources/providers/openai/openai.py +102 -0
  61. digitalocean_genai_sdk/resources/providers/providers.py +134 -0
  62. digitalocean_genai_sdk/resources/regions.py +191 -0
  63. digitalocean_genai_sdk/types/__init__.py +57 -0
  64. digitalocean_genai_sdk/types/agent_create_params.py +39 -0
  65. digitalocean_genai_sdk/types/agent_create_response.py +16 -0
  66. digitalocean_genai_sdk/types/agent_delete_response.py +16 -0
  67. digitalocean_genai_sdk/types/agent_list_params.py +18 -0
  68. digitalocean_genai_sdk/types/agent_list_response.py +198 -0
  69. digitalocean_genai_sdk/types/agent_retrieve_response.py +16 -0
  70. digitalocean_genai_sdk/types/agent_update_params.py +65 -0
  71. digitalocean_genai_sdk/types/agent_update_response.py +16 -0
  72. digitalocean_genai_sdk/types/agent_update_status_params.py +16 -0
  73. digitalocean_genai_sdk/types/agent_update_status_response.py +16 -0
  74. digitalocean_genai_sdk/types/agents/__init__.py +31 -0
  75. digitalocean_genai_sdk/types/agents/api_key_create_params.py +15 -0
  76. digitalocean_genai_sdk/types/agents/api_key_create_response.py +12 -0
  77. digitalocean_genai_sdk/types/agents/api_key_delete_response.py +12 -0
  78. digitalocean_genai_sdk/types/agents/api_key_list_params.py +15 -0
  79. digitalocean_genai_sdk/types/agents/api_key_list_response.py +18 -0
  80. digitalocean_genai_sdk/types/agents/api_key_regenerate_response.py +12 -0
  81. digitalocean_genai_sdk/types/agents/api_key_update_params.py +19 -0
  82. digitalocean_genai_sdk/types/agents/api_key_update_response.py +12 -0
  83. digitalocean_genai_sdk/types/agents/api_link_knowledge_base_output.py +16 -0
  84. digitalocean_genai_sdk/types/agents/api_links.py +21 -0
  85. digitalocean_genai_sdk/types/agents/api_meta.py +15 -0
  86. digitalocean_genai_sdk/types/agents/child_agent_add_params.py +22 -0
  87. digitalocean_genai_sdk/types/agents/child_agent_add_response.py +14 -0
  88. digitalocean_genai_sdk/types/agents/child_agent_delete_response.py +13 -0
  89. digitalocean_genai_sdk/types/agents/child_agent_update_params.py +24 -0
  90. digitalocean_genai_sdk/types/agents/child_agent_update_response.py +18 -0
  91. digitalocean_genai_sdk/types/agents/child_agent_view_response.py +16 -0
  92. digitalocean_genai_sdk/types/agents/function_create_params.py +25 -0
  93. digitalocean_genai_sdk/types/agents/function_create_response.py +16 -0
  94. digitalocean_genai_sdk/types/agents/function_delete_response.py +16 -0
  95. digitalocean_genai_sdk/types/agents/function_update_params.py +29 -0
  96. digitalocean_genai_sdk/types/agents/function_update_response.py +16 -0
  97. digitalocean_genai_sdk/types/agents/knowledge_base_detach_response.py +16 -0
  98. digitalocean_genai_sdk/types/agents/version_list_params.py +15 -0
  99. digitalocean_genai_sdk/types/agents/version_list_response.py +118 -0
  100. digitalocean_genai_sdk/types/agents/version_update_params.py +15 -0
  101. digitalocean_genai_sdk/types/agents/version_update_response.py +30 -0
  102. digitalocean_genai_sdk/types/api_agent.py +263 -0
  103. digitalocean_genai_sdk/types/api_agent_api_key_info.py +22 -0
  104. digitalocean_genai_sdk/types/api_agreement.py +17 -0
  105. digitalocean_genai_sdk/types/api_anthropic_api_key_info.py +22 -0
  106. digitalocean_genai_sdk/types/api_deployment_visibility.py +9 -0
  107. digitalocean_genai_sdk/types/api_indexing_job.py +43 -0
  108. digitalocean_genai_sdk/types/api_key_list_params.py +42 -0
  109. digitalocean_genai_sdk/types/api_key_list_response.py +42 -0
  110. digitalocean_genai_sdk/types/api_keys/__init__.py +13 -0
  111. digitalocean_genai_sdk/types/api_keys/api_key_create_params.py +11 -0
  112. digitalocean_genai_sdk/types/api_keys/api_key_create_response.py +12 -0
  113. digitalocean_genai_sdk/types/api_keys/api_key_delete_response.py +12 -0
  114. digitalocean_genai_sdk/types/api_keys/api_key_list_params.py +15 -0
  115. digitalocean_genai_sdk/types/api_keys/api_key_list_response.py +18 -0
  116. digitalocean_genai_sdk/types/api_keys/api_key_update_params.py +15 -0
  117. digitalocean_genai_sdk/types/api_keys/api_key_update_regenerate_response.py +12 -0
  118. digitalocean_genai_sdk/types/api_keys/api_key_update_response.py +12 -0
  119. digitalocean_genai_sdk/types/api_keys/api_model_api_key_info.py +22 -0
  120. digitalocean_genai_sdk/types/api_knowledge_base.py +37 -0
  121. digitalocean_genai_sdk/types/api_model.py +57 -0
  122. digitalocean_genai_sdk/types/api_model_version.py +15 -0
  123. digitalocean_genai_sdk/types/api_openai_api_key_info.py +25 -0
  124. digitalocean_genai_sdk/types/api_retrieval_method.py +13 -0
  125. digitalocean_genai_sdk/types/auth/__init__.py +3 -0
  126. digitalocean_genai_sdk/types/auth/agents/__init__.py +6 -0
  127. digitalocean_genai_sdk/types/auth/agents/token_create_params.py +13 -0
  128. digitalocean_genai_sdk/types/auth/agents/token_create_response.py +13 -0
  129. digitalocean_genai_sdk/types/chat_completion_request_message_content_part_text_param.py +15 -0
  130. digitalocean_genai_sdk/types/chat_completion_token_logprob.py +57 -0
  131. digitalocean_genai_sdk/types/chat_create_completion_params.py +208 -0
  132. digitalocean_genai_sdk/types/chat_create_completion_response.py +81 -0
  133. digitalocean_genai_sdk/types/embedding_create_params.py +28 -0
  134. digitalocean_genai_sdk/types/embedding_create_response.py +41 -0
  135. digitalocean_genai_sdk/types/indexing_job_create_params.py +14 -0
  136. digitalocean_genai_sdk/types/indexing_job_create_response.py +12 -0
  137. digitalocean_genai_sdk/types/indexing_job_list_params.py +15 -0
  138. digitalocean_genai_sdk/types/indexing_job_list_response.py +18 -0
  139. digitalocean_genai_sdk/types/indexing_job_retrieve_data_sources_response.py +52 -0
  140. digitalocean_genai_sdk/types/indexing_job_retrieve_response.py +12 -0
  141. digitalocean_genai_sdk/types/indexing_job_update_cancel_params.py +14 -0
  142. digitalocean_genai_sdk/types/indexing_job_update_cancel_response.py +12 -0
  143. digitalocean_genai_sdk/types/knowledge_base_create_params.py +64 -0
  144. digitalocean_genai_sdk/types/knowledge_base_create_response.py +12 -0
  145. digitalocean_genai_sdk/types/knowledge_base_delete_response.py +11 -0
  146. digitalocean_genai_sdk/types/knowledge_base_list_params.py +15 -0
  147. digitalocean_genai_sdk/types/knowledge_base_list_response.py +18 -0
  148. digitalocean_genai_sdk/types/knowledge_base_retrieve_response.py +30 -0
  149. digitalocean_genai_sdk/types/knowledge_base_update_params.py +27 -0
  150. digitalocean_genai_sdk/types/knowledge_base_update_response.py +12 -0
  151. digitalocean_genai_sdk/types/knowledge_bases/__init__.py +16 -0
  152. digitalocean_genai_sdk/types/knowledge_bases/api_file_upload_data_source.py +15 -0
  153. digitalocean_genai_sdk/types/knowledge_bases/api_file_upload_data_source_param.py +15 -0
  154. digitalocean_genai_sdk/types/knowledge_bases/api_knowledge_base_data_source.py +35 -0
  155. digitalocean_genai_sdk/types/knowledge_bases/api_spaces_data_source.py +15 -0
  156. digitalocean_genai_sdk/types/knowledge_bases/api_spaces_data_source_param.py +15 -0
  157. digitalocean_genai_sdk/types/knowledge_bases/api_web_crawler_data_source.py +26 -0
  158. digitalocean_genai_sdk/types/knowledge_bases/api_web_crawler_data_source_param.py +25 -0
  159. digitalocean_genai_sdk/types/knowledge_bases/data_source_create_params.py +33 -0
  160. digitalocean_genai_sdk/types/knowledge_bases/data_source_create_response.py +12 -0
  161. digitalocean_genai_sdk/types/knowledge_bases/data_source_delete_response.py +13 -0
  162. digitalocean_genai_sdk/types/knowledge_bases/data_source_list_params.py +15 -0
  163. digitalocean_genai_sdk/types/knowledge_bases/data_source_list_response.py +18 -0
  164. digitalocean_genai_sdk/types/model.py +21 -0
  165. digitalocean_genai_sdk/types/model_list_response.py +15 -0
  166. digitalocean_genai_sdk/types/providers/__init__.py +3 -0
  167. digitalocean_genai_sdk/types/providers/anthropic/__init__.py +14 -0
  168. digitalocean_genai_sdk/types/providers/anthropic/key_create_params.py +13 -0
  169. digitalocean_genai_sdk/types/providers/anthropic/key_create_response.py +12 -0
  170. digitalocean_genai_sdk/types/providers/anthropic/key_delete_response.py +12 -0
  171. digitalocean_genai_sdk/types/providers/anthropic/key_list_agents_params.py +15 -0
  172. digitalocean_genai_sdk/types/providers/anthropic/key_list_agents_response.py +22 -0
  173. digitalocean_genai_sdk/types/providers/anthropic/key_list_params.py +15 -0
  174. digitalocean_genai_sdk/types/providers/anthropic/key_list_response.py +18 -0
  175. digitalocean_genai_sdk/types/providers/anthropic/key_retrieve_response.py +12 -0
  176. digitalocean_genai_sdk/types/providers/anthropic/key_update_params.py +17 -0
  177. digitalocean_genai_sdk/types/providers/anthropic/key_update_response.py +12 -0
  178. digitalocean_genai_sdk/types/providers/openai/__init__.py +14 -0
  179. digitalocean_genai_sdk/types/providers/openai/key_create_params.py +13 -0
  180. digitalocean_genai_sdk/types/providers/openai/key_create_response.py +12 -0
  181. digitalocean_genai_sdk/types/providers/openai/key_delete_response.py +12 -0
  182. digitalocean_genai_sdk/types/providers/openai/key_list_params.py +15 -0
  183. digitalocean_genai_sdk/types/providers/openai/key_list_response.py +18 -0
  184. digitalocean_genai_sdk/types/providers/openai/key_retrieve_agents_params.py +15 -0
  185. digitalocean_genai_sdk/types/providers/openai/key_retrieve_agents_response.py +22 -0
  186. digitalocean_genai_sdk/types/providers/openai/key_retrieve_response.py +12 -0
  187. digitalocean_genai_sdk/types/providers/openai/key_update_params.py +17 -0
  188. digitalocean_genai_sdk/types/providers/openai/key_update_response.py +12 -0
  189. digitalocean_genai_sdk/types/region_list_params.py +15 -0
  190. digitalocean_genai_sdk/types/region_list_response.py +23 -0
@@ -0,0 +1,658 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ import httpx
6
+
7
+ from ...._types import NOT_GIVEN, Body, Query, Headers, NotGiven
8
+ from ...._utils import maybe_transform, async_maybe_transform
9
+ from ...._compat import cached_property
10
+ from ...._resource import SyncAPIResource, AsyncAPIResource
11
+ from ...._response import (
12
+ to_raw_response_wrapper,
13
+ to_streamed_response_wrapper,
14
+ async_to_raw_response_wrapper,
15
+ async_to_streamed_response_wrapper,
16
+ )
17
+ from ...._base_client import make_request_options
18
+ from ....types.providers.openai import key_list_params, key_create_params, key_update_params, key_retrieve_agents_params
19
+ from ....types.providers.openai.key_list_response import KeyListResponse
20
+ from ....types.providers.openai.key_create_response import KeyCreateResponse
21
+ from ....types.providers.openai.key_delete_response import KeyDeleteResponse
22
+ from ....types.providers.openai.key_update_response import KeyUpdateResponse
23
+ from ....types.providers.openai.key_retrieve_response import KeyRetrieveResponse
24
+ from ....types.providers.openai.key_retrieve_agents_response import KeyRetrieveAgentsResponse
25
+
26
+ __all__ = ["KeysResource", "AsyncKeysResource"]
27
+
28
+
29
+ class KeysResource(SyncAPIResource):
30
+ @cached_property
31
+ def with_raw_response(self) -> KeysResourceWithRawResponse:
32
+ """
33
+ This property can be used as a prefix for any HTTP method call to return
34
+ the raw response object instead of the parsed content.
35
+
36
+ For more information, see https://www.github.com/digitalocean/genai-python#accessing-raw-response-data-eg-headers
37
+ """
38
+ return KeysResourceWithRawResponse(self)
39
+
40
+ @cached_property
41
+ def with_streaming_response(self) -> KeysResourceWithStreamingResponse:
42
+ """
43
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
44
+
45
+ For more information, see https://www.github.com/digitalocean/genai-python#with_streaming_response
46
+ """
47
+ return KeysResourceWithStreamingResponse(self)
48
+
49
+ def create(
50
+ self,
51
+ *,
52
+ api_key: str | NotGiven = NOT_GIVEN,
53
+ name: str | NotGiven = NOT_GIVEN,
54
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
55
+ # The extra values given here take precedence over values defined on the client or passed to this method.
56
+ extra_headers: Headers | None = None,
57
+ extra_query: Query | None = None,
58
+ extra_body: Body | None = None,
59
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
60
+ ) -> KeyCreateResponse:
61
+ """
62
+ To create an OpenAI API key, send a POST request to `/v2/gen-ai/openai/keys`.
63
+
64
+ Args:
65
+ extra_headers: Send extra headers
66
+
67
+ extra_query: Add additional query parameters to the request
68
+
69
+ extra_body: Add additional JSON properties to the request
70
+
71
+ timeout: Override the client-level default timeout for this request, in seconds
72
+ """
73
+ return self._post(
74
+ "/v2/genai/openai/keys",
75
+ body=maybe_transform(
76
+ {
77
+ "api_key": api_key,
78
+ "name": name,
79
+ },
80
+ key_create_params.KeyCreateParams,
81
+ ),
82
+ options=make_request_options(
83
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
84
+ ),
85
+ cast_to=KeyCreateResponse,
86
+ )
87
+
88
+ def retrieve(
89
+ self,
90
+ api_key_uuid: str,
91
+ *,
92
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
93
+ # The extra values given here take precedence over values defined on the client or passed to this method.
94
+ extra_headers: Headers | None = None,
95
+ extra_query: Query | None = None,
96
+ extra_body: Body | None = None,
97
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
98
+ ) -> KeyRetrieveResponse:
99
+ """
100
+ To retrieve details of an OpenAI API key, send a GET request to
101
+ `/v2/gen-ai/openai/keys/{api_key_uuid}`.
102
+
103
+ Args:
104
+ extra_headers: Send extra headers
105
+
106
+ extra_query: Add additional query parameters to the request
107
+
108
+ extra_body: Add additional JSON properties to the request
109
+
110
+ timeout: Override the client-level default timeout for this request, in seconds
111
+ """
112
+ if not api_key_uuid:
113
+ raise ValueError(f"Expected a non-empty value for `api_key_uuid` but received {api_key_uuid!r}")
114
+ return self._get(
115
+ f"/v2/genai/openai/keys/{api_key_uuid}",
116
+ options=make_request_options(
117
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
118
+ ),
119
+ cast_to=KeyRetrieveResponse,
120
+ )
121
+
122
+ def update(
123
+ self,
124
+ path_api_key_uuid: str,
125
+ *,
126
+ api_key: str | NotGiven = NOT_GIVEN,
127
+ body_api_key_uuid: str | NotGiven = NOT_GIVEN,
128
+ name: str | NotGiven = NOT_GIVEN,
129
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
130
+ # The extra values given here take precedence over values defined on the client or passed to this method.
131
+ extra_headers: Headers | None = None,
132
+ extra_query: Query | None = None,
133
+ extra_body: Body | None = None,
134
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
135
+ ) -> KeyUpdateResponse:
136
+ """
137
+ To update an OpenAI API key, send a PUT request to
138
+ `/v2/gen-ai/openai/keys/{api_key_uuid}`.
139
+
140
+ Args:
141
+ extra_headers: Send extra headers
142
+
143
+ extra_query: Add additional query parameters to the request
144
+
145
+ extra_body: Add additional JSON properties to the request
146
+
147
+ timeout: Override the client-level default timeout for this request, in seconds
148
+ """
149
+ if not path_api_key_uuid:
150
+ raise ValueError(f"Expected a non-empty value for `path_api_key_uuid` but received {path_api_key_uuid!r}")
151
+ return self._put(
152
+ f"/v2/genai/openai/keys/{path_api_key_uuid}",
153
+ body=maybe_transform(
154
+ {
155
+ "api_key": api_key,
156
+ "body_api_key_uuid": body_api_key_uuid,
157
+ "name": name,
158
+ },
159
+ key_update_params.KeyUpdateParams,
160
+ ),
161
+ options=make_request_options(
162
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
163
+ ),
164
+ cast_to=KeyUpdateResponse,
165
+ )
166
+
167
+ def list(
168
+ self,
169
+ *,
170
+ page: int | NotGiven = NOT_GIVEN,
171
+ per_page: int | NotGiven = NOT_GIVEN,
172
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
173
+ # The extra values given here take precedence over values defined on the client or passed to this method.
174
+ extra_headers: Headers | None = None,
175
+ extra_query: Query | None = None,
176
+ extra_body: Body | None = None,
177
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
178
+ ) -> KeyListResponse:
179
+ """
180
+ To list all OpenAI API keys, send a GET request to `/v2/gen-ai/openai/keys`.
181
+
182
+ Args:
183
+ page: page number.
184
+
185
+ per_page: items per page.
186
+
187
+ extra_headers: Send extra headers
188
+
189
+ extra_query: Add additional query parameters to the request
190
+
191
+ extra_body: Add additional JSON properties to the request
192
+
193
+ timeout: Override the client-level default timeout for this request, in seconds
194
+ """
195
+ return self._get(
196
+ "/v2/genai/openai/keys",
197
+ options=make_request_options(
198
+ extra_headers=extra_headers,
199
+ extra_query=extra_query,
200
+ extra_body=extra_body,
201
+ timeout=timeout,
202
+ query=maybe_transform(
203
+ {
204
+ "page": page,
205
+ "per_page": per_page,
206
+ },
207
+ key_list_params.KeyListParams,
208
+ ),
209
+ ),
210
+ cast_to=KeyListResponse,
211
+ )
212
+
213
+ def delete(
214
+ self,
215
+ api_key_uuid: str,
216
+ *,
217
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
218
+ # The extra values given here take precedence over values defined on the client or passed to this method.
219
+ extra_headers: Headers | None = None,
220
+ extra_query: Query | None = None,
221
+ extra_body: Body | None = None,
222
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
223
+ ) -> KeyDeleteResponse:
224
+ """
225
+ To delete an OpenAI API key, send a DELETE request to
226
+ `/v2/gen-ai/openai/keys/{api_key_uuid}`.
227
+
228
+ Args:
229
+ extra_headers: Send extra headers
230
+
231
+ extra_query: Add additional query parameters to the request
232
+
233
+ extra_body: Add additional JSON properties to the request
234
+
235
+ timeout: Override the client-level default timeout for this request, in seconds
236
+ """
237
+ if not api_key_uuid:
238
+ raise ValueError(f"Expected a non-empty value for `api_key_uuid` but received {api_key_uuid!r}")
239
+ return self._delete(
240
+ f"/v2/genai/openai/keys/{api_key_uuid}",
241
+ options=make_request_options(
242
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
243
+ ),
244
+ cast_to=KeyDeleteResponse,
245
+ )
246
+
247
+ def retrieve_agents(
248
+ self,
249
+ uuid: str,
250
+ *,
251
+ page: int | NotGiven = NOT_GIVEN,
252
+ per_page: int | NotGiven = NOT_GIVEN,
253
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
254
+ # The extra values given here take precedence over values defined on the client or passed to this method.
255
+ extra_headers: Headers | None = None,
256
+ extra_query: Query | None = None,
257
+ extra_body: Body | None = None,
258
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
259
+ ) -> KeyRetrieveAgentsResponse:
260
+ """
261
+ List Agents by OpenAI Key.
262
+
263
+ Args:
264
+ page: page number.
265
+
266
+ per_page: items per page.
267
+
268
+ extra_headers: Send extra headers
269
+
270
+ extra_query: Add additional query parameters to the request
271
+
272
+ extra_body: Add additional JSON properties to the request
273
+
274
+ timeout: Override the client-level default timeout for this request, in seconds
275
+ """
276
+ if not uuid:
277
+ raise ValueError(f"Expected a non-empty value for `uuid` but received {uuid!r}")
278
+ return self._get(
279
+ f"/v2/genai/openai/keys/{uuid}/agents",
280
+ options=make_request_options(
281
+ extra_headers=extra_headers,
282
+ extra_query=extra_query,
283
+ extra_body=extra_body,
284
+ timeout=timeout,
285
+ query=maybe_transform(
286
+ {
287
+ "page": page,
288
+ "per_page": per_page,
289
+ },
290
+ key_retrieve_agents_params.KeyRetrieveAgentsParams,
291
+ ),
292
+ ),
293
+ cast_to=KeyRetrieveAgentsResponse,
294
+ )
295
+
296
+
297
+ class AsyncKeysResource(AsyncAPIResource):
298
+ @cached_property
299
+ def with_raw_response(self) -> AsyncKeysResourceWithRawResponse:
300
+ """
301
+ This property can be used as a prefix for any HTTP method call to return
302
+ the raw response object instead of the parsed content.
303
+
304
+ For more information, see https://www.github.com/digitalocean/genai-python#accessing-raw-response-data-eg-headers
305
+ """
306
+ return AsyncKeysResourceWithRawResponse(self)
307
+
308
+ @cached_property
309
+ def with_streaming_response(self) -> AsyncKeysResourceWithStreamingResponse:
310
+ """
311
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
312
+
313
+ For more information, see https://www.github.com/digitalocean/genai-python#with_streaming_response
314
+ """
315
+ return AsyncKeysResourceWithStreamingResponse(self)
316
+
317
+ async def create(
318
+ self,
319
+ *,
320
+ api_key: str | NotGiven = NOT_GIVEN,
321
+ name: str | NotGiven = NOT_GIVEN,
322
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
323
+ # The extra values given here take precedence over values defined on the client or passed to this method.
324
+ extra_headers: Headers | None = None,
325
+ extra_query: Query | None = None,
326
+ extra_body: Body | None = None,
327
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
328
+ ) -> KeyCreateResponse:
329
+ """
330
+ To create an OpenAI API key, send a POST request to `/v2/gen-ai/openai/keys`.
331
+
332
+ Args:
333
+ extra_headers: Send extra headers
334
+
335
+ extra_query: Add additional query parameters to the request
336
+
337
+ extra_body: Add additional JSON properties to the request
338
+
339
+ timeout: Override the client-level default timeout for this request, in seconds
340
+ """
341
+ return await self._post(
342
+ "/v2/genai/openai/keys",
343
+ body=await async_maybe_transform(
344
+ {
345
+ "api_key": api_key,
346
+ "name": name,
347
+ },
348
+ key_create_params.KeyCreateParams,
349
+ ),
350
+ options=make_request_options(
351
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
352
+ ),
353
+ cast_to=KeyCreateResponse,
354
+ )
355
+
356
+ async def retrieve(
357
+ self,
358
+ api_key_uuid: str,
359
+ *,
360
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
361
+ # The extra values given here take precedence over values defined on the client or passed to this method.
362
+ extra_headers: Headers | None = None,
363
+ extra_query: Query | None = None,
364
+ extra_body: Body | None = None,
365
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
366
+ ) -> KeyRetrieveResponse:
367
+ """
368
+ To retrieve details of an OpenAI API key, send a GET request to
369
+ `/v2/gen-ai/openai/keys/{api_key_uuid}`.
370
+
371
+ Args:
372
+ extra_headers: Send extra headers
373
+
374
+ extra_query: Add additional query parameters to the request
375
+
376
+ extra_body: Add additional JSON properties to the request
377
+
378
+ timeout: Override the client-level default timeout for this request, in seconds
379
+ """
380
+ if not api_key_uuid:
381
+ raise ValueError(f"Expected a non-empty value for `api_key_uuid` but received {api_key_uuid!r}")
382
+ return await self._get(
383
+ f"/v2/genai/openai/keys/{api_key_uuid}",
384
+ options=make_request_options(
385
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
386
+ ),
387
+ cast_to=KeyRetrieveResponse,
388
+ )
389
+
390
+ async def update(
391
+ self,
392
+ path_api_key_uuid: str,
393
+ *,
394
+ api_key: str | NotGiven = NOT_GIVEN,
395
+ body_api_key_uuid: str | NotGiven = NOT_GIVEN,
396
+ name: str | NotGiven = NOT_GIVEN,
397
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
398
+ # The extra values given here take precedence over values defined on the client or passed to this method.
399
+ extra_headers: Headers | None = None,
400
+ extra_query: Query | None = None,
401
+ extra_body: Body | None = None,
402
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
403
+ ) -> KeyUpdateResponse:
404
+ """
405
+ To update an OpenAI API key, send a PUT request to
406
+ `/v2/gen-ai/openai/keys/{api_key_uuid}`.
407
+
408
+ Args:
409
+ extra_headers: Send extra headers
410
+
411
+ extra_query: Add additional query parameters to the request
412
+
413
+ extra_body: Add additional JSON properties to the request
414
+
415
+ timeout: Override the client-level default timeout for this request, in seconds
416
+ """
417
+ if not path_api_key_uuid:
418
+ raise ValueError(f"Expected a non-empty value for `path_api_key_uuid` but received {path_api_key_uuid!r}")
419
+ return await self._put(
420
+ f"/v2/genai/openai/keys/{path_api_key_uuid}",
421
+ body=await async_maybe_transform(
422
+ {
423
+ "api_key": api_key,
424
+ "body_api_key_uuid": body_api_key_uuid,
425
+ "name": name,
426
+ },
427
+ key_update_params.KeyUpdateParams,
428
+ ),
429
+ options=make_request_options(
430
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
431
+ ),
432
+ cast_to=KeyUpdateResponse,
433
+ )
434
+
435
+ async def list(
436
+ self,
437
+ *,
438
+ page: int | NotGiven = NOT_GIVEN,
439
+ per_page: int | NotGiven = NOT_GIVEN,
440
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
441
+ # The extra values given here take precedence over values defined on the client or passed to this method.
442
+ extra_headers: Headers | None = None,
443
+ extra_query: Query | None = None,
444
+ extra_body: Body | None = None,
445
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
446
+ ) -> KeyListResponse:
447
+ """
448
+ To list all OpenAI API keys, send a GET request to `/v2/gen-ai/openai/keys`.
449
+
450
+ Args:
451
+ page: page number.
452
+
453
+ per_page: items per page.
454
+
455
+ extra_headers: Send extra headers
456
+
457
+ extra_query: Add additional query parameters to the request
458
+
459
+ extra_body: Add additional JSON properties to the request
460
+
461
+ timeout: Override the client-level default timeout for this request, in seconds
462
+ """
463
+ return await self._get(
464
+ "/v2/genai/openai/keys",
465
+ options=make_request_options(
466
+ extra_headers=extra_headers,
467
+ extra_query=extra_query,
468
+ extra_body=extra_body,
469
+ timeout=timeout,
470
+ query=await async_maybe_transform(
471
+ {
472
+ "page": page,
473
+ "per_page": per_page,
474
+ },
475
+ key_list_params.KeyListParams,
476
+ ),
477
+ ),
478
+ cast_to=KeyListResponse,
479
+ )
480
+
481
+ async def delete(
482
+ self,
483
+ api_key_uuid: str,
484
+ *,
485
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
486
+ # The extra values given here take precedence over values defined on the client or passed to this method.
487
+ extra_headers: Headers | None = None,
488
+ extra_query: Query | None = None,
489
+ extra_body: Body | None = None,
490
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
491
+ ) -> KeyDeleteResponse:
492
+ """
493
+ To delete an OpenAI API key, send a DELETE request to
494
+ `/v2/gen-ai/openai/keys/{api_key_uuid}`.
495
+
496
+ Args:
497
+ extra_headers: Send extra headers
498
+
499
+ extra_query: Add additional query parameters to the request
500
+
501
+ extra_body: Add additional JSON properties to the request
502
+
503
+ timeout: Override the client-level default timeout for this request, in seconds
504
+ """
505
+ if not api_key_uuid:
506
+ raise ValueError(f"Expected a non-empty value for `api_key_uuid` but received {api_key_uuid!r}")
507
+ return await self._delete(
508
+ f"/v2/genai/openai/keys/{api_key_uuid}",
509
+ options=make_request_options(
510
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
511
+ ),
512
+ cast_to=KeyDeleteResponse,
513
+ )
514
+
515
+ async def retrieve_agents(
516
+ self,
517
+ uuid: str,
518
+ *,
519
+ page: int | NotGiven = NOT_GIVEN,
520
+ per_page: int | NotGiven = NOT_GIVEN,
521
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
522
+ # The extra values given here take precedence over values defined on the client or passed to this method.
523
+ extra_headers: Headers | None = None,
524
+ extra_query: Query | None = None,
525
+ extra_body: Body | None = None,
526
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
527
+ ) -> KeyRetrieveAgentsResponse:
528
+ """
529
+ List Agents by OpenAI Key.
530
+
531
+ Args:
532
+ page: page number.
533
+
534
+ per_page: items per page.
535
+
536
+ extra_headers: Send extra headers
537
+
538
+ extra_query: Add additional query parameters to the request
539
+
540
+ extra_body: Add additional JSON properties to the request
541
+
542
+ timeout: Override the client-level default timeout for this request, in seconds
543
+ """
544
+ if not uuid:
545
+ raise ValueError(f"Expected a non-empty value for `uuid` but received {uuid!r}")
546
+ return await self._get(
547
+ f"/v2/genai/openai/keys/{uuid}/agents",
548
+ options=make_request_options(
549
+ extra_headers=extra_headers,
550
+ extra_query=extra_query,
551
+ extra_body=extra_body,
552
+ timeout=timeout,
553
+ query=await async_maybe_transform(
554
+ {
555
+ "page": page,
556
+ "per_page": per_page,
557
+ },
558
+ key_retrieve_agents_params.KeyRetrieveAgentsParams,
559
+ ),
560
+ ),
561
+ cast_to=KeyRetrieveAgentsResponse,
562
+ )
563
+
564
+
565
+ class KeysResourceWithRawResponse:
566
+ def __init__(self, keys: KeysResource) -> None:
567
+ self._keys = keys
568
+
569
+ self.create = to_raw_response_wrapper(
570
+ keys.create,
571
+ )
572
+ self.retrieve = to_raw_response_wrapper(
573
+ keys.retrieve,
574
+ )
575
+ self.update = to_raw_response_wrapper(
576
+ keys.update,
577
+ )
578
+ self.list = to_raw_response_wrapper(
579
+ keys.list,
580
+ )
581
+ self.delete = to_raw_response_wrapper(
582
+ keys.delete,
583
+ )
584
+ self.retrieve_agents = to_raw_response_wrapper(
585
+ keys.retrieve_agents,
586
+ )
587
+
588
+
589
+ class AsyncKeysResourceWithRawResponse:
590
+ def __init__(self, keys: AsyncKeysResource) -> None:
591
+ self._keys = keys
592
+
593
+ self.create = async_to_raw_response_wrapper(
594
+ keys.create,
595
+ )
596
+ self.retrieve = async_to_raw_response_wrapper(
597
+ keys.retrieve,
598
+ )
599
+ self.update = async_to_raw_response_wrapper(
600
+ keys.update,
601
+ )
602
+ self.list = async_to_raw_response_wrapper(
603
+ keys.list,
604
+ )
605
+ self.delete = async_to_raw_response_wrapper(
606
+ keys.delete,
607
+ )
608
+ self.retrieve_agents = async_to_raw_response_wrapper(
609
+ keys.retrieve_agents,
610
+ )
611
+
612
+
613
+ class KeysResourceWithStreamingResponse:
614
+ def __init__(self, keys: KeysResource) -> None:
615
+ self._keys = keys
616
+
617
+ self.create = to_streamed_response_wrapper(
618
+ keys.create,
619
+ )
620
+ self.retrieve = to_streamed_response_wrapper(
621
+ keys.retrieve,
622
+ )
623
+ self.update = to_streamed_response_wrapper(
624
+ keys.update,
625
+ )
626
+ self.list = to_streamed_response_wrapper(
627
+ keys.list,
628
+ )
629
+ self.delete = to_streamed_response_wrapper(
630
+ keys.delete,
631
+ )
632
+ self.retrieve_agents = to_streamed_response_wrapper(
633
+ keys.retrieve_agents,
634
+ )
635
+
636
+
637
+ class AsyncKeysResourceWithStreamingResponse:
638
+ def __init__(self, keys: AsyncKeysResource) -> None:
639
+ self._keys = keys
640
+
641
+ self.create = async_to_streamed_response_wrapper(
642
+ keys.create,
643
+ )
644
+ self.retrieve = async_to_streamed_response_wrapper(
645
+ keys.retrieve,
646
+ )
647
+ self.update = async_to_streamed_response_wrapper(
648
+ keys.update,
649
+ )
650
+ self.list = async_to_streamed_response_wrapper(
651
+ keys.list,
652
+ )
653
+ self.delete = async_to_streamed_response_wrapper(
654
+ keys.delete,
655
+ )
656
+ self.retrieve_agents = async_to_streamed_response_wrapper(
657
+ keys.retrieve_agents,
658
+ )