blaxel 0.64.0__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 (261) hide show
  1. blaxel/__init__.py +8 -0
  2. blaxel/agents/__init__.py +5 -0
  3. blaxel/agents/chain.py +153 -0
  4. blaxel/agents/chat.py +286 -0
  5. blaxel/agents/decorator.py +208 -0
  6. blaxel/agents/thread.py +24 -0
  7. blaxel/agents/voice/openai.py +255 -0
  8. blaxel/agents/voice/utils.py +25 -0
  9. blaxel/api/__init__.py +1 -0
  10. blaxel/api/agents/__init__.py +0 -0
  11. blaxel/api/agents/create_agent.py +155 -0
  12. blaxel/api/agents/delete_agent.py +146 -0
  13. blaxel/api/agents/get_agent.py +146 -0
  14. blaxel/api/agents/get_agent_logs.py +151 -0
  15. blaxel/api/agents/get_agent_metrics.py +150 -0
  16. blaxel/api/agents/get_agent_trace_ids.py +201 -0
  17. blaxel/api/agents/list_agent_revisions.py +155 -0
  18. blaxel/api/agents/list_agents.py +127 -0
  19. blaxel/api/agents/update_agent.py +168 -0
  20. blaxel/api/configurations/__init__.py +0 -0
  21. blaxel/api/configurations/get_configuration.py +122 -0
  22. blaxel/api/default/__init__.py +0 -0
  23. blaxel/api/default/get_trace.py +150 -0
  24. blaxel/api/default/get_trace_ids.py +218 -0
  25. blaxel/api/default/get_trace_logs.py +186 -0
  26. blaxel/api/default/list_mcp_hub_definitions.py +127 -0
  27. blaxel/api/functions/__init__.py +0 -0
  28. blaxel/api/functions/create_function.py +155 -0
  29. blaxel/api/functions/delete_function.py +146 -0
  30. blaxel/api/functions/get_function.py +146 -0
  31. blaxel/api/functions/get_function_logs.py +151 -0
  32. blaxel/api/functions/get_function_metrics.py +150 -0
  33. blaxel/api/functions/get_function_trace_ids.py +201 -0
  34. blaxel/api/functions/list_function_revisions.py +158 -0
  35. blaxel/api/functions/list_functions.py +131 -0
  36. blaxel/api/functions/update_function.py +168 -0
  37. blaxel/api/integrations/__init__.py +0 -0
  38. blaxel/api/integrations/create_integration_connection.py +167 -0
  39. blaxel/api/integrations/delete_integration_connection.py +158 -0
  40. blaxel/api/integrations/get_integration.py +97 -0
  41. blaxel/api/integrations/get_integration_connection.py +158 -0
  42. blaxel/api/integrations/get_integration_connection_model.py +104 -0
  43. blaxel/api/integrations/get_integration_connection_model_endpoint_configurations.py +97 -0
  44. blaxel/api/integrations/list_integration_connection_models.py +97 -0
  45. blaxel/api/integrations/list_integration_connections.py +139 -0
  46. blaxel/api/integrations/update_integration_connection.py +180 -0
  47. blaxel/api/invitations/__init__.py +0 -0
  48. blaxel/api/invitations/list_all_pending_invitations.py +142 -0
  49. blaxel/api/knowledgebases/__init__.py +0 -0
  50. blaxel/api/knowledgebases/create_knowledgebase.py +163 -0
  51. blaxel/api/knowledgebases/delete_knowledgebase.py +154 -0
  52. blaxel/api/knowledgebases/get_knowledgebase.py +154 -0
  53. blaxel/api/knowledgebases/list_knowledgebase_revisions.py +158 -0
  54. blaxel/api/knowledgebases/list_knowledgebases.py +139 -0
  55. blaxel/api/knowledgebases/update_knowledgebase.py +176 -0
  56. blaxel/api/locations/__init__.py +0 -0
  57. blaxel/api/locations/list_locations.py +139 -0
  58. blaxel/api/metrics/__init__.py +0 -0
  59. blaxel/api/metrics/get_metrics.py +130 -0
  60. blaxel/api/models/__init__.py +0 -0
  61. blaxel/api/models/create_model.py +163 -0
  62. blaxel/api/models/delete_model.py +154 -0
  63. blaxel/api/models/get_model.py +154 -0
  64. blaxel/api/models/get_model_logs.py +155 -0
  65. blaxel/api/models/get_model_metrics.py +158 -0
  66. blaxel/api/models/get_model_trace_ids.py +201 -0
  67. blaxel/api/models/list_model_revisions.py +158 -0
  68. blaxel/api/models/list_models.py +135 -0
  69. blaxel/api/models/update_model.py +176 -0
  70. blaxel/api/policies/__init__.py +0 -0
  71. blaxel/api/policies/create_policy.py +167 -0
  72. blaxel/api/policies/delete_policy.py +154 -0
  73. blaxel/api/policies/get_policy.py +154 -0
  74. blaxel/api/policies/list_policies.py +139 -0
  75. blaxel/api/policies/update_policy.py +180 -0
  76. blaxel/api/privateclusters/__init__.py +0 -0
  77. blaxel/api/privateclusters/create_private_cluster.py +132 -0
  78. blaxel/api/privateclusters/delete_private_cluster.py +156 -0
  79. blaxel/api/privateclusters/get_private_cluster.py +159 -0
  80. blaxel/api/privateclusters/get_private_cluster_health.py +97 -0
  81. blaxel/api/privateclusters/list_private_clusters.py +140 -0
  82. blaxel/api/privateclusters/update_private_cluster.py +156 -0
  83. blaxel/api/privateclusters/update_private_cluster_health.py +97 -0
  84. blaxel/api/service_accounts/__init__.py +0 -0
  85. blaxel/api/service_accounts/create_api_key_for_service_account.py +177 -0
  86. blaxel/api/service_accounts/create_workspace_service_account.py +170 -0
  87. blaxel/api/service_accounts/delete_api_key_for_service_account.py +104 -0
  88. blaxel/api/service_accounts/delete_workspace_service_account.py +160 -0
  89. blaxel/api/service_accounts/get_workspace_service_accounts.py +141 -0
  90. blaxel/api/service_accounts/list_api_keys_for_service_account.py +163 -0
  91. blaxel/api/service_accounts/update_workspace_service_account.py +183 -0
  92. blaxel/api/store/__init__.py +0 -0
  93. blaxel/api/store/get_store_agent.py +146 -0
  94. blaxel/api/store/get_store_function.py +146 -0
  95. blaxel/api/store/list_store_agents.py +131 -0
  96. blaxel/api/store/list_store_functions.py +131 -0
  97. blaxel/api/workspaces/__init__.py +0 -0
  98. blaxel/api/workspaces/accept_workspace_invitation.py +161 -0
  99. blaxel/api/workspaces/create_worspace.py +163 -0
  100. blaxel/api/workspaces/decline_workspace_invitation.py +158 -0
  101. blaxel/api/workspaces/delete_workspace.py +154 -0
  102. blaxel/api/workspaces/get_workspace.py +154 -0
  103. blaxel/api/workspaces/invite_workspace_user.py +174 -0
  104. blaxel/api/workspaces/leave_workspace.py +161 -0
  105. blaxel/api/workspaces/list_workspace_users.py +139 -0
  106. blaxel/api/workspaces/list_workspaces.py +139 -0
  107. blaxel/api/workspaces/remove_workspace_user.py +101 -0
  108. blaxel/api/workspaces/update_workspace.py +176 -0
  109. blaxel/api/workspaces/update_workspace_user_role.py +187 -0
  110. blaxel/authentication/__init__.py +45 -0
  111. blaxel/authentication/apikey.py +50 -0
  112. blaxel/authentication/authentication.py +176 -0
  113. blaxel/authentication/clientcredentials.py +103 -0
  114. blaxel/authentication/credentials.py +295 -0
  115. blaxel/authentication/device_mode.py +197 -0
  116. blaxel/client.py +281 -0
  117. blaxel/common/__init__.py +17 -0
  118. blaxel/common/error.py +27 -0
  119. blaxel/common/instrumentation.py +317 -0
  120. blaxel/common/logger.py +60 -0
  121. blaxel/common/secrets.py +39 -0
  122. blaxel/common/settings.py +150 -0
  123. blaxel/common/slugify.py +18 -0
  124. blaxel/common/utils.py +34 -0
  125. blaxel/deploy/__init__.py +8 -0
  126. blaxel/deploy/deploy.py +316 -0
  127. blaxel/deploy/format.py +46 -0
  128. blaxel/deploy/parser.py +192 -0
  129. blaxel/errors.py +16 -0
  130. blaxel/functions/__init__.py +7 -0
  131. blaxel/functions/common.py +228 -0
  132. blaxel/functions/decorator.py +64 -0
  133. blaxel/functions/local/local.py +48 -0
  134. blaxel/functions/mcp/client.py +96 -0
  135. blaxel/functions/mcp/mcp.py +168 -0
  136. blaxel/functions/mcp/utils.py +56 -0
  137. blaxel/functions/remote/remote.py +183 -0
  138. blaxel/models/__init__.py +233 -0
  139. blaxel/models/acl.py +133 -0
  140. blaxel/models/agent.py +126 -0
  141. blaxel/models/agent_chain.py +88 -0
  142. blaxel/models/agent_spec.py +346 -0
  143. blaxel/models/api_key.py +142 -0
  144. blaxel/models/configuration.py +85 -0
  145. blaxel/models/continent.py +70 -0
  146. blaxel/models/core_event.py +97 -0
  147. blaxel/models/core_spec.py +249 -0
  148. blaxel/models/core_spec_configurations.py +77 -0
  149. blaxel/models/country.py +70 -0
  150. blaxel/models/create_api_key_for_service_account_body.py +69 -0
  151. blaxel/models/create_workspace_service_account_body.py +71 -0
  152. blaxel/models/create_workspace_service_account_response_200.py +105 -0
  153. blaxel/models/delete_workspace_service_account_response_200.py +96 -0
  154. blaxel/models/entrypoint.py +96 -0
  155. blaxel/models/entrypoint_env.py +45 -0
  156. blaxel/models/flavor.py +70 -0
  157. blaxel/models/form.py +120 -0
  158. blaxel/models/form_config.py +45 -0
  159. blaxel/models/form_oauthomitempty.py +45 -0
  160. blaxel/models/form_secrets.py +45 -0
  161. blaxel/models/function.py +126 -0
  162. blaxel/models/function_kit.py +97 -0
  163. blaxel/models/function_spec.py +310 -0
  164. blaxel/models/get_trace_ids_response_200.py +45 -0
  165. blaxel/models/get_trace_logs_response_200.py +45 -0
  166. blaxel/models/get_trace_response_200.py +45 -0
  167. blaxel/models/get_workspace_service_accounts_response_200_item.py +96 -0
  168. blaxel/models/histogram_bucket.py +79 -0
  169. blaxel/models/histogram_stats.py +88 -0
  170. blaxel/models/integration_connection.py +96 -0
  171. blaxel/models/integration_connection_spec.py +114 -0
  172. blaxel/models/integration_connection_spec_config.py +45 -0
  173. blaxel/models/integration_connection_spec_secret.py +45 -0
  174. blaxel/models/integration_model.py +162 -0
  175. blaxel/models/integration_repository.py +88 -0
  176. blaxel/models/invite_workspace_user_body.py +60 -0
  177. blaxel/models/knowledgebase.py +126 -0
  178. blaxel/models/knowledgebase_spec.py +163 -0
  179. blaxel/models/knowledgebase_spec_options.py +45 -0
  180. blaxel/models/last_n_requests_metric.py +79 -0
  181. blaxel/models/latency_metric.py +144 -0
  182. blaxel/models/location_response.py +113 -0
  183. blaxel/models/mcp_definition.py +188 -0
  184. blaxel/models/mcp_definition_entrypoint.py +45 -0
  185. blaxel/models/mcp_definition_form.py +45 -0
  186. blaxel/models/metadata.py +139 -0
  187. blaxel/models/metadata_labels.py +45 -0
  188. blaxel/models/metric.py +79 -0
  189. blaxel/models/metrics.py +169 -0
  190. blaxel/models/metrics_models.py +45 -0
  191. blaxel/models/metrics_request_total_per_code.py +45 -0
  192. blaxel/models/metrics_rps_per_code.py +45 -0
  193. blaxel/models/model.py +126 -0
  194. blaxel/models/model_private_cluster.py +79 -0
  195. blaxel/models/model_spec.py +249 -0
  196. blaxel/models/o_auth.py +72 -0
  197. blaxel/models/owner_fields.py +70 -0
  198. blaxel/models/pending_invitation.py +124 -0
  199. blaxel/models/pending_invitation_accept.py +85 -0
  200. blaxel/models/pending_invitation_render.py +147 -0
  201. blaxel/models/pending_invitation_render_invited_by.py +88 -0
  202. blaxel/models/pending_invitation_render_workspace.py +70 -0
  203. blaxel/models/pending_invitation_workspace_details.py +72 -0
  204. blaxel/models/pod_template_spec.py +45 -0
  205. blaxel/models/policy.py +96 -0
  206. blaxel/models/policy_location.py +70 -0
  207. blaxel/models/policy_max_tokens.py +106 -0
  208. blaxel/models/policy_spec.py +151 -0
  209. blaxel/models/private_cluster.py +183 -0
  210. blaxel/models/private_location.py +61 -0
  211. blaxel/models/repository.py +70 -0
  212. blaxel/models/request_duration_over_time_metric.py +97 -0
  213. blaxel/models/request_duration_over_time_metrics.py +80 -0
  214. blaxel/models/request_total_by_origin_metric.py +115 -0
  215. blaxel/models/request_total_by_origin_metric_request_total_by_origin.py +45 -0
  216. blaxel/models/request_total_by_origin_metric_request_total_by_origin_and_code.py +45 -0
  217. blaxel/models/request_total_metric.py +123 -0
  218. blaxel/models/request_total_metric_request_total_per_code.py +45 -0
  219. blaxel/models/request_total_metric_rps_per_code.py +45 -0
  220. blaxel/models/resource_log.py +79 -0
  221. blaxel/models/resource_metrics.py +270 -0
  222. blaxel/models/resource_metrics_request_total_per_code.py +45 -0
  223. blaxel/models/resource_metrics_rps_per_code.py +45 -0
  224. blaxel/models/revision_configuration.py +97 -0
  225. blaxel/models/revision_metadata.py +124 -0
  226. blaxel/models/runtime.py +196 -0
  227. blaxel/models/runtime_startup_probe.py +45 -0
  228. blaxel/models/serverless_config.py +80 -0
  229. blaxel/models/spec_configuration.py +70 -0
  230. blaxel/models/store_agent.py +178 -0
  231. blaxel/models/store_agent_labels.py +45 -0
  232. blaxel/models/store_configuration.py +151 -0
  233. blaxel/models/store_configuration_option.py +79 -0
  234. blaxel/models/store_function.py +211 -0
  235. blaxel/models/store_function_kit.py +97 -0
  236. blaxel/models/store_function_labels.py +45 -0
  237. blaxel/models/store_function_parameter.py +88 -0
  238. blaxel/models/time_fields.py +70 -0
  239. blaxel/models/token_rate_metric.py +88 -0
  240. blaxel/models/token_rate_metrics.py +120 -0
  241. blaxel/models/token_total_metric.py +106 -0
  242. blaxel/models/trace_ids_response.py +45 -0
  243. blaxel/models/update_workspace_service_account_body.py +69 -0
  244. blaxel/models/update_workspace_service_account_response_200.py +96 -0
  245. blaxel/models/update_workspace_user_role_body.py +60 -0
  246. blaxel/models/websocket_channel.py +88 -0
  247. blaxel/models/workspace.py +148 -0
  248. blaxel/models/workspace_labels.py +45 -0
  249. blaxel/models/workspace_user.py +115 -0
  250. blaxel/py.typed +1 -0
  251. blaxel/run.py +108 -0
  252. blaxel/serve/app.py +131 -0
  253. blaxel/serve/middlewares/__init__.py +10 -0
  254. blaxel/serve/middlewares/accesslog.py +32 -0
  255. blaxel/serve/middlewares/processtime.py +28 -0
  256. blaxel/types.py +46 -0
  257. blaxel-0.64.0.dist-info/METADATA +96 -0
  258. blaxel-0.64.0.dist-info/RECORD +261 -0
  259. blaxel-0.64.0.dist-info/WHEEL +4 -0
  260. blaxel-0.64.0.dist-info/entry_points.txt +2 -0
  261. blaxel-0.64.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,151 @@
