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,421 @@
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.agents import function_create_params, function_update_params
19
+ from ...types.agents.function_create_response import FunctionCreateResponse
20
+ from ...types.agents.function_delete_response import FunctionDeleteResponse
21
+ from ...types.agents.function_update_response import FunctionUpdateResponse
22
+
23
+ __all__ = ["FunctionsResource", "AsyncFunctionsResource"]
24
+
25
+
26
+ class FunctionsResource(SyncAPIResource):
27
+ @cached_property
28
+ def with_raw_response(self) -> FunctionsResourceWithRawResponse:
29
+ """
30
+ This property can be used as a prefix for any HTTP method call to return
31
+ the raw response object instead of the parsed content.
32
+
33
+ For more information, see https://www.github.com/digitalocean/genai-python#accessing-raw-response-data-eg-headers
34
+ """
35
+ return FunctionsResourceWithRawResponse(self)
36
+
37
+ @cached_property
38
+ def with_streaming_response(self) -> FunctionsResourceWithStreamingResponse:
39
+ """
40
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
41
+
42
+ For more information, see https://www.github.com/digitalocean/genai-python#with_streaming_response
43
+ """
44
+ return FunctionsResourceWithStreamingResponse(self)
45
+
46
+ def create(
47
+ self,
48
+ path_agent_uuid: str,
49
+ *,
50
+ body_agent_uuid: str | NotGiven = NOT_GIVEN,
51
+ description: str | NotGiven = NOT_GIVEN,
52
+ faas_name: str | NotGiven = NOT_GIVEN,
53
+ faas_namespace: str | NotGiven = NOT_GIVEN,
54
+ function_name: str | NotGiven = NOT_GIVEN,
55
+ input_schema: object | NotGiven = NOT_GIVEN,
56
+ output_schema: object | NotGiven = NOT_GIVEN,
57
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
58
+ # The extra values given here take precedence over values defined on the client or passed to this method.
59
+ extra_headers: Headers | None = None,
60
+ extra_query: Query | None = None,
61
+ extra_body: Body | None = None,
62
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
63
+ ) -> FunctionCreateResponse:
64
+ """
65
+ To create a function route for an agent, send a POST request to
66
+ `/v2/gen-ai/agents/{agent_uuid}/functions`.
67
+
68
+ Args:
69
+ extra_headers: Send extra headers
70
+
71
+ extra_query: Add additional query parameters to the request
72
+
73
+ extra_body: Add additional JSON properties to the request
74
+
75
+ timeout: Override the client-level default timeout for this request, in seconds
76
+ """
77
+ if not path_agent_uuid:
78
+ raise ValueError(f"Expected a non-empty value for `path_agent_uuid` but received {path_agent_uuid!r}")
79
+ return self._post(
80
+ f"/v2/genai/agents/{path_agent_uuid}/functions",
81
+ body=maybe_transform(
82
+ {
83
+ "body_agent_uuid": body_agent_uuid,
84
+ "description": description,
85
+ "faas_name": faas_name,
86
+ "faas_namespace": faas_namespace,
87
+ "function_name": function_name,
88
+ "input_schema": input_schema,
89
+ "output_schema": output_schema,
90
+ },
91
+ function_create_params.FunctionCreateParams,
92
+ ),
93
+ options=make_request_options(
94
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
95
+ ),
96
+ cast_to=FunctionCreateResponse,
97
+ )
98
+
99
+ def update(
100
+ self,
101
+ path_function_uuid: str,
102
+ *,
103
+ path_agent_uuid: str,
104
+ body_agent_uuid: str | NotGiven = NOT_GIVEN,
105
+ description: str | NotGiven = NOT_GIVEN,
106
+ faas_name: str | NotGiven = NOT_GIVEN,
107
+ faas_namespace: str | NotGiven = NOT_GIVEN,
108
+ function_name: str | NotGiven = NOT_GIVEN,
109
+ body_function_uuid: str | NotGiven = NOT_GIVEN,
110
+ input_schema: object | NotGiven = NOT_GIVEN,
111
+ output_schema: object | NotGiven = NOT_GIVEN,
112
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
113
+ # The extra values given here take precedence over values defined on the client or passed to this method.
114
+ extra_headers: Headers | None = None,
115
+ extra_query: Query | None = None,
116
+ extra_body: Body | None = None,
117
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
118
+ ) -> FunctionUpdateResponse:
119
+ """
120
+ To update the function route, send a PUT request to
121
+ `/v2/gen-ai/agents/{agent_uuid}/functions/{function_uuid}`.
122
+
123
+ Args:
124
+ extra_headers: Send extra headers
125
+
126
+ extra_query: Add additional query parameters to the request
127
+
128
+ extra_body: Add additional JSON properties to the request
129
+
130
+ timeout: Override the client-level default timeout for this request, in seconds
131
+ """
132
+ if not path_agent_uuid:
133
+ raise ValueError(f"Expected a non-empty value for `path_agent_uuid` but received {path_agent_uuid!r}")
134
+ if not path_function_uuid:
135
+ raise ValueError(f"Expected a non-empty value for `path_function_uuid` but received {path_function_uuid!r}")
136
+ return self._put(
137
+ f"/v2/genai/agents/{path_agent_uuid}/functions/{path_function_uuid}",
138
+ body=maybe_transform(
139
+ {
140
+ "body_agent_uuid": body_agent_uuid,
141
+ "description": description,
142
+ "faas_name": faas_name,
143
+ "faas_namespace": faas_namespace,
144
+ "function_name": function_name,
145
+ "body_function_uuid": body_function_uuid,
146
+ "input_schema": input_schema,
147
+ "output_schema": output_schema,
148
+ },
149
+ function_update_params.FunctionUpdateParams,
150
+ ),
151
+ options=make_request_options(
152
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
153
+ ),
154
+ cast_to=FunctionUpdateResponse,
155
+ )
156
+
157
+ def delete(
158
+ self,
159
+ function_uuid: str,
160
+ *,
161
+ agent_uuid: str,
162
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
163
+ # The extra values given here take precedence over values defined on the client or passed to this method.
164
+ extra_headers: Headers | None = None,
165
+ extra_query: Query | None = None,
166
+ extra_body: Body | None = None,
167
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
168
+ ) -> FunctionDeleteResponse:
169
+ """
170
+ To delete a function route from an agent, send a DELETE request to
171
+ `/v2/gen-ai/agents/{agent_uuid}/functions/{function_uuid}`.
172
+
173
+ Args:
174
+ extra_headers: Send extra headers
175
+
176
+ extra_query: Add additional query parameters to the request
177
+
178
+ extra_body: Add additional JSON properties to the request
179
+
180
+ timeout: Override the client-level default timeout for this request, in seconds
181
+ """
182
+ if not agent_uuid:
183
+ raise ValueError(f"Expected a non-empty value for `agent_uuid` but received {agent_uuid!r}")
184
+ if not function_uuid:
185
+ raise ValueError(f"Expected a non-empty value for `function_uuid` but received {function_uuid!r}")
186
+ return self._delete(
187
+ f"/v2/genai/agents/{agent_uuid}/functions/{function_uuid}",
188
+ options=make_request_options(
189
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
190
+ ),
191
+ cast_to=FunctionDeleteResponse,
192
+ )
193
+
194
+
195
+ class AsyncFunctionsResource(AsyncAPIResource):
196
+ @cached_property
197
+ def with_raw_response(self) -> AsyncFunctionsResourceWithRawResponse:
198
+ """
199
+ This property can be used as a prefix for any HTTP method call to return
200
+ the raw response object instead of the parsed content.
201
+
202
+ For more information, see https://www.github.com/digitalocean/genai-python#accessing-raw-response-data-eg-headers
203
+ """
204
+ return AsyncFunctionsResourceWithRawResponse(self)
205
+
206
+ @cached_property
207
+ def with_streaming_response(self) -> AsyncFunctionsResourceWithStreamingResponse:
208
+ """
209
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
210
+
211
+ For more information, see https://www.github.com/digitalocean/genai-python#with_streaming_response
212
+ """
213
+ return AsyncFunctionsResourceWithStreamingResponse(self)
214
+
215
+ async def create(
216
+ self,
217
+ path_agent_uuid: str,
218
+ *,
219
+ body_agent_uuid: str | NotGiven = NOT_GIVEN,
220
+ description: str | NotGiven = NOT_GIVEN,
221
+ faas_name: str | NotGiven = NOT_GIVEN,
222
+ faas_namespace: str | NotGiven = NOT_GIVEN,
223
+ function_name: str | NotGiven = NOT_GIVEN,
224
+ input_schema: object | NotGiven = NOT_GIVEN,
225
+ output_schema: object | NotGiven = NOT_GIVEN,
226
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
227
+ # The extra values given here take precedence over values defined on the client or passed to this method.
228
+ extra_headers: Headers | None = None,
229
+ extra_query: Query | None = None,
230
+ extra_body: Body | None = None,
231
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
232
+ ) -> FunctionCreateResponse:
233
+ """
234
+ To create a function route for an agent, send a POST request to
235
+ `/v2/gen-ai/agents/{agent_uuid}/functions`.
236
+
237
+ Args:
238
+ extra_headers: Send extra headers
239
+
240
+ extra_query: Add additional query parameters to the request
241
+
242
+ extra_body: Add additional JSON properties to the request
243
+
244
+ timeout: Override the client-level default timeout for this request, in seconds
245
+ """
246
+ if not path_agent_uuid:
247
+ raise ValueError(f"Expected a non-empty value for `path_agent_uuid` but received {path_agent_uuid!r}")
248
+ return await self._post(
249
+ f"/v2/genai/agents/{path_agent_uuid}/functions",
250
+ body=await async_maybe_transform(
251
+ {
252
+ "body_agent_uuid": body_agent_uuid,
253
+ "description": description,
254
+ "faas_name": faas_name,
255
+ "faas_namespace": faas_namespace,
256
+ "function_name": function_name,
257
+ "input_schema": input_schema,
258
+ "output_schema": output_schema,
259
+ },
260
+ function_create_params.FunctionCreateParams,
261
+ ),
262
+ options=make_request_options(
263
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
264
+ ),
265
+ cast_to=FunctionCreateResponse,
266
+ )
267
+
268
+ async def update(
269
+ self,
270
+ path_function_uuid: str,
271
+ *,
272
+ path_agent_uuid: str,
273
+ body_agent_uuid: str | NotGiven = NOT_GIVEN,
274
+ description: str | NotGiven = NOT_GIVEN,
275
+ faas_name: str | NotGiven = NOT_GIVEN,
276
+ faas_namespace: str | NotGiven = NOT_GIVEN,
277
+ function_name: str | NotGiven = NOT_GIVEN,
278
+ body_function_uuid: str | NotGiven = NOT_GIVEN,
279
+ input_schema: object | NotGiven = NOT_GIVEN,
280
+ output_schema: object | NotGiven = NOT_GIVEN,
281
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
282
+ # The extra values given here take precedence over values defined on the client or passed to this method.
283
+ extra_headers: Headers | None = None,
284
+ extra_query: Query | None = None,
285
+ extra_body: Body | None = None,
286
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
287
+ ) -> FunctionUpdateResponse:
288
+ """
289
+ To update the function route, send a PUT request to
290
+ `/v2/gen-ai/agents/{agent_uuid}/functions/{function_uuid}`.
291
+
292
+ Args:
293
+ extra_headers: Send extra headers
294
+
295
+ extra_query: Add additional query parameters to the request
296
+
297
+ extra_body: Add additional JSON properties to the request
298
+
299
+ timeout: Override the client-level default timeout for this request, in seconds
300
+ """
301
+ if not path_agent_uuid:
302
+ raise ValueError(f"Expected a non-empty value for `path_agent_uuid` but received {path_agent_uuid!r}")
303
+ if not path_function_uuid:
304
+ raise ValueError(f"Expected a non-empty value for `path_function_uuid` but received {path_function_uuid!r}")
305
+ return await self._put(
306
+ f"/v2/genai/agents/{path_agent_uuid}/functions/{path_function_uuid}",
307
+ body=await async_maybe_transform(
308
+ {
309
+ "body_agent_uuid": body_agent_uuid,
310
+ "description": description,
311
+ "faas_name": faas_name,
312
+ "faas_namespace": faas_namespace,
313
+ "function_name": function_name,
314
+ "body_function_uuid": body_function_uuid,
315
+ "input_schema": input_schema,
316
+ "output_schema": output_schema,
317
+ },
318
+ function_update_params.FunctionUpdateParams,
319
+ ),
320
+ options=make_request_options(
321
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
322
+ ),
323
+ cast_to=FunctionUpdateResponse,
324
+ )
325
+
326
+ async def delete(
327
+ self,
328
+ function_uuid: str,
329
+ *,
330
+ agent_uuid: str,
331
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
332
+ # The extra values given here take precedence over values defined on the client or passed to this method.
333
+ extra_headers: Headers | None = None,
334
+ extra_query: Query | None = None,
335
+ extra_body: Body | None = None,
336
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
337
+ ) -> FunctionDeleteResponse:
338
+ """
339
+ To delete a function route from an agent, send a DELETE request to
340
+ `/v2/gen-ai/agents/{agent_uuid}/functions/{function_uuid}`.
341
+
342
+ Args:
343
+ extra_headers: Send extra headers
344
+
345
+ extra_query: Add additional query parameters to the request
346
+
347
+ extra_body: Add additional JSON properties to the request
348
+
349
+ timeout: Override the client-level default timeout for this request, in seconds
350
+ """
351
+ if not agent_uuid:
352
+ raise ValueError(f"Expected a non-empty value for `agent_uuid` but received {agent_uuid!r}")
353
+ if not function_uuid:
354
+ raise ValueError(f"Expected a non-empty value for `function_uuid` but received {function_uuid!r}")
355
+ return await self._delete(
356
+ f"/v2/genai/agents/{agent_uuid}/functions/{function_uuid}",
357
+ options=make_request_options(
358
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
359
+ ),
360
+ cast_to=FunctionDeleteResponse,
361
+ )
362
+
363
+
364
+ class FunctionsResourceWithRawResponse:
365
+ def __init__(self, functions: FunctionsResource) -> None:
366
+ self._functions = functions
367
+
368
+ self.create = to_raw_response_wrapper(
369
+ functions.create,
370
+ )
371
+ self.update = to_raw_response_wrapper(
372
+ functions.update,
373
+ )
374
+ self.delete = to_raw_response_wrapper(
375
+ functions.delete,
376
+ )
377
+
378
+
379
+ class AsyncFunctionsResourceWithRawResponse:
380
+ def __init__(self, functions: AsyncFunctionsResource) -> None:
381
+ self._functions = functions
382
+
383
+ self.create = async_to_raw_response_wrapper(
384
+ functions.create,
385
+ )
386
+ self.update = async_to_raw_response_wrapper(
387
+ functions.update,
388
+ )
389
+ self.delete = async_to_raw_response_wrapper(
390
+ functions.delete,
391
+ )
392
+
393
+
394
+ class FunctionsResourceWithStreamingResponse:
395
+ def __init__(self, functions: FunctionsResource) -> None:
396
+ self._functions = functions
397
+
398
+ self.create = to_streamed_response_wrapper(
399
+ functions.create,
400
+ )
401
+ self.update = to_streamed_response_wrapper(
402
+ functions.update,
403
+ )
404
+ self.delete = to_streamed_response_wrapper(
405
+ functions.delete,
406
+ )
407
+
408
+
409
+ class AsyncFunctionsResourceWithStreamingResponse:
410
+ def __init__(self, functions: AsyncFunctionsResource) -> None:
411
+ self._functions = functions
412
+
413
+ self.create = async_to_streamed_response_wrapper(
414
+ functions.create,
415
+ )
416
+ self.update = async_to_streamed_response_wrapper(
417
+ functions.update,
418
+ )
419
+ self.delete = async_to_streamed_response_wrapper(
420
+ functions.delete,
421
+ )