windmill-api 1.423.1__py3-none-any.whl → 1.424.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.

Potentially problematic release.


This version of windmill-api might be problematic. Click here for more details.

@@ -0,0 +1,211 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Dict, Optional, Union, cast
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...types import UNSET, Response, Unset
9
+
10
+
11
+ def _get_kwargs(
12
+ workspace: str,
13
+ *,
14
+ completed_after_s_ago: Union[Unset, None, int] = UNSET,
15
+ success: Union[Unset, None, bool] = UNSET,
16
+ tags: Union[Unset, None, str] = UNSET,
17
+ all_workspaces: Union[Unset, None, bool] = UNSET,
18
+ ) -> Dict[str, Any]:
19
+ pass
20
+
21
+ params: Dict[str, Any] = {}
22
+ params["completed_after_s_ago"] = completed_after_s_ago
23
+
24
+ params["success"] = success
25
+
26
+ params["tags"] = tags
27
+
28
+ params["all_workspaces"] = all_workspaces
29
+
30
+ params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
31
+
32
+ return {
33
+ "method": "get",
34
+ "url": "/w/{workspace}/jobs/completed/count_jobs".format(
35
+ workspace=workspace,
36
+ ),
37
+ "params": params,
38
+ }
39
+
40
+
41
+ def _parse_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Optional[int]:
42
+ if response.status_code == HTTPStatus.OK:
43
+ response_200 = cast(int, response.json())
44
+ return response_200
45
+ if client.raise_on_unexpected_status:
46
+ raise errors.UnexpectedStatus(response.status_code, response.content)
47
+ else:
48
+ return None
49
+
50
+
51
+ def _build_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Response[int]:
52
+ return Response(
53
+ status_code=HTTPStatus(response.status_code),
54
+ content=response.content,
55
+ headers=response.headers,
56
+ parsed=_parse_response(client=client, response=response),
57
+ )
58
+
59
+
60
+ def sync_detailed(
61
+ workspace: str,
62
+ *,
63
+ client: Union[AuthenticatedClient, Client],
64
+ completed_after_s_ago: Union[Unset, None, int] = UNSET,
65
+ success: Union[Unset, None, bool] = UNSET,
66
+ tags: Union[Unset, None, str] = UNSET,
67
+ all_workspaces: Union[Unset, None, bool] = UNSET,
68
+ ) -> Response[int]:
69
+ """count number of completed jobs with filter
70
+
71
+ Args:
72
+ workspace (str):
73
+ completed_after_s_ago (Union[Unset, None, int]):
74
+ success (Union[Unset, None, bool]):
75
+ tags (Union[Unset, None, str]):
76
+ all_workspaces (Union[Unset, None, bool]):
77
+
78
+ Raises:
79
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
80
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
81
+
82
+ Returns:
83
+ Response[int]
84
+ """
85
+
86
+ kwargs = _get_kwargs(
87
+ workspace=workspace,
88
+ completed_after_s_ago=completed_after_s_ago,
89
+ success=success,
90
+ tags=tags,
91
+ all_workspaces=all_workspaces,
92
+ )
93
+
94
+ response = client.get_httpx_client().request(
95
+ **kwargs,
96
+ )
97
+
98
+ return _build_response(client=client, response=response)
99
+
100
+
101
+ def sync(
102
+ workspace: str,
103
+ *,
104
+ client: Union[AuthenticatedClient, Client],
105
+ completed_after_s_ago: Union[Unset, None, int] = UNSET,
106
+ success: Union[Unset, None, bool] = UNSET,
107
+ tags: Union[Unset, None, str] = UNSET,
108
+ all_workspaces: Union[Unset, None, bool] = UNSET,
109
+ ) -> Optional[int]:
110
+ """count number of completed jobs with filter
111
+
112
+ Args:
113
+ workspace (str):
114
+ completed_after_s_ago (Union[Unset, None, int]):
115
+ success (Union[Unset, None, bool]):
116
+ tags (Union[Unset, None, str]):
117
+ all_workspaces (Union[Unset, None, bool]):
118
+
119
+ Raises:
120
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
121
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
122
+
123
+ Returns:
124
+ int
125
+ """
126
+
127
+ return sync_detailed(
128
+ workspace=workspace,
129
+ client=client,
130
+ completed_after_s_ago=completed_after_s_ago,
131
+ success=success,
132
+ tags=tags,
133
+ all_workspaces=all_workspaces,
134
+ ).parsed
135
+
136
+
137
+ async def asyncio_detailed(
138
+ workspace: str,
139
+ *,
140
+ client: Union[AuthenticatedClient, Client],
141
+ completed_after_s_ago: Union[Unset, None, int] = UNSET,
142
+ success: Union[Unset, None, bool] = UNSET,
143
+ tags: Union[Unset, None, str] = UNSET,
144
+ all_workspaces: Union[Unset, None, bool] = UNSET,
145
+ ) -> Response[int]:
146
+ """count number of completed jobs with filter
147
+
148
+ Args:
149
+ workspace (str):
150
+ completed_after_s_ago (Union[Unset, None, int]):
151
+ success (Union[Unset, None, bool]):
152
+ tags (Union[Unset, None, str]):
153
+ all_workspaces (Union[Unset, None, bool]):
154
+
155
+ Raises:
156
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
157
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
158
+
159
+ Returns:
160
+ Response[int]
161
+ """
162
+
163
+ kwargs = _get_kwargs(
164
+ workspace=workspace,
165
+ completed_after_s_ago=completed_after_s_ago,
166
+ success=success,
167
+ tags=tags,
168
+ all_workspaces=all_workspaces,
169
+ )
170
+
171
+ response = await client.get_async_httpx_client().request(**kwargs)
172
+
173
+ return _build_response(client=client, response=response)
174
+
175
+
176
+ async def asyncio(
177
+ workspace: str,
178
+ *,
179
+ client: Union[AuthenticatedClient, Client],
180
+ completed_after_s_ago: Union[Unset, None, int] = UNSET,
181
+ success: Union[Unset, None, bool] = UNSET,
182
+ tags: Union[Unset, None, str] = UNSET,
183
+ all_workspaces: Union[Unset, None, bool] = UNSET,
184
+ ) -> Optional[int]:
185
+ """count number of completed jobs with filter
186
+
187
+ Args:
188
+ workspace (str):
189
+ completed_after_s_ago (Union[Unset, None, int]):
190
+ success (Union[Unset, None, bool]):
191
+ tags (Union[Unset, None, str]):
192
+ all_workspaces (Union[Unset, None, bool]):
193
+
194
+ Raises:
195
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
196
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
197
+
198
+ Returns:
199
+ int
200
+ """
201
+
202
+ return (
203
+ await asyncio_detailed(
204
+ workspace=workspace,
205
+ client=client,
206
+ completed_after_s_ago=completed_after_s_ago,
207
+ success=success,
208
+ tags=tags,
209
+ all_workspaces=all_workspaces,
210
+ )
211
+ ).parsed
@@ -17,7 +17,7 @@ def _get_kwargs(
17
17
 
18
18
  return {
19
19
  "method": "get",
20
- "url": "/w/{workspace}/users/{username}".format(
20
+ "url": "/w/{workspace}/users/get/{username}".format(
21
21
  workspace=workspace,
22
22
  username=username,
23
23
  ),
@@ -0,0 +1,105 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Dict, Optional, Union
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...models.set_login_type_for_user_json_body import SetLoginTypeForUserJsonBody
9
+ from ...types import Response
10
+
11
+
12
+ def _get_kwargs(
13
+ user: str,
14
+ *,
15
+ json_body: SetLoginTypeForUserJsonBody,
16
+ ) -> Dict[str, Any]:
17
+ pass
18
+
19
+ json_json_body = json_body.to_dict()
20
+
21
+ return {
22
+ "method": "post",
23
+ "url": "/users/set_login_type/{user}".format(
24
+ user=user,
25
+ ),
26
+ "json": json_json_body,
27
+ }
28
+
29
+
30
+ def _parse_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Optional[Any]:
31
+ if client.raise_on_unexpected_status:
32
+ raise errors.UnexpectedStatus(response.status_code, response.content)
33
+ else:
34
+ return None
35
+
36
+
37
+ def _build_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Response[Any]:
38
+ return Response(
39
+ status_code=HTTPStatus(response.status_code),
40
+ content=response.content,
41
+ headers=response.headers,
42
+ parsed=_parse_response(client=client, response=response),
43
+ )
44
+
45
+
46
+ def sync_detailed(
47
+ user: str,
48
+ *,
49
+ client: Union[AuthenticatedClient, Client],
50
+ json_body: SetLoginTypeForUserJsonBody,
51
+ ) -> Response[Any]:
52
+ """set login type for a specific user (require super admin)
53
+
54
+ Args:
55
+ user (str):
56
+ json_body (SetLoginTypeForUserJsonBody):
57
+
58
+ Raises:
59
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
60
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
61
+
62
+ Returns:
63
+ Response[Any]
64
+ """
65
+
66
+ kwargs = _get_kwargs(
67
+ user=user,
68
+ json_body=json_body,
69
+ )
70
+
71
+ response = client.get_httpx_client().request(
72
+ **kwargs,
73
+ )
74
+
75
+ return _build_response(client=client, response=response)
76
+
77
+
78
+ async def asyncio_detailed(
79
+ user: str,
80
+ *,
81
+ client: Union[AuthenticatedClient, Client],
82
+ json_body: SetLoginTypeForUserJsonBody,
83
+ ) -> Response[Any]:
84
+ """set login type for a specific user (require super admin)
85
+
86
+ Args:
87
+ user (str):
88
+ json_body (SetLoginTypeForUserJsonBody):
89
+
90
+ Raises:
91
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
92
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
93
+
94
+ Returns:
95
+ Response[Any]
96
+ """
97
+
98
+ kwargs = _get_kwargs(
99
+ user=user,
100
+ json_body=json_body,
101
+ )
102
+
103
+ response = await client.get_async_httpx_client().request(**kwargs)
104
+
105
+ return _build_response(client=client, response=response)
@@ -0,0 +1,105 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Dict, Optional, Union
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...models.set_password_for_user_json_body import SetPasswordForUserJsonBody
9
+ from ...types import Response
10
+
11
+
12
+ def _get_kwargs(
13
+ user: str,
14
+ *,
15
+ json_body: SetPasswordForUserJsonBody,
16
+ ) -> Dict[str, Any]:
17
+ pass
18
+
19
+ json_json_body = json_body.to_dict()
20
+
21
+ return {
22
+ "method": "post",
23
+ "url": "/users/set_password_of/{user}".format(
24
+ user=user,
25
+ ),
26
+ "json": json_json_body,
27
+ }
28
+
29
+
30
+ def _parse_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Optional[Any]:
31
+ if client.raise_on_unexpected_status:
32
+ raise errors.UnexpectedStatus(response.status_code, response.content)
33
+ else:
34
+ return None
35
+
36
+
37
+ def _build_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Response[Any]:
38
+ return Response(
39
+ status_code=HTTPStatus(response.status_code),
40
+ content=response.content,
41
+ headers=response.headers,
42
+ parsed=_parse_response(client=client, response=response),
43
+ )
44
+
45
+
46
+ def sync_detailed(
47
+ user: str,
48
+ *,
49
+ client: Union[AuthenticatedClient, Client],
50
+ json_body: SetPasswordForUserJsonBody,
51
+ ) -> Response[Any]:
52
+ """set password for a specific user (require super admin)
53
+
54
+ Args:
55
+ user (str):
56
+ json_body (SetPasswordForUserJsonBody):
57
+
58
+ Raises:
59
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
60
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
61
+
62
+ Returns:
63
+ Response[Any]
64
+ """
65
+
66
+ kwargs = _get_kwargs(
67
+ user=user,
68
+ json_body=json_body,
69
+ )
70
+
71
+ response = client.get_httpx_client().request(
72
+ **kwargs,
73
+ )
74
+
75
+ return _build_response(client=client, response=response)
76
+
77
+
78
+ async def asyncio_detailed(
79
+ user: str,
80
+ *,
81
+ client: Union[AuthenticatedClient, Client],
82
+ json_body: SetPasswordForUserJsonBody,
83
+ ) -> Response[Any]:
84
+ """set password for a specific user (require super admin)
85
+
86
+ Args:
87
+ user (str):
88
+ json_body (SetPasswordForUserJsonBody):
89
+
90
+ Raises:
91
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
92
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
93
+
94
+ Returns:
95
+ Response[Any]
96
+ """
97
+
98
+ kwargs = _get_kwargs(
99
+ user=user,
100
+ json_body=json_body,
101
+ )
102
+
103
+ response = await client.get_async_httpx_client().request(**kwargs)
104
+
105
+ return _build_response(client=client, response=response)
@@ -0,0 +1,126 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Dict, Optional, Union
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...models.get_counts_of_jobs_waiting_per_tag_response_200 import GetCountsOfJobsWaitingPerTagResponse200
9
+ from ...types import Response
10
+
11
+
12
+ def _get_kwargs() -> Dict[str, Any]:
13
+ pass
14
+
15
+ return {
16
+ "method": "get",
17
+ "url": "/workers/queue_counts",
18
+ }
19
+
20
+
21
+ def _parse_response(
22
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
23
+ ) -> Optional[GetCountsOfJobsWaitingPerTagResponse200]:
24
+ if response.status_code == HTTPStatus.OK:
25
+ response_200 = GetCountsOfJobsWaitingPerTagResponse200.from_dict(response.json())
26
+
27
+ return response_200
28
+ if client.raise_on_unexpected_status:
29
+ raise errors.UnexpectedStatus(response.status_code, response.content)
30
+ else:
31
+ return None
32
+
33
+
34
+ def _build_response(
35
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
36
+ ) -> Response[GetCountsOfJobsWaitingPerTagResponse200]:
37
+ return Response(
38
+ status_code=HTTPStatus(response.status_code),
39
+ content=response.content,
40
+ headers=response.headers,
41
+ parsed=_parse_response(client=client, response=response),
42
+ )
43
+
44
+
45
+ def sync_detailed(
46
+ *,
47
+ client: Union[AuthenticatedClient, Client],
48
+ ) -> Response[GetCountsOfJobsWaitingPerTagResponse200]:
49
+ """get counts of jobs waiting for an executor per tag
50
+
51
+ Raises:
52
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
53
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
54
+
55
+ Returns:
56
+ Response[GetCountsOfJobsWaitingPerTagResponse200]
57
+ """
58
+
59
+ kwargs = _get_kwargs()
60
+
61
+ response = client.get_httpx_client().request(
62
+ **kwargs,
63
+ )
64
+
65
+ return _build_response(client=client, response=response)
66
+
67
+
68
+ def sync(
69
+ *,
70
+ client: Union[AuthenticatedClient, Client],
71
+ ) -> Optional[GetCountsOfJobsWaitingPerTagResponse200]:
72
+ """get counts of jobs waiting for an executor per tag
73
+
74
+ Raises:
75
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
76
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
77
+
78
+ Returns:
79
+ GetCountsOfJobsWaitingPerTagResponse200
80
+ """
81
+
82
+ return sync_detailed(
83
+ client=client,
84
+ ).parsed
85
+
86
+
87
+ async def asyncio_detailed(
88
+ *,
89
+ client: Union[AuthenticatedClient, Client],
90
+ ) -> Response[GetCountsOfJobsWaitingPerTagResponse200]:
91
+ """get counts of jobs waiting for an executor per tag
92
+
93
+ Raises:
94
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
95
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
96
+
97
+ Returns:
98
+ Response[GetCountsOfJobsWaitingPerTagResponse200]
99
+ """
100
+
101
+ kwargs = _get_kwargs()
102
+
103
+ response = await client.get_async_httpx_client().request(**kwargs)
104
+
105
+ return _build_response(client=client, response=response)
106
+
107
+
108
+ async def asyncio(
109
+ *,
110
+ client: Union[AuthenticatedClient, Client],
111
+ ) -> Optional[GetCountsOfJobsWaitingPerTagResponse200]:
112
+ """get counts of jobs waiting for an executor per tag
113
+
114
+ Raises:
115
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
116
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
117
+
118
+ Returns:
119
+ GetCountsOfJobsWaitingPerTagResponse200
120
+ """
121
+
122
+ return (
123
+ await asyncio_detailed(
124
+ client=client,
125
+ )
126
+ ).parsed
@@ -0,0 +1,65 @@
1
+ from typing import Any, Dict, List, Type, TypeVar
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ T = TypeVar("T", bound="AiResource")
7
+
8
+
9
+ @_attrs_define
10
+ class AiResource:
11
+ """
12
+ Attributes:
13
+ path (str):
14
+ provider (str):
15
+ """
16
+
17
+ path: str
18
+ provider: str
19
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
20
+
21
+ def to_dict(self) -> Dict[str, Any]:
22
+ path = self.path
23
+ provider = self.provider
24
+
25
+ field_dict: Dict[str, Any] = {}
26
+ field_dict.update(self.additional_properties)
27
+ field_dict.update(
28
+ {
29
+ "path": path,
30
+ "provider": provider,
31
+ }
32
+ )
33
+
34
+ return field_dict
35
+
36
+ @classmethod
37
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
38
+ d = src_dict.copy()
39
+ path = d.pop("path")
40
+
41
+ provider = d.pop("provider")
42
+
43
+ ai_resource = cls(
44
+ path=path,
45
+ provider=provider,
46
+ )
47
+
48
+ ai_resource.additional_properties = d
49
+ return ai_resource
50
+
51
+ @property
52
+ def additional_keys(self) -> List[str]:
53
+ return list(self.additional_properties.keys())
54
+
55
+ def __getitem__(self, key: str) -> Any:
56
+ return self.additional_properties[key]
57
+
58
+ def __setitem__(self, key: str, value: Any) -> None:
59
+ self.additional_properties[key] = value
60
+
61
+ def __delitem__(self, key: str) -> None:
62
+ del self.additional_properties[key]
63
+
64
+ def __contains__(self, key: str) -> bool:
65
+ return key in self.additional_properties
@@ -3,6 +3,7 @@ from enum import Enum
3
3
 
4
4
  class AuditLogOperation(str, Enum):
5
5
  ACCOUNT_DELETE = "account.delete"
6
+ AI_REQUEST = "ai.request"
6
7
  APPS_CREATE = "apps.create"
7
8
  APPS_DELETE = "apps.delete"
8
9
  APPS_UPDATE = "apps.update"
@@ -42,7 +43,6 @@ class AuditLogOperation(str, Enum):
42
43
  OAUTH_LOGIN = "oauth.login"
43
44
  OAUTH_LOGIN_FAILURE = "oauth.login_failure"
44
45
  OAUTH_SIGNUP = "oauth.signup"
45
- OPENAI_REQUEST = "openai.request"
46
46
  RESOURCES_CREATE = "resources.create"
47
47
  RESOURCES_DELETE = "resources.delete"
48
48
  RESOURCES_UPDATE = "resources.update"
@@ -1,10 +1,14 @@
1
- from typing import Any, Dict, List, Type, TypeVar, Union
1
+ from typing import TYPE_CHECKING, Any, Dict, List, Type, TypeVar, Union
2
2
 
3
3
  from attrs import define as _attrs_define
4
4
  from attrs import field as _attrs_field
5
5
 
6
6
  from ..types import UNSET, Unset
7
7
 
8
+ if TYPE_CHECKING:
9
+ from ..models.edit_copilot_config_json_body_ai_resource import EditCopilotConfigJsonBodyAiResource
10
+
11
+
8
12
  T = TypeVar("T", bound="EditCopilotConfigJsonBody")
9
13
 
10
14
 
@@ -13,16 +17,18 @@ class EditCopilotConfigJsonBody:
13
17
  """
14
18
  Attributes:
15
19
  code_completion_enabled (bool):
16
- openai_resource_path (Union[Unset, str]):
20
+ ai_resource (Union[Unset, EditCopilotConfigJsonBodyAiResource]):
17
21
  """
18
22
 
19
23
  code_completion_enabled: bool
20
- openai_resource_path: Union[Unset, str] = UNSET
24
+ ai_resource: Union[Unset, "EditCopilotConfigJsonBodyAiResource"] = UNSET
21
25
  additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
22
26
 
23
27
  def to_dict(self) -> Dict[str, Any]:
24
28
  code_completion_enabled = self.code_completion_enabled
25
- openai_resource_path = self.openai_resource_path
29
+ ai_resource: Union[Unset, Dict[str, Any]] = UNSET
30
+ if not isinstance(self.ai_resource, Unset):
31
+ ai_resource = self.ai_resource.to_dict()
26
32
 
27
33
  field_dict: Dict[str, Any] = {}
28
34
  field_dict.update(self.additional_properties)
@@ -31,21 +37,28 @@ class EditCopilotConfigJsonBody:
31
37
  "code_completion_enabled": code_completion_enabled,
32
38
  }
33
39
  )
34
- if openai_resource_path is not UNSET:
35
- field_dict["openai_resource_path"] = openai_resource_path
40
+ if ai_resource is not UNSET:
41
+ field_dict["ai_resource"] = ai_resource
36
42
 
37
43
  return field_dict
38
44
 
39
45
  @classmethod
40
46
  def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
47
+ from ..models.edit_copilot_config_json_body_ai_resource import EditCopilotConfigJsonBodyAiResource
48
+
41
49
  d = src_dict.copy()
42
50
  code_completion_enabled = d.pop("code_completion_enabled")
43
51
 
44
- openai_resource_path = d.pop("openai_resource_path", UNSET)
52
+ _ai_resource = d.pop("ai_resource", UNSET)
53
+ ai_resource: Union[Unset, EditCopilotConfigJsonBodyAiResource]
54
+ if isinstance(_ai_resource, Unset):
55
+ ai_resource = UNSET
56
+ else:
57
+ ai_resource = EditCopilotConfigJsonBodyAiResource.from_dict(_ai_resource)
45
58
 
46
59
  edit_copilot_config_json_body = cls(
47
60
  code_completion_enabled=code_completion_enabled,
48
- openai_resource_path=openai_resource_path,
61
+ ai_resource=ai_resource,
49
62
  )
50
63
 
51
64
  edit_copilot_config_json_body.additional_properties = d
@@ -0,0 +1,65 @@
1
+ from typing import Any, Dict, List, Type, TypeVar
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ T = TypeVar("T", bound="EditCopilotConfigJsonBodyAiResource")
7
+
8
+
9
+ @_attrs_define
10
+ class EditCopilotConfigJsonBodyAiResource:
11
+ """
12
+ Attributes:
13
+ path (str):
14
+ provider (str):
15
+ """
16
+
17
+ path: str
18
+ provider: str
19
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
20
+
21
+ def to_dict(self) -> Dict[str, Any]:
22
+ path = self.path
23
+ provider = self.provider
24
+
25
+ field_dict: Dict[str, Any] = {}
26
+ field_dict.update(self.additional_properties)
27
+ field_dict.update(
28
+ {
29
+ "path": path,
30
+ "provider": provider,
31
+ }
32
+ )
33
+
34
+ return field_dict
35
+
36
+ @classmethod
37
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
38
+ d = src_dict.copy()
39
+ path = d.pop("path")
40
+
41
+ provider = d.pop("provider")
42
+
43
+ edit_copilot_config_json_body_ai_resource = cls(
44
+ path=path,
45
+ provider=provider,
46
+ )
47
+
48
+ edit_copilot_config_json_body_ai_resource.additional_properties = d
49
+ return edit_copilot_config_json_body_ai_resource
50
+
51
+ @property
52
+ def additional_keys(self) -> List[str]:
53
+ return list(self.additional_properties.keys())
54
+
55
+ def __getitem__(self, key: str) -> Any:
56
+ return self.additional_properties[key]
57
+
58
+ def __setitem__(self, key: str, value: Any) -> None:
59
+ self.additional_properties[key] = value
60
+
61
+ def __delitem__(self, key: str) -> None:
62
+ del self.additional_properties[key]
63
+
64
+ def __contains__(self, key: str) -> bool:
65
+ return key in self.additional_properties
@@ -3,6 +3,7 @@ from enum import Enum
3
3
 
4
4
  class GetAuditLogResponse200Operation(str, Enum):
5
5
  ACCOUNT_DELETE = "account.delete"
6
+ AI_REQUEST = "ai.request"
6
7
  APPS_CREATE = "apps.create"
7
8
  APPS_DELETE = "apps.delete"
8
9
  APPS_UPDATE = "apps.update"
@@ -42,7 +43,6 @@ class GetAuditLogResponse200Operation(str, Enum):
42
43
  OAUTH_LOGIN = "oauth.login"
43
44
  OAUTH_LOGIN_FAILURE = "oauth.login_failure"
44
45
  OAUTH_SIGNUP = "oauth.signup"
45
- OPENAI_REQUEST = "openai.request"
46
46
  RESOURCES_CREATE = "resources.create"
47
47
  RESOURCES_DELETE = "resources.delete"
48
48
  RESOURCES_UPDATE = "resources.update"
@@ -0,0 +1,44 @@
1
+ from typing import Any, Dict, List, Type, TypeVar
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ T = TypeVar("T", bound="GetCountsOfJobsWaitingPerTagResponse200")
7
+
8
+
9
+ @_attrs_define
10
+ class GetCountsOfJobsWaitingPerTagResponse200:
11
+ """ """
12
+
13
+ additional_properties: Dict[str, int] = _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
+ field_dict.update({})
19
+
20
+ return field_dict
21
+
22
+ @classmethod
23
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
24
+ d = src_dict.copy()
25
+ get_counts_of_jobs_waiting_per_tag_response_200 = cls()
26
+
27
+ get_counts_of_jobs_waiting_per_tag_response_200.additional_properties = d
28
+ return get_counts_of_jobs_waiting_per_tag_response_200
29
+
30
+ @property
31
+ def additional_keys(self) -> List[str]:
32
+ return list(self.additional_properties.keys())
33
+
34
+ def __getitem__(self, key: str) -> int:
35
+ return self.additional_properties[key]
36
+
37
+ def __setitem__(self, key: str, value: int) -> None:
38
+ self.additional_properties[key] = value
39
+
40
+ def __delitem__(self, key: str) -> None:
41
+ del self.additional_properties[key]
42
+
43
+ def __contains__(self, key: str) -> bool:
44
+ return key in self.additional_properties
@@ -6,6 +6,7 @@ from attrs import field as _attrs_field
6
6
  from ..types import UNSET, Unset
7
7
 
8
8
  if TYPE_CHECKING:
9
+ from ..models.get_settings_response_200_ai_resource import GetSettingsResponse200AiResource
9
10
  from ..models.get_settings_response_200_default_scripts import GetSettingsResponse200DefaultScripts
10
11
  from ..models.get_settings_response_200_deploy_ui import GetSettingsResponse200DeployUi
11
12
  from ..models.get_settings_response_200_error_handler_extra_args import GetSettingsResponse200ErrorHandlerExtraArgs
@@ -34,7 +35,7 @@ class GetSettingsResponse200:
34
35
  customer_id (Union[Unset, str]):
35
36
  webhook (Union[Unset, str]):
36
37
  deploy_to (Union[Unset, str]):
37
- openai_resource_path (Union[Unset, str]):
38
+ ai_resource (Union[Unset, GetSettingsResponse200AiResource]):
38
39
  error_handler (Union[Unset, str]):
39
40
  error_handler_extra_args (Union[Unset, GetSettingsResponse200ErrorHandlerExtraArgs]):
40
41
  large_file_storage (Union[Unset, GetSettingsResponse200LargeFileStorage]):
@@ -58,7 +59,7 @@ class GetSettingsResponse200:
58
59
  customer_id: Union[Unset, str] = UNSET
59
60
  webhook: Union[Unset, str] = UNSET
60
61
  deploy_to: Union[Unset, str] = UNSET
61
- openai_resource_path: Union[Unset, str] = UNSET
62
+ ai_resource: Union[Unset, "GetSettingsResponse200AiResource"] = UNSET
62
63
  error_handler: Union[Unset, str] = UNSET
63
64
  error_handler_extra_args: Union[Unset, "GetSettingsResponse200ErrorHandlerExtraArgs"] = UNSET
64
65
  large_file_storage: Union[Unset, "GetSettingsResponse200LargeFileStorage"] = UNSET
@@ -83,7 +84,10 @@ class GetSettingsResponse200:
83
84
  customer_id = self.customer_id
84
85
  webhook = self.webhook
85
86
  deploy_to = self.deploy_to
86
- openai_resource_path = self.openai_resource_path
87
+ ai_resource: Union[Unset, Dict[str, Any]] = UNSET
88
+ if not isinstance(self.ai_resource, Unset):
89
+ ai_resource = self.ai_resource.to_dict()
90
+
87
91
  error_handler = self.error_handler
88
92
  error_handler_extra_args: Union[Unset, Dict[str, Any]] = UNSET
89
93
  if not isinstance(self.error_handler_extra_args, Unset):
@@ -137,8 +141,8 @@ class GetSettingsResponse200:
137
141
  field_dict["webhook"] = webhook
138
142
  if deploy_to is not UNSET:
139
143
  field_dict["deploy_to"] = deploy_to
140
- if openai_resource_path is not UNSET:
141
- field_dict["openai_resource_path"] = openai_resource_path
144
+ if ai_resource is not UNSET:
145
+ field_dict["ai_resource"] = ai_resource
142
146
  if error_handler is not UNSET:
143
147
  field_dict["error_handler"] = error_handler
144
148
  if error_handler_extra_args is not UNSET:
@@ -158,6 +162,7 @@ class GetSettingsResponse200:
158
162
 
159
163
  @classmethod
160
164
  def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
165
+ from ..models.get_settings_response_200_ai_resource import GetSettingsResponse200AiResource
161
166
  from ..models.get_settings_response_200_default_scripts import GetSettingsResponse200DefaultScripts
162
167
  from ..models.get_settings_response_200_deploy_ui import GetSettingsResponse200DeployUi
163
168
  from ..models.get_settings_response_200_error_handler_extra_args import (
@@ -195,7 +200,12 @@ class GetSettingsResponse200:
195
200
 
196
201
  deploy_to = d.pop("deploy_to", UNSET)
197
202
 
198
- openai_resource_path = d.pop("openai_resource_path", UNSET)
203
+ _ai_resource = d.pop("ai_resource", UNSET)
204
+ ai_resource: Union[Unset, GetSettingsResponse200AiResource]
205
+ if isinstance(_ai_resource, Unset):
206
+ ai_resource = UNSET
207
+ else:
208
+ ai_resource = GetSettingsResponse200AiResource.from_dict(_ai_resource)
199
209
 
200
210
  error_handler = d.pop("error_handler", UNSET)
201
211
 
@@ -251,7 +261,7 @@ class GetSettingsResponse200:
251
261
  customer_id=customer_id,
252
262
  webhook=webhook,
253
263
  deploy_to=deploy_to,
254
- openai_resource_path=openai_resource_path,
264
+ ai_resource=ai_resource,
255
265
  error_handler=error_handler,
256
266
  error_handler_extra_args=error_handler_extra_args,
257
267
  large_file_storage=large_file_storage,
@@ -0,0 +1,65 @@
1
+ from typing import Any, Dict, List, Type, TypeVar
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ T = TypeVar("T", bound="GetSettingsResponse200AiResource")
7
+
8
+
9
+ @_attrs_define
10
+ class GetSettingsResponse200AiResource:
11
+ """
12
+ Attributes:
13
+ path (str):
14
+ provider (str):
15
+ """
16
+
17
+ path: str
18
+ provider: str
19
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
20
+
21
+ def to_dict(self) -> Dict[str, Any]:
22
+ path = self.path
23
+ provider = self.provider
24
+
25
+ field_dict: Dict[str, Any] = {}
26
+ field_dict.update(self.additional_properties)
27
+ field_dict.update(
28
+ {
29
+ "path": path,
30
+ "provider": provider,
31
+ }
32
+ )
33
+
34
+ return field_dict
35
+
36
+ @classmethod
37
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
38
+ d = src_dict.copy()
39
+ path = d.pop("path")
40
+
41
+ provider = d.pop("provider")
42
+
43
+ get_settings_response_200_ai_resource = cls(
44
+ path=path,
45
+ provider=provider,
46
+ )
47
+
48
+ get_settings_response_200_ai_resource.additional_properties = d
49
+ return get_settings_response_200_ai_resource
50
+
51
+ @property
52
+ def additional_keys(self) -> List[str]:
53
+ return list(self.additional_properties.keys())
54
+
55
+ def __getitem__(self, key: str) -> Any:
56
+ return self.additional_properties[key]
57
+
58
+ def __setitem__(self, key: str, value: Any) -> None:
59
+ self.additional_properties[key] = value
60
+
61
+ def __delitem__(self, key: str) -> None:
62
+ del self.additional_properties[key]
63
+
64
+ def __contains__(self, key: str) -> bool:
65
+ return key in self.additional_properties
@@ -3,6 +3,7 @@ from enum import Enum
3
3
 
4
4
  class ListAuditLogsResponse200ItemOperation(str, Enum):
5
5
  ACCOUNT_DELETE = "account.delete"
6
+ AI_REQUEST = "ai.request"
6
7
  APPS_CREATE = "apps.create"
7
8
  APPS_DELETE = "apps.delete"
8
9
  APPS_UPDATE = "apps.update"
@@ -42,7 +43,6 @@ class ListAuditLogsResponse200ItemOperation(str, Enum):
42
43
  OAUTH_LOGIN = "oauth.login"
43
44
  OAUTH_LOGIN_FAILURE = "oauth.login_failure"
44
45
  OAUTH_SIGNUP = "oauth.signup"
45
- OPENAI_REQUEST = "openai.request"
46
46
  RESOURCES_CREATE = "resources.create"
47
47
  RESOURCES_DELETE = "resources.delete"
48
48
  RESOURCES_UPDATE = "resources.update"
@@ -0,0 +1,58 @@
1
+ from typing import Any, Dict, List, Type, TypeVar
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ T = TypeVar("T", bound="SetLoginTypeForUserJsonBody")
7
+
8
+
9
+ @_attrs_define
10
+ class SetLoginTypeForUserJsonBody:
11
+ """
12
+ Attributes:
13
+ login_type (str):
14
+ """
15
+
16
+ login_type: str
17
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
18
+
19
+ def to_dict(self) -> Dict[str, Any]:
20
+ login_type = self.login_type
21
+
22
+ field_dict: Dict[str, Any] = {}
23
+ field_dict.update(self.additional_properties)
24
+ field_dict.update(
25
+ {
26
+ "login_type": login_type,
27
+ }
28
+ )
29
+
30
+ return field_dict
31
+
32
+ @classmethod
33
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
34
+ d = src_dict.copy()
35
+ login_type = d.pop("login_type")
36
+
37
+ set_login_type_for_user_json_body = cls(
38
+ login_type=login_type,
39
+ )
40
+
41
+ set_login_type_for_user_json_body.additional_properties = d
42
+ return set_login_type_for_user_json_body
43
+
44
+ @property
45
+ def additional_keys(self) -> List[str]:
46
+ return list(self.additional_properties.keys())
47
+
48
+ def __getitem__(self, key: str) -> Any:
49
+ return self.additional_properties[key]
50
+
51
+ def __setitem__(self, key: str, value: Any) -> None:
52
+ self.additional_properties[key] = value
53
+
54
+ def __delitem__(self, key: str) -> None:
55
+ del self.additional_properties[key]
56
+
57
+ def __contains__(self, key: str) -> bool:
58
+ return key in self.additional_properties
@@ -0,0 +1,58 @@
1
+ from typing import Any, Dict, List, Type, TypeVar
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ T = TypeVar("T", bound="SetPasswordForUserJsonBody")
7
+
8
+
9
+ @_attrs_define
10
+ class SetPasswordForUserJsonBody:
11
+ """
12
+ Attributes:
13
+ password (str):
14
+ """
15
+
16
+ password: str
17
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
18
+
19
+ def to_dict(self) -> Dict[str, Any]:
20
+ password = self.password
21
+
22
+ field_dict: Dict[str, Any] = {}
23
+ field_dict.update(self.additional_properties)
24
+ field_dict.update(
25
+ {
26
+ "password": password,
27
+ }
28
+ )
29
+
30
+ return field_dict
31
+
32
+ @classmethod
33
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
34
+ d = src_dict.copy()
35
+ password = d.pop("password")
36
+
37
+ set_password_for_user_json_body = cls(
38
+ password=password,
39
+ )
40
+
41
+ set_password_for_user_json_body.additional_properties = d
42
+ return set_password_for_user_json_body
43
+
44
+ @property
45
+ def additional_keys(self) -> List[str]:
46
+ return list(self.additional_properties.keys())
47
+
48
+ def __getitem__(self, key: str) -> Any:
49
+ return self.additional_properties[key]
50
+
51
+ def __setitem__(self, key: str, value: Any) -> None:
52
+ self.additional_properties[key] = value
53
+
54
+ def __delitem__(self, key: str) -> None:
55
+ del self.additional_properties[key]
56
+
57
+ def __contains__(self, key: str) -> bool:
58
+ return key in self.additional_properties
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: windmill-api
3
- Version: 1.423.1
3
+ Version: 1.424.0
4
4
  Summary: A client library for accessing Windmill API
5
5
  License: Apache-2.0
6
6
  Author: Ruben Fiszel
@@ -141,6 +141,7 @@ windmill_api/api/job/cancel_queued_job.py,sha256=Kp_NOqCQhkxgw96ObmkCQq5dNsJL58W
141
141
  windmill_api/api/job/cancel_selection.py,sha256=4PDSj4_UAjhdIWKQELAllLZnuiUWqCxHe3-btNzuAuI,4110
142
142
  windmill_api/api/job/cancel_suspended_job_get.py,sha256=JGZmXW4tcQsTUsYO6nwF0Prw54KzgwyJ0ZdnNLTxdeQ,3357
143
143
  windmill_api/api/job/cancel_suspended_job_post.py,sha256=ztNkGEIPP6Hpo5s6qdS77z2r3d7LpFEA0uzH-44-tmU,3824
144
+ windmill_api/api/job/count_completed_jobs.py,sha256=RZJjhX6aM3LsuPOoZWOUDQStKlTai_H_5ZEXsADOENM,6292
144
145
  windmill_api/api/job/count_jobs_by_tag.py,sha256=wi-3OUWC8zqJsn2zuUrAH9i4zl0rbgw_z0QqU1QtNPY,5219
145
146
  windmill_api/api/job/create_job_signature.py,sha256=gZTRawMMP0ax7uFZjULhTs-7cnV9ZFRc0yKMRDoBvew,3193
146
147
  windmill_api/api/job/delete_completed_job.py,sha256=oHCZcuHd7AsHB5ouCMzYgK7O6vlDDsexOHogrpTAVPM,4258
@@ -304,7 +305,7 @@ windmill_api/api/user/get_current_email.py,sha256=_Fh5GKCfeXNFS6lJPzDavQ05i1yRvm
304
305
  windmill_api/api/user/get_runnable.py,sha256=ARVTcEJqcN1ysJK0ZV-4_KhkBiptI5p9UjgBEMKZWUo,3434
305
306
  windmill_api/api/user/get_tutorial_progress.py,sha256=j6CeFViA3NTBwQWSwsewPgX7k-kYgoBWCg7MouzUPZU,3483
306
307
  windmill_api/api/user/get_usage.py,sha256=aaaSFtQm3lUp8TiHQlg1AJtbquHO21jJzSa_nOxgncw,2081
307
- windmill_api/api/user/get_user.py,sha256=NZ_HcfVvddu7h-5aZfZDCtElLW2NfMQVYkLb0_IRu9U,4145
308
+ windmill_api/api/user/get_user.py,sha256=0ulD5MjkeQ89nh-QeUmJ4AOLEdAwGHtxin4ZQ_nplR0,4149
308
309
  windmill_api/api/user/global_user_delete.py,sha256=FfHx2_lAV9zRYSmTUF_PUzef5-D6ECzcPc1acIOrH8k,2287
309
310
  windmill_api/api/user/global_user_rename.py,sha256=Aogb4SUT0JhTQkwaUMWGsPwnMNE51_bGzVV7Td6pZCk,2715
310
311
  windmill_api/api/user/global_user_update.py,sha256=QpQGR1UCCwvZ0cktTxBu_ywGd11A2rLeyJvtRoayh0E,2715
@@ -324,7 +325,9 @@ windmill_api/api/user/login.py,sha256=vxrh69CgmIMyLqdREbMZrrNH3TCRb5EHhj3c78oPqY
324
325
  windmill_api/api/user/login_with_oauth.py,sha256=nWt_bm8O0lqEehUzGAt7LNuU58EqB8Du0QdC_u7b7Eg,2771
325
326
  windmill_api/api/user/logout.py,sha256=PRFiLX2Iie9w26XbF0g7emWSbtTCYC7NXpHyDg9E_jI,2000
326
327
  windmill_api/api/user/refresh_user_token.py,sha256=QhdRaBqAfAM-mEebRB-gZaJIgGET7JCndmDWIJgM9xs,2045
328
+ windmill_api/api/user/set_login_type_for_user.py,sha256=YYnAdE28yTzA2GPlPw8ZUGuClbMr-tkUosEdBfMiqRg,2766
327
329
  windmill_api/api/user/set_password.py,sha256=WOdYlech3ywrL3qj0wJ9TBHkB2YkNcs7K5dB7XP6cD0,2445
330
+ windmill_api/api/user/set_password_for_user.py,sha256=bXhg23BiMZmn5tVycvMMHhZoD9P9Qc6dAD4onQ60CL8,2755
328
331
  windmill_api/api/user/update_tutorial_progress.py,sha256=2oD5-k1NyQ7sG7sSx81h5NP25di9r88pcmzMORBgCrc,2553
329
332
  windmill_api/api/user/update_user.py,sha256=pyneZS5dXGD7FchhnHtR96Ob3kANYnpod2vDAbThQoM,2917
330
333
  windmill_api/api/user/username_to_email.py,sha256=ytYMLD7uK89B9C1wGMb86_7LGCT7kq-3umRPIAdHanw,2512
@@ -351,6 +354,7 @@ windmill_api/api/websocket_trigger/update_websocket_trigger.py,sha256=2X0Ht_HiKg
351
354
  windmill_api/api/worker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
352
355
  windmill_api/api/worker/exists_worker_with_tag.py,sha256=sh0LvJMp8V_dYG5b4Ok26j-_yl2MlAiHOQH1YkLhqfs,3563
353
356
  windmill_api/api/worker/ge_default_tags.py,sha256=vzfZnDN3NWs2-FzpgMnIkuVVL5jzaS4V90g37mKR4wM,3193
357
+ windmill_api/api/worker/get_counts_of_jobs_waiting_per_tag.py,sha256=Ny3bXeZFWzY7HE9AAyP3ehMbugPAXgEYnNOfCpSFLaU,3717
354
358
  windmill_api/api/worker/get_custom_tags.py,sha256=5hJFle26APsV6LycaiYQBGzv0nNheoe9fZIkvwzH1Vs,3424
355
359
  windmill_api/api/worker/get_queue_metrics.py,sha256=pTH_dMhgOsTMnPw8brDlgtoT353jtR4SWY-liHrXfvs,3739
356
360
  windmill_api/api/worker/is_default_tags_per_workspace.py,sha256=WtwYW4uGzb7UefVWb5ZmKyRVCFzZ61yoNMiYOtYQg_0,3144
@@ -410,6 +414,7 @@ windmill_api/models/add_owner_to_folder_json_body.py,sha256=x6l4UjRcnCFhiIGWeWZA
410
414
  windmill_api/models/add_user_json_body.py,sha256=kz8N_62Ll9o0TpJIVGshzhrVrupE83ADg4n54e2Ev6g,2129
411
415
  windmill_api/models/add_user_to_group_json_body.py,sha256=SFC52GuyKnAuVNmTxkntgLR8-juA7EFufaQQxRhHbbI,1615
412
416
  windmill_api/models/add_user_to_instance_group_json_body.py,sha256=V69z1wJycENQ_bzm7gyl2LkC-Mc4SIJHYpHiXzjo8AU,1537
417
+ windmill_api/models/ai_resource.py,sha256=IPu4iv6mfrKTTRbpMQN11ZqYcA7id9F-Jl0MV0OsWH0,1594
413
418
  windmill_api/models/app_history.py,sha256=Zi_The8LlMR_uMAAFW5S9kDuxRIYOy5xNda7gHamDfQ,1816
414
419
  windmill_api/models/app_with_last_version.py,sha256=TmtgFDuI0kWzXsWrYSkl_1TbHen2DHVd4NuFZa-vtjg,4472
415
420
  windmill_api/models/app_with_last_version_execution_mode.py,sha256=qIImxSIPQynbsACGBqIJhB-8bi-8xi4hMg_YyBAtb38,214
@@ -441,7 +446,7 @@ windmill_api/models/archive_script_by_hash_response_200_language.py,sha256=hEssU
441
446
  windmill_api/models/archive_script_by_hash_response_200_schema.py,sha256=FbLGIuF9u_TlsUjZE6t5o4EC98CHK61RYVwCfcw7ucM,1350
442
447
  windmill_api/models/audit_log.py,sha256=ITxGdJ2nBJoXj7LvgNb_5dF-Y5fW_UPZ6hucDMP1SKs,3626
443
448
  windmill_api/models/audit_log_action_kind.py,sha256=T0fGVIol3ppuHzImKXcLRMzjFDIcPTOcwa9geVcouBk,217
444
- windmill_api/models/audit_log_operation.py,sha256=aotQqRAlQJWahg-tJand30zl4UKlGFNbSKM9CYdUDXI,3728
449
+ windmill_api/models/audit_log_operation.py,sha256=Be0y5HK1MOjj0Bjx2kld8UKVI_PXqtwMFt2qZyV0IQE,3720
445
450
  windmill_api/models/audit_log_parameters.py,sha256=942p2zW1l989YhRoD-tzZkzm9L9WCqPVFEytAipdc1E,1248
446
451
  windmill_api/models/autoscaling_event.py,sha256=0WFnvn6WTe_bJ6YGwZrhkEHUfSGR0v-4ZN8WAVAUTqE,3367
447
452
  windmill_api/models/branch_all.py,sha256=rJO_UgIwKgLwndTozpK_l2czSMI8ynmSzHIj3stwlqk,2560
@@ -762,7 +767,8 @@ windmill_api/models/duckdb_connection_settings_response_200.py,sha256=08YV2mUekj
762
767
  windmill_api/models/duckdb_connection_settings_v2_json_body.py,sha256=PXHb4NxCEnvJwyUqUqnYEhz_O_3Qfnty0qkkLogTjk8,1763
763
768
  windmill_api/models/duckdb_connection_settings_v2_response_200.py,sha256=6y4BukqSCVpeouqy30nrcj49_74TrkZ4s42GdfOvPmE,1749
764
769
  windmill_api/models/edit_auto_invite_json_body.py,sha256=j6RkvSzCakhMfuZrKLHw6KWr961KJwYdSAmuaakqKrI,2174
765
- windmill_api/models/edit_copilot_config_json_body.py,sha256=rOXS3NU7uGE9AoGXILqvDIzDb_nfJNCuyWEfO-m32y0,2128
770
+ windmill_api/models/edit_copilot_config_json_body.py,sha256=3U2L0Tn4ekz-lCrtlLhQbjMetjCcr95U-BHRWRzOQU0,2713
771
+ windmill_api/models/edit_copilot_config_json_body_ai_resource.py,sha256=UmhYYrMGgYTfLA46tPUtVOlGEUeHZQsfBB7VrJZP3-8,1734
766
772
  windmill_api/models/edit_default_scripts_json_body.py,sha256=ZStD18RpNC3spa5hcVcIc_Fv0tsFlBnZ9sw85OOPGQk,2527
767
773
  windmill_api/models/edit_deploy_to_json_body.py,sha256=sLAkpLZdvhIu671Sz-AycSlpKfo1rSh4UM2JiZ_q9mA,1613
768
774
  windmill_api/models/edit_error_handler_json_body.py,sha256=01ZCafsbWj458_zacBteZJBuiAt3bio2G5FEYvF--jA,3552
@@ -1296,7 +1302,7 @@ windmill_api/models/get_app_history_by_path_response_200_item.py,sha256=6geih72I
1296
1302
  windmill_api/models/get_app_latest_version_response_200.py,sha256=0P07KKSfuS1kyydSlHfdWlUB6MvzImCj9qr4MSF588M,1928
1297
1303
  windmill_api/models/get_audit_log_response_200.py,sha256=AhWhdZqlUHBUWvfR8nsv-rgzP5Dka4SIr7c0pwgFHSg,3969
1298
1304
  windmill_api/models/get_audit_log_response_200_action_kind.py,sha256=vE6D2hckbbBcss79wNlEUUvWoFGTh-d-jSiGSJZWA5I,231
1299
- windmill_api/models/get_audit_log_response_200_operation.py,sha256=9RoDkzHWUDOaFV02KTSf1mSvedovIlLa1VQ5RyQXpEI,3742
1305
+ windmill_api/models/get_audit_log_response_200_operation.py,sha256=isQ_SuC2e1vG7PWJOb5wLIUyewxJXtnxIs3P6IJt3mg,3734
1300
1306
  windmill_api/models/get_audit_log_response_200_parameters.py,sha256=0DpzZiiQe-WPK1f_uOg0m1bktbs1O9iJRn3WgGtIEEg,1327
1301
1307
  windmill_api/models/get_completed_count_response_200.py,sha256=cudwRJHt5jvqGetkTemW-1aOSR5ni5znOGrkvpSR9jE,1621
1302
1308
  windmill_api/models/get_completed_job_response_200.py,sha256=WU9M3CKuwAImLhWwvMrRW1x0vHyOpSqJ_PfkjzMM5dA,12875
@@ -1385,6 +1391,7 @@ windmill_api/models/get_completed_job_response_200_raw_flow_preprocessor_module_
1385
1391
  windmill_api/models/get_completed_job_response_200_raw_flow_preprocessor_module_suspend_user_groups_required_type_1.py,sha256=uX0SlnpjRQnc4k3eyBkfc_2zzj_vuMWrydXVV3WZOjQ,2447
1386
1392
  windmill_api/models/get_completed_job_response_200_raw_flow_preprocessor_module_suspend_user_groups_required_type_1_type.py,sha256=u-YheCK0vWC6q48xofM368suCbrdf0cLeJ4nbNc1yoU,220
1387
1393
  windmill_api/models/get_completed_job_result_maybe_response_200.py,sha256=no4BzZB_3zRVawLJh9ZsjH5ntuZ8Zj90QGYQd7mFmaI,2333
1394
+ windmill_api/models/get_counts_of_jobs_waiting_per_tag_response_200.py,sha256=_e3A1jqpV0IWOk2SR8y17jnbFBZZlRNZWp3UbgiQYtA,1371
1388
1395
  windmill_api/models/get_critical_alerts_response_200_item.py,sha256=rAuA-WEmFz4T-2uJC0EFvKGgM0r7Don8jRRrL_vocL8,3362
1389
1396
  windmill_api/models/get_default_scripts_response_200.py,sha256=ekfscpG1XtNxHvpokDZ7pI0W6DAdITytKNg09XwSgtc,2537
1390
1397
  windmill_api/models/get_deploy_to_response_200.py,sha256=xZHLxF4DVyJtjVYFRWhSC4gCu1nC1wIAHlvwB-dV8EU,1623
@@ -1891,7 +1898,8 @@ windmill_api/models/get_script_by_path_with_draft_response_200_schema.py,sha256=
1891
1898
  windmill_api/models/get_script_deployment_status_response_200.py,sha256=xmVrdonWouCGM_3MdoVNSuaAWN8Qt7erpLpfhfauU5c,1985
1892
1899
  windmill_api/models/get_script_history_by_path_response_200_item.py,sha256=vc0iaH2j8BKXxXtjtEg7-lollyA5OxPLYoJsjSUiqc8,2009
1893
1900
  windmill_api/models/get_script_latest_version_response_200.py,sha256=tQENYMrpuFKHrllSdlpHe-P_EnWq74-07mDWIfDEres,1983
1894
- windmill_api/models/get_settings_response_200.py,sha256=1NMmmv5pGlnNdBWmp9zPU2i-9wEtDAmcUBR84fbqkMA,11976
1901
+ windmill_api/models/get_settings_response_200.py,sha256=QqDqocsD1_7WRZTZrQu1jDT1E_DT3FxzQ3wOl4EgTG0,12500
1902
+ windmill_api/models/get_settings_response_200_ai_resource.py,sha256=nSn_PFUzUDWNJANgUl75by_lM2x_YbaFUZycC0SzZts,1716
1895
1903
  windmill_api/models/get_settings_response_200_default_scripts.py,sha256=Jj7LAapGLNObPcReGeCxbFSgHJ-0V8FJc8hPKVyrhME,2580
1896
1904
  windmill_api/models/get_settings_response_200_deploy_ui.py,sha256=ObNS_KBx9zQipqeKubJiNlzjBsVmNvpC0TZflBUkO2w,2892
1897
1905
  windmill_api/models/get_settings_response_200_deploy_ui_include_type_item.py,sha256=iHsKsTEN-KL9dB_F9uzx7UUsYoIPZy5aEQ_ZviWQSBo,280
@@ -2279,7 +2287,7 @@ windmill_api/models/list_apps_response_200_item_extra_perms.py,sha256=bjc_b_rJa0
2279
2287
  windmill_api/models/list_audit_logs_action_kind.py,sha256=HdR96iA6Tm6xhFS1X4fQz3IXdWvIp7dcoO-Hvy9PBW8,218
2280
2288
  windmill_api/models/list_audit_logs_response_200_item.py,sha256=WB2fJgwgQaq1kzQGfGhN-J1KBXHl6QT_Vwvzhpxijt0,4114
2281
2289
  windmill_api/models/list_audit_logs_response_200_item_action_kind.py,sha256=GxDy-KWMQnH2soLbfBzvuXIvtlkxM2xT2Sd5d5WkKq4,237
2282
- windmill_api/models/list_audit_logs_response_200_item_operation.py,sha256=BaL1TQFsSxZX4VNHL5PPCGGlZ0aL51eMjvZmpAlv6pw,3748
2290
+ windmill_api/models/list_audit_logs_response_200_item_operation.py,sha256=FNjCW4DkLiB1LkLeO_CQyLQ1JPfxq3bIFPRmv8sGb6c,3740
2283
2291
  windmill_api/models/list_audit_logs_response_200_item_parameters.py,sha256=q4xUQeAhgxiNi7k5T6HGkd3peGLpXr5E3-9d4JJr6nI,1360
2284
2292
  windmill_api/models/list_autoscaling_events_response_200_item.py,sha256=cpgO8peKyXAJ7TVYMTKk7pJyw3RaUQBAIhMcP95edsw,3479
2285
2293
  windmill_api/models/list_completed_jobs_response_200_item.py,sha256=mh1ybxxV414jtZfamB7ZZss-qofsK3NWzEF8ZLG3gsI,13151
@@ -3342,6 +3350,8 @@ windmill_api/models/set_default_error_or_recovery_handler_json_body_handler_type
3342
3350
  windmill_api/models/set_environment_variable_json_body.py,sha256=V92Ay6bGHqR29swlX0-6VG4zt_jG6WnQKseaBbtekg4,1796
3343
3351
  windmill_api/models/set_global_json_body.py,sha256=ui5MT-ZKL2r_B6Fq89gRrckzJ9r3tdT2BUm6n-0Cayk,1551
3344
3352
  windmill_api/models/set_job_progress_json_body.py,sha256=Le3TfJmvk8OvbY7iJWhq7CRMbOlHZZ1WZ8ph4Y5CFnk,1901
3353
+ windmill_api/models/set_login_type_for_user_json_body.py,sha256=B9KSfpk_bU1tYGKFK68p3S89PNI-F4riH8nxRtuCh1o,1572
3354
+ windmill_api/models/set_password_for_user_json_body.py,sha256=5NIXryeSJWSBl2Q61_UwZrSHpJkTxX1IiLJ2qMK7R1k,1544
3345
3355
  windmill_api/models/set_password_json_body.py,sha256=sw5-4v9a29sshOdlEDM-yIYk0oRS-lw8jC_CqanfznI,1503
3346
3356
  windmill_api/models/set_schedule_enabled_json_body.py,sha256=g8JijrjCKNVOddrX70Dp3LvworWzDBkNTzNXHU80HvE,1533
3347
3357
  windmill_api/models/set_websocket_trigger_enabled_json_body.py,sha256=7vo3qLPYnFxmZWMlZdJhxyVtG6Qf9Edi6hTGXuKCxgo,1576
@@ -3468,7 +3478,7 @@ windmill_api/models/workspace_git_sync_settings_repositories_item_exclude_types_
3468
3478
  windmill_api/models/workspace_invite.py,sha256=HnAJWGv5LwxWkz1T3fhgHKIccO7RFC1lixwUUXG6CXs,2037
3469
3479
  windmill_api/py.typed,sha256=8ZJUsxZiuOy1oJeVhsTWQhTG_6pTVHVXk5hJL79ebTk,25
3470
3480
  windmill_api/types.py,sha256=GoYub3t4hQP2Yn5tsvShsBfIY3vHUmblU0MXszDx_V0,968
3471
- windmill_api-1.423.1.dist-info/LICENSE,sha256=qJVFNTaOevCeSY6NoXeUG1SPOwQ1K-PxVQ2iEWJzX-A,11348
3472
- windmill_api-1.423.1.dist-info/METADATA,sha256=C_120zhUyj2dD69iVnljvft0sCvSCk-oH0zt0BYZkJk,5023
3473
- windmill_api-1.423.1.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
3474
- windmill_api-1.423.1.dist-info/RECORD,,
3481
+ windmill_api-1.424.0.dist-info/LICENSE,sha256=qJVFNTaOevCeSY6NoXeUG1SPOwQ1K-PxVQ2iEWJzX-A,11348
3482
+ windmill_api-1.424.0.dist-info/METADATA,sha256=Nt4s1spuPOr_thBSq4sD3_JyTtL-VspVTtkrDVDxNug,5023
3483
+ windmill_api-1.424.0.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
3484
+ windmill_api-1.424.0.dist-info/RECORD,,