1
+ from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..types import UNSET, Unset
7
+
8
+ if TYPE_CHECKING:
9
+ from ..models.store_configuration_option import StoreConfigurationOption
10
+
11
+
12
+ T = TypeVar("T", bound="StoreConfiguration")
13
+
14
+
15
+ @_attrs_define
16
+ class StoreConfiguration:
17
+ """Store configuration for resources (eg: agent, function, etc)
18
+
19
+ Attributes:
20
+ available_models (Union[Unset, list[str]]): Available models for the configuration
21
+ description (Union[Unset, str]): Store configuration description
22
+ display_name (Union[Unset, str]): Store configuration display name
23
+ if_ (Union[Unset, str]): Conditional rendering for the configuration, example: provider === 'openai'
24
+ name (Union[Unset, str]): Store configuration name
25
+ options (Union[Unset, list['StoreConfigurationOption']]):
26
+ required (Union[Unset, bool]): Store configuration required
27
+ secret (Union[Unset, bool]): Store configuration secret
28
+ type_ (Union[Unset, str]): Store configuration type
29
+ """
30
+
31
+ available_models: Union[Unset, list[str]] = UNSET
32
+ description: Union[Unset, str] = UNSET
33
+ display_name: Union[Unset, str] = UNSET
34
+ if_: Union[Unset, str] = UNSET
35
+ name: Union[Unset, str] = UNSET
36
+ options: Union[Unset, list["StoreConfigurationOption"]] = UNSET
37
+ required: Union[Unset, bool] = UNSET
38
+ secret: Union[Unset, bool] = UNSET
39
+ type_: Union[Unset, str] = UNSET
40
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
41
+
42
+ def to_dict(self) -> dict[str, Any]:
43
+ available_models: Union[Unset, list[str]] = UNSET
44
+ if not isinstance(self.available_models, Unset):
45
+ available_models = self.available_models
46
+
47
+ description = self.description
48
+
49
+ display_name = self.display_name
50
+
51
+ if_ = self.if_
52
+
53
+ name = self.name
54
+
55
+ options: Union[Unset, list[dict[str, Any]]] = UNSET
56
+ if not isinstance(self.options, Unset):
57
+ options = []
58
+ for options_item_data in self.options:
59
+ options_item = options_item_data.to_dict()
60
+ options.append(options_item)
61
+
62
+ required = self.required
63
+
64
+ secret = self.secret
65
+
66
+ type_ = self.type_
67
+
68
+ field_dict: dict[str, Any] = {}
69
+ field_dict.update(self.additional_properties)
70
+ field_dict.update({})
71
+ if available_models is not UNSET:
72
+ field_dict["availableModels"] = available_models
73
+ if description is not UNSET:
74
+ field_dict["description"] = description
75
+ if display_name is not UNSET:
76
+ field_dict["displayName"] = display_name
77
+ if if_ is not UNSET:
78
+ field_dict["if"] = if_
79
+ if name is not UNSET:
80
+ field_dict["name"] = name
81
+ if options is not UNSET:
82
+ field_dict["options"] = options
83
+ if required is not UNSET:
84
+ field_dict["required"] = required
85
+ if secret is not UNSET:
86
+ field_dict["secret"] = secret
87
+ if type_ is not UNSET:
88
+ field_dict["type"] = type_
89
+
90
+ return field_dict
91
+
92
+ @classmethod
93
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
94
+ from ..models.store_configuration_option import StoreConfigurationOption
95
+
96
+ if not src_dict:
97
+ return None
98
+ d = src_dict.copy()
99
+ available_models = cast(list[str], d.pop("availableModels", UNSET))
100
+
101
+ description = d.pop("description", UNSET)
102
+
103
+ display_name = d.pop("displayName", UNSET)
104
+
105
+ if_ = d.pop("if", UNSET)
106
+
107
+ name = d.pop("name", UNSET)
108
+
109
+ options = []
110
+ _options = d.pop("options", UNSET)
111
+ for options_item_data in _options or []:
112
+ options_item = StoreConfigurationOption.from_dict(options_item_data)
113
+
114
+ options.append(options_item)
115
+
116
+ required = d.pop("required", UNSET)
117
+
118
+ secret = d.pop("secret", UNSET)
119
+
120
+ type_ = d.pop("type", UNSET)
121
+
122
+ store_configuration = cls(
123
+ available_models=available_models,
124
+ description=description,
125
+ display_name=display_name,
126
+ if_=if_,
127
+ name=name,
128
+ options=options,
129
+ required=required,
130
+ secret=secret,
131
+ type_=type_,
132
+ )
133
+
134
+ store_configuration.additional_properties = d
135
+ return store_configuration
136
+
137
+ @property
138
+ def additional_keys(self) -> list[str]:
139
+ return list(self.additional_properties.keys())
140
+
141
+ def __getitem__(self, key: str) -> Any:
142
+ return self.additional_properties[key]
143
+
144
+ def __setitem__(self, key: str, value: Any) -> None:
145
+ self.additional_properties[key] = value
146
+
147
+ def __delitem__(self, key: str) -> None:
148
+ del self.additional_properties[key]
149
+
150
+ def __contains__(self, key: str) -> bool:
151
+ return key in self.additional_properties
@@ -0,0 +1,79 @@
1
+ from typing import Any, TypeVar, Union
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..types import UNSET, Unset
7
+
8
+ T = TypeVar("T", bound="StoreConfigurationOption")
9
+
10
+
11
+ @_attrs_define
12
+ class StoreConfigurationOption:
13
+ """Store configuration options for a select type configuration
14
+
15
+ Attributes:
16
+ if_ (Union[Unset, str]): Conditional rendering for the configuration option, example: provider === 'openai'
17
+ label (Union[Unset, str]): Store configuration option label
18
+ value (Union[Unset, str]): Store configuration option value
19
+ """
20
+
21
+ if_: Union[Unset, str] = UNSET
22
+ label: Union[Unset, str] = UNSET
23
+ value: Union[Unset, str] = UNSET
24
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
25
+
26
+ def to_dict(self) -> dict[str, Any]:
27
+ if_ = self.if_
28
+
29
+ label = self.label
30
+
31
+ value = self.value
32
+
33
+ field_dict: dict[str, Any] = {}
34
+ field_dict.update(self.additional_properties)
35
+ field_dict.update({})
36
+ if if_ is not UNSET:
37
+ field_dict["if"] = if_
38
+ if label is not UNSET:
39
+ field_dict["label"] = label
40
+ if value is not UNSET:
41
+ field_dict["value"] = value
42
+
43
+ return field_dict
44
+
45
+ @classmethod
46
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
47
+ if not src_dict:
48
+ return None
49
+ d = src_dict.copy()
50
+ if_ = d.pop("if", UNSET)
51
+
52
+ label = d.pop("label", UNSET)
53
+
54
+ value = d.pop("value", UNSET)
55
+
56
+ store_configuration_option = cls(
57
+ if_=if_,
58
+ label=label,
59
+ value=value,
60
+ )
61
+
62
+ store_configuration_option.additional_properties = d
63
+ return store_configuration_option
64
+
65
+ @property
66
+ def additional_keys(self) -> list[str]:
67
+ return list(self.additional_properties.keys())
68
+
69
+ def __getitem__(self, key: str) -> Any:
70
+ return self.additional_properties[key]
71
+
72
+ def __setitem__(self, key: str, value: Any) -> None:
73
+ self.additional_properties[key] = value
74
+
75
+ def __delitem__(self, key: str) -> None:
76
+ del self.additional_properties[key]
77
+
78
+ def __contains__(self, key: str) -> bool:
79
+ return key in self.additional_properties
@@ -0,0 +1,211 @@
1
+ from typing import TYPE_CHECKING, Any, TypeVar, Union
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..types import UNSET, Unset
7
+
8
+ if TYPE_CHECKING:
9
+ from ..models.store_configuration import StoreConfiguration
10
+ from ..models.store_function_kit import StoreFunctionKit
11
+ from ..models.store_function_labels import StoreFunctionLabels
12
+ from ..models.store_function_parameter import StoreFunctionParameter
13
+
14
+
15
+ T = TypeVar("T", bound="StoreFunction")
16
+
17
+
18
+ @_attrs_define
19
+ class StoreFunction:
20
+ """Store function
21
+
22
+ Attributes:
23
+ created_at (Union[Unset, str]): The date and time when the resource was created
24
+ updated_at (Union[Unset, str]): The date and time when the resource was updated
25
+ created_by (Union[Unset, str]): The user or service account who created the resource
26
+ updated_by (Union[Unset, str]): The user or service account who updated the resource
27
+ configuration (Union[Unset, list['StoreConfiguration']]): Store function configuration
28
+ description (Union[Unset, str]): Store function description
29
+ display_name (Union[Unset, str]): Store function display name
30
+ image (Union[Unset, str]): Store function image
31
+ kit (Union[Unset, list['StoreFunctionKit']]): Store function kit
32
+ labels (Union[Unset, StoreFunctionLabels]): Store function labels
33
+ name (Union[Unset, str]): Store function name
34
+ parameters (Union[Unset, list['StoreFunctionParameter']]): Store function parameters
35
+ """
36
+
37
+ created_at: Union[Unset, str] = UNSET
38
+ updated_at: Union[Unset, str] = UNSET
39
+ created_by: Union[Unset, str] = UNSET
40
+ updated_by: Union[Unset, str] = UNSET
41
+ configuration: Union[Unset, list["StoreConfiguration"]] = UNSET
42
+ description: Union[Unset, str] = UNSET
43
+ display_name: Union[Unset, str] = UNSET
44
+ image: Union[Unset, str] = UNSET
45
+ kit: Union[Unset, list["StoreFunctionKit"]] = UNSET
46
+ labels: Union[Unset, "StoreFunctionLabels"] = UNSET
47
+ name: Union[Unset, str] = UNSET
48
+ parameters: Union[Unset, list["StoreFunctionParameter"]] = UNSET
49
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
50
+
51
+ def to_dict(self) -> dict[str, Any]:
52
+ created_at = self.created_at
53
+
54
+ updated_at = self.updated_at
55
+
56
+ created_by = self.created_by
57
+
58
+ updated_by = self.updated_by
59
+
60
+ configuration: Union[Unset, list[dict[str, Any]]] = UNSET
61
+ if not isinstance(self.configuration, Unset):
62
+ configuration = []
63
+ for configuration_item_data in self.configuration:
64
+ configuration_item = configuration_item_data.to_dict()
65
+ configuration.append(configuration_item)
66
+
67
+ description = self.description
68
+
69
+ display_name = self.display_name
70
+
71
+ image = self.image
72
+
73
+ kit: Union[Unset, list[dict[str, Any]]] = UNSET
74
+ if not isinstance(self.kit, Unset):
75
+ kit = []
76
+ for kit_item_data in self.kit:
77
+ kit_item = kit_item_data.to_dict()
78
+ kit.append(kit_item)
79
+
80
+ labels: Union[Unset, dict[str, Any]] = UNSET
81
+ if self.labels and not isinstance(self.labels, Unset) and not isinstance(self.labels, dict):
82
+ labels = self.labels.to_dict()
83
+ elif self.labels and isinstance(self.labels, dict):
84
+ labels = self.labels
85
+
86
+ name = self.name
87
+
88
+ parameters: Union[Unset, list[dict[str, Any]]] = UNSET
89
+ if not isinstance(self.parameters, Unset):
90
+ parameters = []
91
+ for parameters_item_data in self.parameters:
92
+ parameters_item = parameters_item_data.to_dict()
93
+ parameters.append(parameters_item)
94
+
95
+ field_dict: dict[str, Any] = {}
96
+ field_dict.update(self.additional_properties)
97
+ field_dict.update({})
98
+ if created_at is not UNSET:
99
+ field_dict["createdAt"] = created_at
100
+ if updated_at is not UNSET:
101
+ field_dict["updatedAt"] = updated_at
102
+ if created_by is not UNSET:
103
+ field_dict["createdBy"] = created_by
104
+ if updated_by is not UNSET:
105
+ field_dict["updatedBy"] = updated_by
106
+ if configuration is not UNSET:
107
+ field_dict["configuration"] = configuration
108
+ if description is not UNSET:
109
+ field_dict["description"] = description
110
+ if display_name is not UNSET:
111
+ field_dict["displayName"] = display_name
112
+ if image is not UNSET:
113
+ field_dict["image"] = image
114
+ if kit is not UNSET:
115
+ field_dict["kit"] = kit
116
+ if labels is not UNSET:
117
+ field_dict["labels"] = labels
118
+ if name is not UNSET:
119
+ field_dict["name"] = name
120
+ if parameters is not UNSET:
121
+ field_dict["parameters"] = parameters
122
+
123
+ return field_dict
124
+
125
+ @classmethod
126
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
127
+ from ..models.store_configuration import StoreConfiguration
128
+ from ..models.store_function_kit import StoreFunctionKit
129
+ from ..models.store_function_labels import StoreFunctionLabels
130
+ from ..models.store_function_parameter import StoreFunctionParameter
131
+
132
+ if not src_dict:
133
+ return None
134
+ d = src_dict.copy()
135
+ created_at = d.pop("createdAt", UNSET)
136
+
137
+ updated_at = d.pop("updatedAt", UNSET)
138
+
139
+ created_by = d.pop("createdBy", UNSET)
140
+
141
+ updated_by = d.pop("updatedBy", UNSET)
142
+
143
+ configuration = []
144
+ _configuration = d.pop("configuration", UNSET)
145
+ for configuration_item_data in _configuration or []:
146
+ configuration_item = StoreConfiguration.from_dict(configuration_item_data)
147
+
148
+ configuration.append(configuration_item)
149
+
150
+ description = d.pop("description", UNSET)
151
+
152
+ display_name = d.pop("displayName", UNSET)
153
+
154
+ image = d.pop("image", UNSET)
155
+
156
+ kit = []
157
+ _kit = d.pop("kit", UNSET)
158
+ for kit_item_data in _kit or []:
159
+ kit_item = StoreFunctionKit.from_dict(kit_item_data)
160
+
161
+ kit.append(kit_item)
162
+
163
+ _labels = d.pop("labels", UNSET)
164
+ labels: Union[Unset, StoreFunctionLabels]
165
+ if isinstance(_labels, Unset):
166
+ labels = UNSET
167
+ else:
168
+ labels = StoreFunctionLabels.from_dict(_labels)
169
+
170
+ name = d.pop("name", UNSET)
171
+
172
+ parameters = []
173
+ _parameters = d.pop("parameters", UNSET)
174
+ for parameters_item_data in _parameters or []:
175
+ parameters_item = StoreFunctionParameter.from_dict(parameters_item_data)
176
+
177
+ parameters.append(parameters_item)
178
+
179
+ store_function = cls(
180
+ created_at=created_at,
181
+ updated_at=updated_at,
182
+ created_by=created_by,
183
+ updated_by=updated_by,
184
+ configuration=configuration,
185
+ description=description,
186
+ display_name=display_name,
187
+ image=image,
188
+ kit=kit,
189
+ labels=labels,
190
+ name=name,
191
+ parameters=parameters,
192
+ )
193
+
194
+ store_function.additional_properties = d
195
+ return store_function
196
+
197
+ @property
198
+ def additional_keys(self) -> list[str]:
199
+ return list(self.additional_properties.keys())
200
+
201
+ def __getitem__(self, key: str) -> Any:
202
+ return self.additional_properties[key]
203
+
204
+ def __setitem__(self, key: str, value: Any) -> None:
205
+ self.additional_properties[key] = value
206
+
207
+ def __delitem__(self, key: str) -> None:
208
+ del self.additional_properties[key]
209
+
210
+ def __contains__(self, key: str) -> bool:
211
+ return key in self.additional_properties
@@ -0,0 +1,97 @@
1
+ from typing import TYPE_CHECKING, Any, TypeVar, Union
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..types import UNSET, Unset
7
+
8
+ if TYPE_CHECKING:
9
+ from ..models.store_function_parameter import StoreFunctionParameter
10
+
11
+
12
+ T = TypeVar("T", bound="StoreFunctionKit")
13
+
14
+
15
+ @_attrs_define
16
+ class StoreFunctionKit:
17
+ """Store function kit
18
+
19
+ Attributes:
20
+ description (Union[Unset, str]): Description of the function kit, very important for the agent to work with your
21
+ kit
22
+ name (Union[Unset, str]): The kit name, very important for the agent to work with your kit
23
+ parameters (Union[Unset, list['StoreFunctionParameter']]): Kit parameters, for your kit to be callable with an
24
+ Agent
25
+ """
26
+
27
+ description: Union[Unset, str] = UNSET
28
+ name: Union[Unset, str] = UNSET
29
+ parameters: Union[Unset, list["StoreFunctionParameter"]] = UNSET
30
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
31
+
32
+ def to_dict(self) -> dict[str, Any]:
33
+ description = self.description
34
+
35
+ name = self.name
36
+
37
+ parameters: Union[Unset, list[dict[str, Any]]] = UNSET
38
+ if not isinstance(self.parameters, Unset):
39
+ parameters = []
40
+ for parameters_item_data in self.parameters:
41
+ parameters_item = parameters_item_data.to_dict()
42
+ parameters.append(parameters_item)
43
+
44
+ field_dict: dict[str, Any] = {}
45
+ field_dict.update(self.additional_properties)
46
+ field_dict.update({})
47
+ if description is not UNSET:
48
+ field_dict["description"] = description
49
+ if name is not UNSET:
50
+ field_dict["name"] = name
51
+ if parameters is not UNSET:
52
+ field_dict["parameters"] = parameters
53
+
54
+ return field_dict
55
+
56
+ @classmethod
57
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
58
+ from ..models.store_function_parameter import StoreFunctionParameter
59
+
60
+ if not src_dict:
61
+ return None
62
+ d = src_dict.copy()
63
+ description = d.pop("description", UNSET)
64
+
65
+ name = d.pop("name", UNSET)
66
+
67
+ parameters = []
68
+ _parameters = d.pop("parameters", UNSET)
69
+ for parameters_item_data in _parameters or []:
70
+ parameters_item = StoreFunctionParameter.from_dict(parameters_item_data)
71
+
72
+ parameters.append(parameters_item)
73
+
74
+ store_function_kit = cls(
75
+ description=description,
76
+ name=name,
77
+ parameters=parameters,
78
+ )
79
+
80
+ store_function_kit.additional_properties = d
81
+ return store_function_kit
82
+
83
+ @property
84
+ def additional_keys(self) -> list[str]:
85
+ return list(self.additional_properties.keys())
86
+
87
+ def __getitem__(self, key: str) -> Any:
88
+ return self.additional_properties[key]
89
+
90
+ def __setitem__(self, key: str, value: Any) -> None:
91
+ self.additional_properties[key] = value
92
+
93
+ def __delitem__(self, key: str) -> None:
94
+ del self.additional_properties[key]
95
+
96
+ def __contains__(self, key: str) -> bool:
97
+ return key in self.additional_properties
@@ -0,0 +1,45 @@
1
+ from typing import Any, TypeVar
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ T = TypeVar("T", bound="StoreFunctionLabels")
7
+
8
+
9
+ @_attrs_define
10
+ class StoreFunctionLabels:
11
+ """Store function labels"""
12
+
13
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
14
+
15
+ def to_dict(self) -> dict[str, Any]:
16
+ field_dict: dict[str, Any] = {}
17
+ field_dict.update(self.additional_properties)
18
+
19
+ return field_dict
20
+
21
+ @classmethod
22
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
23
+ if not src_dict:
24
+ return None
25
+ d = src_dict.copy()
26
+ store_function_labels = cls()
27
+
28
+ store_function_labels.additional_properties = d
29
+ return store_function_labels
30
+
31
+ @property
32
+ def additional_keys(self) -> list[str]:
33
+ return list(self.additional_properties.keys())
34
+
35
+ def __getitem__(self, key: str) -> Any:
36
+ return self.additional_properties[key]
37
+
38
+ def __setitem__(self, key: str, value: Any) -> None:
39
+ self.additional_properties[key] = value
40
+
41
+ def __delitem__(self, key: str) -> None:
42
+ del self.additional_properties[key]
43
+
44
+ def __contains__(self, key: str) -> bool:
45
+ return key in self.additional_properties
@@ -0,0 +1,88 @@
1
+ from typing import Any, TypeVar, Union
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..types import UNSET, Unset
7
+
8
+ T = TypeVar("T", bound="StoreFunctionParameter")
9
+
10
+
11
+ @_attrs_define
12
+ class StoreFunctionParameter:
13
+ """Store function parameter
14
+
15
+ Attributes:
16
+ description (Union[Unset, str]): Store function parameter description
17
+ name (Union[Unset, str]): Store function parameter name
18
+ required (Union[Unset, bool]): Store function parameter required
19
+ type_ (Union[Unset, str]): Store function parameter type
20
+ """
21
+
22
+ description: Union[Unset, str] = UNSET
23
+ name: Union[Unset, str] = UNSET
24
+ required: Union[Unset, bool] = UNSET
25
+ type_: Union[Unset, str] = UNSET
26
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
27
+
28
+ def to_dict(self) -> dict[str, Any]:
29
+ description = self.description
30
+
31
+ name = self.name
32
+
33
+ required = self.required
34
+
35
+ type_ = self.type_
36
+
37
+ field_dict: dict[str, Any] = {}
38
+ field_dict.update(self.additional_properties)
39
+ field_dict.update({})
40
+ if description is not UNSET:
41
+ field_dict["description"] = description
42
+ if name is not UNSET:
43
+ field_dict["name"] = name
44
+ if required is not UNSET:
45
+ field_dict["required"] = required
46
+ if type_ is not UNSET:
47
+ field_dict["type"] = type_
48
+
49
+ return field_dict
50
+
51
+ @classmethod
52
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
53
+ if not src_dict:
54
+ return None
55
+ d = src_dict.copy()
56
+ description = d.pop("description", UNSET)
57
+
58
+ name = d.pop("name", UNSET)
59
+
60
+ required = d.pop("required", UNSET)
61
+
62
+ type_ = d.pop("type", UNSET)
63
+
64
+ store_function_parameter = cls(
65
+ description=description,
66
+ name=name,
67
+ required=required,
68
+ type_=type_,
69
+ )
70
+
71
+ store_function_parameter.additional_properties = d
72
+ return store_function_parameter
73
+
74
+ @property
75
+ def additional_keys(self) -> list[str]:
76
+ return list(self.additional_properties.keys())
77
+
78
+ def __getitem__(self, key: str) -> Any:
79
+ return self.additional_properties[key]
80
+
81
+ def __setitem__(self, key: str, value: Any) -> None:
82
+ self.additional_properties[key] = value
83
+
84
+ def __delitem__(self, key: str) -> None:
85
+ del self.additional_properties[key]
86
+
87
+ def __contains__(self, key: str) -> bool:
88
+ return key in self.additional_properties