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

Files changed (21) hide show
  1. windmill_api/api/config/get_config.py +69 -7
  2. windmill_api/api/index_search/search_jobs_index.py +16 -1
  3. windmill_api/models/alert.py +87 -0
  4. windmill_api/models/configs.py +75 -0
  5. windmill_api/models/configs_alerts_item.py +87 -0
  6. windmill_api/models/edit_workspace_git_sync_config_json_body_git_sync_settings_include_type_item.py +1 -0
  7. windmill_api/models/edit_workspace_git_sync_config_json_body_git_sync_settings_repositories_item_exclude_types_override_item.py +1 -0
  8. windmill_api/models/get_config_response_200.py +75 -0
  9. windmill_api/models/get_config_response_200_alerts_item.py +87 -0
  10. windmill_api/models/get_settings_response_200_git_sync_include_type_item.py +1 -0
  11. windmill_api/models/get_settings_response_200_git_sync_repositories_item_exclude_types_override_item.py +1 -0
  12. windmill_api/models/git_repository_settings_exclude_types_override_item.py +1 -0
  13. windmill_api/models/search_jobs_index_response_200.py +32 -24
  14. windmill_api/models/search_jobs_index_response_200_index_metadata.py +77 -0
  15. windmill_api/models/workspace_git_sync_settings_include_type_item.py +1 -0
  16. windmill_api/models/workspace_git_sync_settings_repositories_item_exclude_types_override_item.py +1 -0
  17. {windmill_api-1.491.1.dist-info → windmill_api-1.492.0.dist-info}/METADATA +1 -1
  18. {windmill_api-1.491.1.dist-info → windmill_api-1.492.0.dist-info}/RECORD +20 -15
  19. windmill_api/models/search_jobs_index_response_200_query_parse_errors_item.py +0 -58
  20. {windmill_api-1.491.1.dist-info → windmill_api-1.492.0.dist-info}/LICENSE +0 -0
  21. {windmill_api-1.491.1.dist-info → windmill_api-1.492.0.dist-info}/WHEEL +0 -0
@@ -5,6 +5,7 @@ import httpx
5
5
 
6
6
  from ... import errors
7
7
  from ...client import AuthenticatedClient, Client
8
+ from ...models.get_config_response_200 import GetConfigResponse200
8
9
  from ...types import Response
9
10
 
10
11
 
@@ -21,16 +22,27 @@ def _get_kwargs(
21
22
  }
22
23
 
23
24
 
24
- def _parse_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Optional[Any]:
25
+ def _parse_response(
26
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
27
+ ) -> Optional[Optional[GetConfigResponse200]]:
25
28
  if response.status_code == HTTPStatus.OK:
26
- return None
29
+ _response_200 = response.json()
30
+ response_200: Optional[GetConfigResponse200]
31
+ if _response_200 is None:
32
+ response_200 = None
33
+ else:
34
+ response_200 = GetConfigResponse200.from_dict(_response_200)
35
+
36
+ return response_200
27
37
  if client.raise_on_unexpected_status:
28
38
  raise errors.UnexpectedStatus(response.status_code, response.content)
29
39
  else:
30
40
  return None
31
41
 
32
42
 
33
- def _build_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Response[Any]:
43
+ def _build_response(
44
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
45
+ ) -> Response[Optional[GetConfigResponse200]]:
34
46
  return Response(
35
47
  status_code=HTTPStatus(response.status_code),
36
48
  content=response.content,
@@ -43,7 +55,7 @@ def sync_detailed(
43
55
  name: str,
44
56
  *,
45
57
  client: Union[AuthenticatedClient, Client],
46
- ) -> Response[Any]:
58
+ ) -> Response[Optional[GetConfigResponse200]]:
47
59
  """get config
48
60
 
49
61
  Args:
@@ -54,7 +66,7 @@ def sync_detailed(
54
66
  httpx.TimeoutException: If the request takes longer than Client.timeout.
55
67
 
56
68
  Returns:
57
- Response[Any]
69
+ Response[Optional[GetConfigResponse200]]
58
70
  """
59
71
 
60
72
  kwargs = _get_kwargs(
@@ -68,11 +80,35 @@ def sync_detailed(
68
80
  return _build_response(client=client, response=response)
69
81
 
70
82
 
83
+ def sync(
84
+ name: str,
85
+ *,
86
+ client: Union[AuthenticatedClient, Client],
87
+ ) -> Optional[Optional[GetConfigResponse200]]:
88
+ """get config
89
+
90
+ Args:
91
+ name (str):
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
+ Optional[GetConfigResponse200]
99
+ """
100
+
101
+ return sync_detailed(
102
+ name=name,
103
+ client=client,
104
+ ).parsed
105
+
106
+
71
107
  async def asyncio_detailed(
72
108
  name: str,
73
109
  *,
74
110
  client: Union[AuthenticatedClient, Client],
75
- ) -> Response[Any]:
111
+ ) -> Response[Optional[GetConfigResponse200]]:
76
112
  """get config
77
113
 
78
114
  Args:
@@ -83,7 +119,7 @@ async def asyncio_detailed(
83
119
  httpx.TimeoutException: If the request takes longer than Client.timeout.
84
120
 
85
121
  Returns:
86
- Response[Any]
122
+ Response[Optional[GetConfigResponse200]]
87
123
  """
88
124
 
89
125
  kwargs = _get_kwargs(
@@ -93,3 +129,29 @@ async def asyncio_detailed(
93
129
  response = await client.get_async_httpx_client().request(**kwargs)
94
130
 
95
131
  return _build_response(client=client, response=response)
132
+
133
+
134
+ async def asyncio(
135
+ name: str,
136
+ *,
137
+ client: Union[AuthenticatedClient, Client],
138
+ ) -> Optional[Optional[GetConfigResponse200]]:
139
+ """get config
140
+
141
+ Args:
142
+ name (str):
143
+
144
+ Raises:
145
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
146
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
147
+
148
+ Returns:
149
+ Optional[GetConfigResponse200]
150
+ """
151
+
152
+ return (
153
+ await asyncio_detailed(
154
+ name=name,
155
+ client=client,
156
+ )
157
+ ).parsed
@@ -6,19 +6,22 @@ import httpx
6
6
  from ... import errors
7
7
  from ...client import AuthenticatedClient, Client
8
8
  from ...models.search_jobs_index_response_200 import SearchJobsIndexResponse200
9
- from ...types import UNSET, Response
9
+ from ...types import UNSET, Response, Unset
10
10
 
11
11
 
12
12
  def _get_kwargs(
13
13
  workspace: str,
14
14
  *,
15
15
  search_query: str,
16
+ pagination_offset: Union[Unset, None, int] = UNSET,
16
17
  ) -> Dict[str, Any]:
17
18
  pass
18
19
 
19
20
  params: Dict[str, Any] = {}
20
21
  params["search_query"] = search_query
21
22
 
23
+ params["pagination_offset"] = pagination_offset
24
+
22
25
  params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
23
26
 
24
27
  return {
@@ -59,12 +62,14 @@ def sync_detailed(
59
62
  *,
60
63
  client: Union[AuthenticatedClient, Client],
61
64
  search_query: str,
65
+ pagination_offset: Union[Unset, None, int] = UNSET,
62
66
  ) -> Response[SearchJobsIndexResponse200]:
63
67
  """Search through jobs with a string query
64
68
 
65
69
  Args:
66
70
  workspace (str):
67
71
  search_query (str):
72
+ pagination_offset (Union[Unset, None, int]):
68
73
 
69
74
  Raises:
70
75
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -77,6 +82,7 @@ def sync_detailed(
77
82
  kwargs = _get_kwargs(
78
83
  workspace=workspace,
79
84
  search_query=search_query,
85
+ pagination_offset=pagination_offset,
80
86
  )
81
87
 
82
88
  response = client.get_httpx_client().request(
@@ -91,12 +97,14 @@ def sync(
91
97
  *,
92
98
  client: Union[AuthenticatedClient, Client],
93
99
  search_query: str,
100
+ pagination_offset: Union[Unset, None, int] = UNSET,
94
101
  ) -> Optional[SearchJobsIndexResponse200]:
95
102
  """Search through jobs with a string query
96
103
 
97
104
  Args:
98
105
  workspace (str):
99
106
  search_query (str):
107
+ pagination_offset (Union[Unset, None, int]):
100
108
 
101
109
  Raises:
102
110
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -110,6 +118,7 @@ def sync(
110
118
  workspace=workspace,
111
119
  client=client,
112
120
  search_query=search_query,
121
+ pagination_offset=pagination_offset,
113
122
  ).parsed
114
123
 
115
124
 
@@ -118,12 +127,14 @@ async def asyncio_detailed(
118
127
  *,
119
128
  client: Union[AuthenticatedClient, Client],
120
129
  search_query: str,
130
+ pagination_offset: Union[Unset, None, int] = UNSET,
121
131
  ) -> Response[SearchJobsIndexResponse200]:
122
132
  """Search through jobs with a string query
123
133
 
124
134
  Args:
125
135
  workspace (str):
126
136
  search_query (str):
137
+ pagination_offset (Union[Unset, None, int]):
127
138
 
128
139
  Raises:
129
140
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -136,6 +147,7 @@ async def asyncio_detailed(
136
147
  kwargs = _get_kwargs(
137
148
  workspace=workspace,
138
149
  search_query=search_query,
150
+ pagination_offset=pagination_offset,
139
151
  )
140
152
 
141
153
  response = await client.get_async_httpx_client().request(**kwargs)
@@ -148,12 +160,14 @@ async def asyncio(
148
160
  *,
149
161
  client: Union[AuthenticatedClient, Client],
150
162
  search_query: str,
163
+ pagination_offset: Union[Unset, None, int] = UNSET,
151
164
  ) -> Optional[SearchJobsIndexResponse200]:
152
165
  """Search through jobs with a string query
153
166
 
154
167
  Args:
155
168
  workspace (str):
156
169
  search_query (str):
170
+ pagination_offset (Union[Unset, None, int]):
157
171
 
158
172
  Raises:
159
173
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -168,5 +182,6 @@ async def asyncio(
168
182
  workspace=workspace,
169
183
  client=client,
170
184
  search_query=search_query,
185
+ pagination_offset=pagination_offset,
171
186
  )
172
187
  ).parsed
@@ -0,0 +1,87 @@
1
+ from typing import Any, Dict, List, Type, TypeVar, cast
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ T = TypeVar("T", bound="Alert")
7
+
8
+
9
+ @_attrs_define
10
+ class Alert:
11
+ """
12
+ Attributes:
13
+ name (str):
14
+ tags_to_monitor (List[str]):
15
+ jobs_num_threshold (int):
16
+ alert_cooldown_seconds (int):
17
+ alert_time_threshold_seconds (int):
18
+ """
19
+
20
+ name: str
21
+ tags_to_monitor: List[str]
22
+ jobs_num_threshold: int
23
+ alert_cooldown_seconds: int
24
+ alert_time_threshold_seconds: int
25
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
26
+
27
+ def to_dict(self) -> Dict[str, Any]:
28
+ name = self.name
29
+ tags_to_monitor = self.tags_to_monitor
30
+
31
+ jobs_num_threshold = self.jobs_num_threshold
32
+ alert_cooldown_seconds = self.alert_cooldown_seconds
33
+ alert_time_threshold_seconds = self.alert_time_threshold_seconds
34
+
35
+ field_dict: Dict[str, Any] = {}
36
+ field_dict.update(self.additional_properties)
37
+ field_dict.update(
38
+ {
39
+ "name": name,
40
+ "tags_to_monitor": tags_to_monitor,
41
+ "jobs_num_threshold": jobs_num_threshold,
42
+ "alert_cooldown_seconds": alert_cooldown_seconds,
43
+ "alert_time_threshold_seconds": alert_time_threshold_seconds,
44
+ }
45
+ )
46
+
47
+ return field_dict
48
+
49
+ @classmethod
50
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
51
+ d = src_dict.copy()
52
+ name = d.pop("name")
53
+
54
+ tags_to_monitor = cast(List[str], d.pop("tags_to_monitor"))
55
+
56
+ jobs_num_threshold = d.pop("jobs_num_threshold")
57
+
58
+ alert_cooldown_seconds = d.pop("alert_cooldown_seconds")
59
+
60
+ alert_time_threshold_seconds = d.pop("alert_time_threshold_seconds")
61
+
62
+ alert = cls(
63
+ name=name,
64
+ tags_to_monitor=tags_to_monitor,
65
+ jobs_num_threshold=jobs_num_threshold,
66
+ alert_cooldown_seconds=alert_cooldown_seconds,
67
+ alert_time_threshold_seconds=alert_time_threshold_seconds,
68
+ )
69
+
70
+ alert.additional_properties = d
71
+ return alert
72
+
73
+ @property
74
+ def additional_keys(self) -> List[str]:
75
+ return list(self.additional_properties.keys())
76
+
77
+ def __getitem__(self, key: str) -> Any:
78
+ return self.additional_properties[key]
79
+
80
+ def __setitem__(self, key: str, value: Any) -> None:
81
+ self.additional_properties[key] = value
82
+
83
+ def __delitem__(self, key: str) -> None:
84
+ del self.additional_properties[key]
85
+
86
+ def __contains__(self, key: str) -> bool:
87
+ return key in self.additional_properties
@@ -0,0 +1,75 @@
1
+ from typing import TYPE_CHECKING, Any, Dict, List, Type, 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.configs_alerts_item import ConfigsAlertsItem
10
+
11
+
12
+ T = TypeVar("T", bound="Configs")
13
+
14
+
15
+ @_attrs_define
16
+ class Configs:
17
+ """
18
+ Attributes:
19
+ alerts (Union[Unset, List['ConfigsAlertsItem']]):
20
+ """
21
+
22
+ alerts: Union[Unset, List["ConfigsAlertsItem"]] = UNSET
23
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
24
+
25
+ def to_dict(self) -> Dict[str, Any]:
26
+ alerts: Union[Unset, List[Dict[str, Any]]] = UNSET
27
+ if not isinstance(self.alerts, Unset):
28
+ alerts = []
29
+ for alerts_item_data in self.alerts:
30
+ alerts_item = alerts_item_data.to_dict()
31
+
32
+ alerts.append(alerts_item)
33
+
34
+ field_dict: Dict[str, Any] = {}
35
+ field_dict.update(self.additional_properties)
36
+ field_dict.update({})
37
+ if alerts is not UNSET:
38
+ field_dict["alerts"] = alerts
39
+
40
+ return field_dict
41
+
42
+ @classmethod
43
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
44
+ from ..models.configs_alerts_item import ConfigsAlertsItem
45
+
46
+ d = src_dict.copy()
47
+ alerts = []
48
+ _alerts = d.pop("alerts", UNSET)
49
+ for alerts_item_data in _alerts or []:
50
+ alerts_item = ConfigsAlertsItem.from_dict(alerts_item_data)
51
+
52
+ alerts.append(alerts_item)
53
+
54
+ configs = cls(
55
+ alerts=alerts,
56
+ )
57
+
58
+ configs.additional_properties = d
59
+ return configs
60
+
61
+ @property
62
+ def additional_keys(self) -> List[str]:
63
+ return list(self.additional_properties.keys())
64
+
65
+ def __getitem__(self, key: str) -> Any:
66
+ return self.additional_properties[key]
67
+
68
+ def __setitem__(self, key: str, value: Any) -> None:
69
+ self.additional_properties[key] = value
70
+
71
+ def __delitem__(self, key: str) -> None:
72
+ del self.additional_properties[key]
73
+
74
+ def __contains__(self, key: str) -> bool:
75
+ return key in self.additional_properties
@@ -0,0 +1,87 @@
1
+ from typing import Any, Dict, List, Type, TypeVar, cast
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ T = TypeVar("T", bound="ConfigsAlertsItem")
7
+
8
+
9
+ @_attrs_define
10
+ class ConfigsAlertsItem:
11
+ """
12
+ Attributes:
13
+ name (str):
14
+ tags_to_monitor (List[str]):
15
+ jobs_num_threshold (int):
16
+ alert_cooldown_seconds (int):
17
+ alert_time_threshold_seconds (int):
18
+ """
19
+
20
+ name: str
21
+ tags_to_monitor: List[str]
22
+ jobs_num_threshold: int
23
+ alert_cooldown_seconds: int
24
+ alert_time_threshold_seconds: int
25
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
26
+
27
+ def to_dict(self) -> Dict[str, Any]:
28
+ name = self.name
29
+ tags_to_monitor = self.tags_to_monitor
30
+
31
+ jobs_num_threshold = self.jobs_num_threshold
32
+ alert_cooldown_seconds = self.alert_cooldown_seconds
33
+ alert_time_threshold_seconds = self.alert_time_threshold_seconds
34
+
35
+ field_dict: Dict[str, Any] = {}
36
+ field_dict.update(self.additional_properties)
37
+ field_dict.update(
38
+ {
39
+ "name": name,
40
+ "tags_to_monitor": tags_to_monitor,
41
+ "jobs_num_threshold": jobs_num_threshold,
42
+ "alert_cooldown_seconds": alert_cooldown_seconds,
43
+ "alert_time_threshold_seconds": alert_time_threshold_seconds,
44
+ }
45
+ )
46
+
47
+ return field_dict
48
+
49
+ @classmethod
50
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
51
+ d = src_dict.copy()
52
+ name = d.pop("name")
53
+
54
+ tags_to_monitor = cast(List[str], d.pop("tags_to_monitor"))
55
+
56
+ jobs_num_threshold = d.pop("jobs_num_threshold")
57
+
58
+ alert_cooldown_seconds = d.pop("alert_cooldown_seconds")
59
+
60
+ alert_time_threshold_seconds = d.pop("alert_time_threshold_seconds")
61
+
62
+ configs_alerts_item = cls(
63
+ name=name,
64
+ tags_to_monitor=tags_to_monitor,
65
+ jobs_num_threshold=jobs_num_threshold,
66
+ alert_cooldown_seconds=alert_cooldown_seconds,
67
+ alert_time_threshold_seconds=alert_time_threshold_seconds,
68
+ )
69
+
70
+ configs_alerts_item.additional_properties = d
71
+ return configs_alerts_item
72
+
73
+ @property
74
+ def additional_keys(self) -> List[str]:
75
+ return list(self.additional_properties.keys())
76
+
77
+ def __getitem__(self, key: str) -> Any:
78
+ return self.additional_properties[key]
79
+
80
+ def __setitem__(self, key: str, value: Any) -> None:
81
+ self.additional_properties[key] = value
82
+
83
+ def __delitem__(self, key: str) -> None:
84
+ del self.additional_properties[key]
85
+
86
+ def __contains__(self, key: str) -> bool:
87
+ return key in self.additional_properties
@@ -11,6 +11,7 @@ class EditWorkspaceGitSyncConfigJsonBodyGitSyncSettingsIncludeTypeItem(str, Enum
11
11
  SCHEDULE = "schedule"
12
12
  SCRIPT = "script"
13
13
  SECRET = "secret"
14
+ TRIGGER = "trigger"
14
15
  USER = "user"
15
16
  VARIABLE = "variable"
16
17
 
@@ -11,6 +11,7 @@ class EditWorkspaceGitSyncConfigJsonBodyGitSyncSettingsRepositoriesItemExcludeTy
11
11
  SCHEDULE = "schedule"
12
12
  SCRIPT = "script"
13
13
  SECRET = "secret"
14
+ TRIGGER = "trigger"
14
15
  USER = "user"
15
16
  VARIABLE = "variable"
16
17
 
@@ -0,0 +1,75 @@
1
+ from typing import TYPE_CHECKING, Any, Dict, List, Type, 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.get_config_response_200_alerts_item import GetConfigResponse200AlertsItem
10
+
11
+
12
+ T = TypeVar("T", bound="GetConfigResponse200")
13
+
14
+
15
+ @_attrs_define
16
+ class GetConfigResponse200:
17
+ """
18
+ Attributes:
19
+ alerts (Union[Unset, List['GetConfigResponse200AlertsItem']]):
20
+ """
21
+
22
+ alerts: Union[Unset, List["GetConfigResponse200AlertsItem"]] = UNSET
23
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
24
+
25
+ def to_dict(self) -> Dict[str, Any]:
26
+ alerts: Union[Unset, List[Dict[str, Any]]] = UNSET
27
+ if not isinstance(self.alerts, Unset):
28
+ alerts = []
29
+ for alerts_item_data in self.alerts:
30
+ alerts_item = alerts_item_data.to_dict()
31
+
32
+ alerts.append(alerts_item)
33
+
34
+ field_dict: Dict[str, Any] = {}
35
+ field_dict.update(self.additional_properties)
36
+ field_dict.update({})
37
+ if alerts is not UNSET:
38
+ field_dict["alerts"] = alerts
39
+
40
+ return field_dict
41
+
42
+ @classmethod
43
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
44
+ from ..models.get_config_response_200_alerts_item import GetConfigResponse200AlertsItem
45
+
46
+ d = src_dict.copy()
47
+ alerts = []
48
+ _alerts = d.pop("alerts", UNSET)
49
+ for alerts_item_data in _alerts or []:
50
+ alerts_item = GetConfigResponse200AlertsItem.from_dict(alerts_item_data)
51
+
52
+ alerts.append(alerts_item)
53
+
54
+ get_config_response_200 = cls(
55
+ alerts=alerts,
56
+ )
57
+
58
+ get_config_response_200.additional_properties = d
59
+ return get_config_response_200
60
+
61
+ @property
62
+ def additional_keys(self) -> List[str]:
63
+ return list(self.additional_properties.keys())
64
+
65
+ def __getitem__(self, key: str) -> Any:
66
+ return self.additional_properties[key]
67
+
68
+ def __setitem__(self, key: str, value: Any) -> None:
69
+ self.additional_properties[key] = value
70
+
71
+ def __delitem__(self, key: str) -> None:
72
+ del self.additional_properties[key]
73
+
74
+ def __contains__(self, key: str) -> bool:
75
+ return key in self.additional_properties
@@ -0,0 +1,87 @@
1
+ from typing import Any, Dict, List, Type, TypeVar, cast
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ T = TypeVar("T", bound="GetConfigResponse200AlertsItem")
7
+
8
+
9
+ @_attrs_define
10
+ class GetConfigResponse200AlertsItem:
11
+ """
12
+ Attributes:
13
+ name (str):
14
+ tags_to_monitor (List[str]):
15
+ jobs_num_threshold (int):
16
+ alert_cooldown_seconds (int):
17
+ alert_time_threshold_seconds (int):
18
+ """
19
+
20
+ name: str
21
+ tags_to_monitor: List[str]
22
+ jobs_num_threshold: int
23
+ alert_cooldown_seconds: int
24
+ alert_time_threshold_seconds: int
25
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
26
+
27
+ def to_dict(self) -> Dict[str, Any]:
28
+ name = self.name
29
+ tags_to_monitor = self.tags_to_monitor
30
+
31
+ jobs_num_threshold = self.jobs_num_threshold
32
+ alert_cooldown_seconds = self.alert_cooldown_seconds
33
+ alert_time_threshold_seconds = self.alert_time_threshold_seconds
34
+
35
+ field_dict: Dict[str, Any] = {}
36
+ field_dict.update(self.additional_properties)
37
+ field_dict.update(
38
+ {
39
+ "name": name,
40
+ "tags_to_monitor": tags_to_monitor,
41
+ "jobs_num_threshold": jobs_num_threshold,
42
+ "alert_cooldown_seconds": alert_cooldown_seconds,
43
+ "alert_time_threshold_seconds": alert_time_threshold_seconds,
44
+ }
45
+ )
46
+
47
+ return field_dict
48
+
49
+ @classmethod
50
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
51
+ d = src_dict.copy()
52
+ name = d.pop("name")
53
+
54
+ tags_to_monitor = cast(List[str], d.pop("tags_to_monitor"))
55
+
56
+ jobs_num_threshold = d.pop("jobs_num_threshold")
57
+
58
+ alert_cooldown_seconds = d.pop("alert_cooldown_seconds")
59
+
60
+ alert_time_threshold_seconds = d.pop("alert_time_threshold_seconds")
61
+
62
+ get_config_response_200_alerts_item = cls(
63
+ name=name,
64
+ tags_to_monitor=tags_to_monitor,
65
+ jobs_num_threshold=jobs_num_threshold,
66
+ alert_cooldown_seconds=alert_cooldown_seconds,
67
+ alert_time_threshold_seconds=alert_time_threshold_seconds,
68
+ )
69
+
70
+ get_config_response_200_alerts_item.additional_properties = d
71
+ return get_config_response_200_alerts_item
72
+
73
+ @property
74
+ def additional_keys(self) -> List[str]:
75
+ return list(self.additional_properties.keys())
76
+
77
+ def __getitem__(self, key: str) -> Any:
78
+ return self.additional_properties[key]
79
+
80
+ def __setitem__(self, key: str, value: Any) -> None:
81
+ self.additional_properties[key] = value
82
+
83
+ def __delitem__(self, key: str) -> None:
84
+ del self.additional_properties[key]
85
+
86
+ def __contains__(self, key: str) -> bool:
87
+ return key in self.additional_properties
@@ -11,6 +11,7 @@ class GetSettingsResponse200GitSyncIncludeTypeItem(str, Enum):
11
11
  SCHEDULE = "schedule"
12
12
  SCRIPT = "script"
13
13
  SECRET = "secret"
14
+ TRIGGER = "trigger"
14
15
  USER = "user"
15
16
  VARIABLE = "variable"
16
17
 
@@ -11,6 +11,7 @@ class GetSettingsResponse200GitSyncRepositoriesItemExcludeTypesOverrideItem(str,
11
11
  SCHEDULE = "schedule"
12
12
  SCRIPT = "script"
13
13
  SECRET = "secret"
14
+ TRIGGER = "trigger"
14
15
  USER = "user"
15
16
  VARIABLE = "variable"
16
17
 
@@ -11,6 +11,7 @@ class GitRepositorySettingsExcludeTypesOverrideItem(str, Enum):
11
11
  SCHEDULE = "schedule"
12
12
  SCRIPT = "script"
13
13
  SECRET = "secret"
14
+ TRIGGER = "trigger"
14
15
  USER = "user"
15
16
  VARIABLE = "variable"
16
17
 
@@ -1,4 +1,4 @@
1
- from typing import TYPE_CHECKING, Any, Dict, List, Type, TypeVar, Union
1
+ from typing import TYPE_CHECKING, Any, Dict, List, Type, TypeVar, Union, cast
2
2
 
3
3
  from attrs import define as _attrs_define
4
4
  from attrs import field as _attrs_field
@@ -7,9 +7,7 @@ from ..types import UNSET, Unset
7
7
 
8
8
  if TYPE_CHECKING:
9
9
  from ..models.search_jobs_index_response_200_hits_item import SearchJobsIndexResponse200HitsItem
10
- from ..models.search_jobs_index_response_200_query_parse_errors_item import (
11
- SearchJobsIndexResponse200QueryParseErrorsItem,
12
- )
10
+ from ..models.search_jobs_index_response_200_index_metadata import SearchJobsIndexResponse200IndexMetadata
13
11
 
14
12
 
15
13
  T = TypeVar("T", bound="SearchJobsIndexResponse200")
@@ -19,23 +17,22 @@ T = TypeVar("T", bound="SearchJobsIndexResponse200")
19
17
  class SearchJobsIndexResponse200:
20
18
  """
21
19
  Attributes:
22
- query_parse_errors (Union[Unset, List['SearchJobsIndexResponse200QueryParseErrorsItem']]): a list of the terms
23
- that couldn't be parsed (and thus ignored)
20
+ query_parse_errors (Union[Unset, List[str]]): a list of the terms that couldn't be parsed (and thus ignored)
24
21
  hits (Union[Unset, List['SearchJobsIndexResponse200HitsItem']]): the jobs that matched the query
22
+ hit_count (Union[Unset, float]): how many jobs matched in total
23
+ index_metadata (Union[Unset, SearchJobsIndexResponse200IndexMetadata]): Metadata about the index current state
25
24
  """
26
25
 
27
- query_parse_errors: Union[Unset, List["SearchJobsIndexResponse200QueryParseErrorsItem"]] = UNSET
26
+ query_parse_errors: Union[Unset, List[str]] = UNSET
28
27
  hits: Union[Unset, List["SearchJobsIndexResponse200HitsItem"]] = UNSET
28
+ hit_count: Union[Unset, float] = UNSET
29
+ index_metadata: Union[Unset, "SearchJobsIndexResponse200IndexMetadata"] = UNSET
29
30
  additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
30
31
 
31
32
  def to_dict(self) -> Dict[str, Any]:
32
- query_parse_errors: Union[Unset, List[Dict[str, Any]]] = UNSET
33
+ query_parse_errors: Union[Unset, List[str]] = UNSET
33
34
  if not isinstance(self.query_parse_errors, Unset):
34
- query_parse_errors = []
35
- for query_parse_errors_item_data in self.query_parse_errors:
36
- query_parse_errors_item = query_parse_errors_item_data.to_dict()
37
-
38
- query_parse_errors.append(query_parse_errors_item)
35
+ query_parse_errors = self.query_parse_errors
39
36
 
40
37
  hits: Union[Unset, List[Dict[str, Any]]] = UNSET
41
38
  if not isinstance(self.hits, Unset):
@@ -45,6 +42,11 @@ class SearchJobsIndexResponse200:
45
42
 
46
43
  hits.append(hits_item)
47
44
 
45
+ hit_count = self.hit_count
46
+ index_metadata: Union[Unset, Dict[str, Any]] = UNSET
47
+ if not isinstance(self.index_metadata, Unset):
48
+ index_metadata = self.index_metadata.to_dict()
49
+
48
50
  field_dict: Dict[str, Any] = {}
49
51
  field_dict.update(self.additional_properties)
50
52
  field_dict.update({})
@@ -52,25 +54,20 @@ class SearchJobsIndexResponse200:
52
54
  field_dict["query_parse_errors"] = query_parse_errors
53
55
  if hits is not UNSET:
54
56
  field_dict["hits"] = hits
57
+ if hit_count is not UNSET:
58
+ field_dict["hit_count"] = hit_count
59
+ if index_metadata is not UNSET:
60
+ field_dict["index_metadata"] = index_metadata
55
61
 
56
62
  return field_dict
57
63
 
58
64
  @classmethod
59
65
  def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
60
66
  from ..models.search_jobs_index_response_200_hits_item import SearchJobsIndexResponse200HitsItem
61
- from ..models.search_jobs_index_response_200_query_parse_errors_item import (
62
- SearchJobsIndexResponse200QueryParseErrorsItem,
63
- )
67
+ from ..models.search_jobs_index_response_200_index_metadata import SearchJobsIndexResponse200IndexMetadata
64
68
 
65
69
  d = src_dict.copy()
66
- query_parse_errors = []
67
- _query_parse_errors = d.pop("query_parse_errors", UNSET)
68
- for query_parse_errors_item_data in _query_parse_errors or []:
69
- query_parse_errors_item = SearchJobsIndexResponse200QueryParseErrorsItem.from_dict(
70
- query_parse_errors_item_data
71
- )
72
-
73
- query_parse_errors.append(query_parse_errors_item)
70
+ query_parse_errors = cast(List[str], d.pop("query_parse_errors", UNSET))
74
71
 
75
72
  hits = []
76
73
  _hits = d.pop("hits", UNSET)
@@ -79,9 +76,20 @@ class SearchJobsIndexResponse200:
79
76
 
80
77
  hits.append(hits_item)
81
78
 
79
+ hit_count = d.pop("hit_count", UNSET)
80
+
81
+ _index_metadata = d.pop("index_metadata", UNSET)
82
+ index_metadata: Union[Unset, SearchJobsIndexResponse200IndexMetadata]
83
+ if isinstance(_index_metadata, Unset):
84
+ index_metadata = UNSET
85
+ else:
86
+ index_metadata = SearchJobsIndexResponse200IndexMetadata.from_dict(_index_metadata)
87
+
82
88
  search_jobs_index_response_200 = cls(
83
89
  query_parse_errors=query_parse_errors,
84
90
  hits=hits,
91
+ hit_count=hit_count,
92
+ index_metadata=index_metadata,
85
93
  )
86
94
 
87
95
  search_jobs_index_response_200.additional_properties = d
@@ -0,0 +1,77 @@
1
+ import datetime
2
+ from typing import Any, Dict, List, Type, TypeVar, Union
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+ from dateutil.parser import isoparse
7
+
8
+ from ..types import UNSET, Unset
9
+
10
+ T = TypeVar("T", bound="SearchJobsIndexResponse200IndexMetadata")
11
+
12
+
13
+ @_attrs_define
14
+ class SearchJobsIndexResponse200IndexMetadata:
15
+ """Metadata about the index current state
16
+
17
+ Attributes:
18
+ indexed_until (Union[Unset, datetime.datetime]): Datetime of the most recently indexed job
19
+ lost_lock_ownership (Union[Unset, bool]): Is the current indexer service being replaced
20
+ """
21
+
22
+ indexed_until: Union[Unset, datetime.datetime] = UNSET
23
+ lost_lock_ownership: Union[Unset, bool] = UNSET
24
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
25
+
26
+ def to_dict(self) -> Dict[str, Any]:
27
+ indexed_until: Union[Unset, str] = UNSET
28
+ if not isinstance(self.indexed_until, Unset):
29
+ indexed_until = self.indexed_until.isoformat()
30
+
31
+ lost_lock_ownership = self.lost_lock_ownership
32
+
33
+ field_dict: Dict[str, Any] = {}
34
+ field_dict.update(self.additional_properties)
35
+ field_dict.update({})
36
+ if indexed_until is not UNSET:
37
+ field_dict["indexed_until"] = indexed_until
38
+ if lost_lock_ownership is not UNSET:
39
+ field_dict["lost_lock_ownership"] = lost_lock_ownership
40
+
41
+ return field_dict
42
+
43
+ @classmethod
44
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
45
+ d = src_dict.copy()
46
+ _indexed_until = d.pop("indexed_until", UNSET)
47
+ indexed_until: Union[Unset, datetime.datetime]
48
+ if isinstance(_indexed_until, Unset):
49
+ indexed_until = UNSET
50
+ else:
51
+ indexed_until = isoparse(_indexed_until)
52
+
53
+ lost_lock_ownership = d.pop("lost_lock_ownership", UNSET)
54
+
55
+ search_jobs_index_response_200_index_metadata = cls(
56
+ indexed_until=indexed_until,
57
+ lost_lock_ownership=lost_lock_ownership,
58
+ )
59
+
60
+ search_jobs_index_response_200_index_metadata.additional_properties = d
61
+ return search_jobs_index_response_200_index_metadata
62
+
63
+ @property
64
+ def additional_keys(self) -> List[str]:
65
+ return list(self.additional_properties.keys())
66
+
67
+ def __getitem__(self, key: str) -> Any:
68
+ return self.additional_properties[key]
69
+
70
+ def __setitem__(self, key: str, value: Any) -> None:
71
+ self.additional_properties[key] = value
72
+
73
+ def __delitem__(self, key: str) -> None:
74
+ del self.additional_properties[key]
75
+
76
+ def __contains__(self, key: str) -> bool:
77
+ return key in self.additional_properties
@@ -11,6 +11,7 @@ class WorkspaceGitSyncSettingsIncludeTypeItem(str, Enum):
11
11
  SCHEDULE = "schedule"
12
12
  SCRIPT = "script"
13
13
  SECRET = "secret"
14
+ TRIGGER = "trigger"
14
15
  USER = "user"
15
16
  VARIABLE = "variable"
16
17
 
@@ -11,6 +11,7 @@ class WorkspaceGitSyncSettingsRepositoriesItemExcludeTypesOverrideItem(str, Enum
11
11
  SCHEDULE = "schedule"
12
12
  SCRIPT = "script"
13
13
  SECRET = "secret"
14
+ TRIGGER = "trigger"
14
15
  USER = "user"
15
16
  VARIABLE = "variable"
16
17
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: windmill-api
3
- Version: 1.491.1
3
+ Version: 1.492.0
4
4
  Summary: A client library for accessing Windmill API
5
5
  License: Apache-2.0
6
6
  Author: Ruben Fiszel
@@ -48,7 +48,7 @@ windmill_api/api/concurrency_groups/list_concurrency_groups.py,sha256=WU2Vs0q3Qj
48
48
  windmill_api/api/concurrency_groups/list_extended_jobs.py,sha256=yMsZZohK_sWkK6os7I7jg8fcP5XEBgqfZUVwQ3GxVic,24991
49
49
  windmill_api/api/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
50
  windmill_api/api/config/delete_config.py,sha256=tIXSiXwRK6MUaolHhicQydeyht60L6LNlZDwd96OLF8,2223
51
- windmill_api/api/config/get_config.py,sha256=d9o0Oe1lMkEJn_d120lLykgwNTXCc376fmPv1nqzz-I,2277
51
+ windmill_api/api/config/get_config.py,sha256=ww07uiAEk2uV3IXQ5vSSbaSwM2OljVyMv2uUVhv54sE,3909
52
52
  windmill_api/api/config/list_autoscaling_events.py,sha256=MWN5UWGmRJuzgXZTrOYbwOSHLJAEZIslSBeE2RN-kaw,4349
53
53
  windmill_api/api/config/list_configs.py,sha256=7Tuv-IRzSDOe03SEw33Gogv6p2JqBf0SvSGXlfM2TqQ,3657
54
54
  windmill_api/api/config/list_worker_groups.py,sha256=En8Im6pXzBhrJfjGpBj05XCUzZOxzxBQyPVaJ3ZmYHI,3761
@@ -161,7 +161,7 @@ windmill_api/api/http_trigger/update_http_trigger.py,sha256=Tlgze6wtpZ6baz8hSLJN
161
161
  windmill_api/api/index_search/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
162
162
  windmill_api/api/index_search/clear_index.py,sha256=K2w8skoq7VH65mZRYN-CLwylsmset0GMwv652zpSAuA,2487
163
163
  windmill_api/api/index_search/count_search_logs_index.py,sha256=aVf2u0-PlKMs0zRysj3BguHutsm3OhFhj3zKZJHN5_U,5902
164
- windmill_api/api/index_search/search_jobs_index.py,sha256=R36HpLYKtw05NavGU-oXB0h-DTleDRzq19j-dAaowtY,4511
164
+ windmill_api/api/index_search/search_jobs_index.py,sha256=5Dv4Pui4su456vVQk0elI5LoxTVSh_fAyc3zpvvSBzU,5247
165
165
  windmill_api/api/index_search/search_logs_index.py,sha256=uHixXlL-C18uWi-1IbMAGBo5sghJbu0flEN1njZC7NI,7024
166
166
  windmill_api/api/input_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
167
167
  windmill_api/api/input_/create_input.py,sha256=ld4CGfTUtmxuyjWuoR-MwvK_lA9xtPnr9H-rVZn3YhQ,3986
@@ -542,6 +542,7 @@ windmill_api/models/ai_provider.py,sha256=-okN6NQBCooiDZLFJx7-xvxvYR7T0nCz3YUBJq
542
542
  windmill_api/models/ai_provider_config.py,sha256=7vTLIikzS-v91YHi4tMiAWeBXDMaSEH2_RlV-xK_tuE,1732
543
543
  windmill_api/models/ai_provider_model.py,sha256=M6PEo60yVmZC1P4ROKIyFR6rA33Y6RGcnxPLbJUI6E8,1776
544
544
  windmill_api/models/ai_provider_model_provider.py,sha256=EMQyHdI1v7mgDMxkK6frZTOErwDxKssEpEeuLPc_8cQ,392
545
+ windmill_api/models/alert.py,sha256=SKGS9LXh5ccRLwg_RxtwxsoNGVf8KUZ-RDWuq0vQwsE,2658
545
546
  windmill_api/models/app_history.py,sha256=Zi_The8LlMR_uMAAFW5S9kDuxRIYOy5xNda7gHamDfQ,1816
546
547
  windmill_api/models/app_with_last_version.py,sha256=5kZfAbK4XlaKZ4rWKJLY2qL19B_vtSQJgoLzEhWfokU,4813
547
548
  windmill_api/models/app_with_last_version_execution_mode.py,sha256=qIImxSIPQynbsACGBqIJhB-8bi-8xi4hMg_YyBAtb38,214
@@ -758,6 +759,8 @@ windmill_api/models/completed_job_raw_flow_preprocessor_module_suspend_user_grou
758
759
  windmill_api/models/concurrency_group.py,sha256=oNZ2zE-tHqZomUheHDrWV6hdouZYZM2ff_wx5C1-IXk,1788
759
760
  windmill_api/models/config.py,sha256=Tl07rzRCA8Z4gSnCaK4YU8wriDvSCv3iUDpdutvYB2o,2130
760
761
  windmill_api/models/config_config.py,sha256=0-Z932i9VEzxsgMxZHFfA02X1AHxax-I3p9A8KBVldo,1215
762
+ windmill_api/models/configs.py,sha256=H0RyiDBAi3mO_QO6yyTCPVGbzjQ4GHtpr3otnS7s20k,2144
763
+ windmill_api/models/configs_alerts_item.py,sha256=QP5fW2ACdDVqIMeOBZHRBi96n-SArjPzVKZ1J1ef4Ds,2724
761
764
  windmill_api/models/connect_callback_json_body.py,sha256=85RFBg7JqD8NbZOOmq-NlCsf26pLopNJ6Vy7IOUXTr8,1635
762
765
  windmill_api/models/connect_callback_response_200.py,sha256=1QPmLSSR9_YsbgOlf6Aum7WzP8gV84215g5ZOi1NXKo,2596
763
766
  windmill_api/models/connect_slack_callback_instance_json_body.py,sha256=c0Rnk7V8qF2Dr471eWnWZe41d5SXnhZEKpbJH1WkpYM,1706
@@ -1026,9 +1029,9 @@ windmill_api/models/edit_workspace_deploy_ui_settings_json_body_deploy_ui_settin
1026
1029
  windmill_api/models/edit_workspace_deploy_ui_settings_json_body_deploy_ui_settings_include_type_item.py,sha256=u01JaEW5ing3I6Ey8xxTYxzAbbxRr-Y1yuxSi0XkE5k,327
1027
1030
  windmill_api/models/edit_workspace_git_sync_config_json_body.py,sha256=F2NtYaGpgWMw8mH6fZFMikW7Y1A2V2jSQN1RaKb_y3U,2663
1028
1031
  windmill_api/models/edit_workspace_git_sync_config_json_body_git_sync_settings.py,sha256=M0ENFgVSjBexPpR9id8nOg6o3OgNe_XBccXiZjEDFGw,4570
1029
- windmill_api/models/edit_workspace_git_sync_config_json_body_git_sync_settings_include_type_item.py,sha256=tJ0j_jgMM8g0jM9CzZAXn85XhkZOGmtI2A1wgbYSmus,419
1032
+ windmill_api/models/edit_workspace_git_sync_config_json_body_git_sync_settings_include_type_item.py,sha256=OPJRw-cFEXEdm2RnZTR1UsrHgiboqtQptk88B27r3So,443
1030
1033
  windmill_api/models/edit_workspace_git_sync_config_json_body_git_sync_settings_repositories_item.py,sha256=rV5Qq1kJrMAbNC0V-8ZrPTDvwx4U5t1wuAxOh-YK2Ts,4536
1031
- windmill_api/models/edit_workspace_git_sync_config_json_body_git_sync_settings_repositories_item_exclude_types_override_item.py,sha256=QqEUqlQStegBoWEpcQz9XNItUdf6Afh9Cxdv9uKcXhM,444
1034
+ windmill_api/models/edit_workspace_git_sync_config_json_body_git_sync_settings_repositories_item_exclude_types_override_item.py,sha256=50KYlcm5x-thLS-aJ5pvF9dhJeJ_rfrvdQrKeGRSO_M,468
1032
1035
  windmill_api/models/edit_workspace_user.py,sha256=zjcNtVcXPR8ekOWERQBAaEhkgSxqI9O6NXjysUk48is,2121
1033
1036
  windmill_api/models/execute_component_json_body.py,sha256=6EVpxhIQr5uVzk8MvkufSSNClK5ABHHoOE7CFU3n3Oo,6800
1034
1037
  windmill_api/models/execute_component_json_body_force_viewer_one_of_fields.py,sha256=JXxJ5OKE-NAakLvdewfcKE1F0-12c4h2gVSemd08vMY,1406
@@ -1640,6 +1643,8 @@ windmill_api/models/get_completed_job_response_200_raw_flow_preprocessor_module_
1640
1643
  windmill_api/models/get_completed_job_response_200_raw_flow_preprocessor_module_suspend_user_groups_required_type_1.py,sha256=uX0SlnpjRQnc4k3eyBkfc_2zzj_vuMWrydXVV3WZOjQ,2447
1641
1644
  windmill_api/models/get_completed_job_response_200_raw_flow_preprocessor_module_suspend_user_groups_required_type_1_type.py,sha256=u-YheCK0vWC6q48xofM368suCbrdf0cLeJ4nbNc1yoU,220
1642
1645
  windmill_api/models/get_completed_job_result_maybe_response_200.py,sha256=no4BzZB_3zRVawLJh9ZsjH5ntuZ8Zj90QGYQd7mFmaI,2333
1646
+ windmill_api/models/get_config_response_200.py,sha256=jeH1gwztxpwSUXaShzeshIA1ySQiNGrKNVz3faNGNhs,2315
1647
+ windmill_api/models/get_config_response_200_alerts_item.py,sha256=BfJ8FlrPmeDVtyXaKnGruvIF0gfBR2timSP0vpHkZTY,2798
1643
1648
  windmill_api/models/get_copilot_info_response_200.py,sha256=wAFE4TNQrsnWaf8K_v3dKRDsim2NPqYGGZq0DBoaVnI,4544
1644
1649
  windmill_api/models/get_copilot_info_response_200_code_completion_model.py,sha256=8yG-4N1ixL3Z3NQ2HOdskhj85356M_FnzPVzTvMaVyo,2095
1645
1650
  windmill_api/models/get_copilot_info_response_200_code_completion_model_provider.py,sha256=DIZdBnOuBgdGTMoUZD3vnT44jEwqasSjV6wKiQvM2mY,421
@@ -2208,9 +2213,9 @@ windmill_api/models/get_settings_response_200_deploy_ui.py,sha256=ObNS_KBx9zQipq
2208
2213
  windmill_api/models/get_settings_response_200_deploy_ui_include_type_item.py,sha256=jRqTf0Ssep-SpNPa9tJDD2W9-FTr-mC4qVPXV_2LN_Q,304
2209
2214
  windmill_api/models/get_settings_response_200_error_handler_extra_args.py,sha256=uUuDIJzSay50l4_UmGDqp2egUY5a7ke2lOSPQXr0MOc,1388
2210
2215
  windmill_api/models/get_settings_response_200_git_sync.py,sha256=aayGhTGn97kda0uAJriCcPsgGr2rQiSaArM2GMkHqxw,4167
2211
- windmill_api/models/get_settings_response_200_git_sync_include_type_item.py,sha256=El_rVBeypSS5OkUaRwgXm2_WT1A74vuV1qRKgoh7Jck,399
2216
+ windmill_api/models/get_settings_response_200_git_sync_include_type_item.py,sha256=lLVD8LgoNaBSfhu8tsGyslXOmy2FNLE8G_AP8WViBDY,423
2212
2217
  windmill_api/models/get_settings_response_200_git_sync_repositories_item.py,sha256=xGn73xL971B3jV282NEkc8KZ42NVySdHiM732UXiAg8,4280
2213
- windmill_api/models/get_settings_response_200_git_sync_repositories_item_exclude_types_override_item.py,sha256=WSQjx0h6JglMBX8NdAxOtkIAeS2YeCtnbxDVBj9LQM8,424
2218
+ windmill_api/models/get_settings_response_200_git_sync_repositories_item_exclude_types_override_item.py,sha256=0CEJlNh6vIE1QX8NrYhfo7BZfRl91M1_zriGF9A2h3Y,448
2214
2219
  windmill_api/models/get_settings_response_200_large_file_storage.py,sha256=BGGvHPpWk4bCaJg1OAsjTGPUb5LPVz70fLtDJJjj10A,4593
2215
2220
  windmill_api/models/get_settings_response_200_large_file_storage_secondary_storage.py,sha256=NA9KIXrWM1jPhWw2FlYU3-ev1ksJ0f-RpMDA_YDDrnY,2539
2216
2221
  windmill_api/models/get_settings_response_200_large_file_storage_secondary_storage_additional_property.py,sha256=wbsIwdb3VX2Gigk90fMtDoqBr6jkMT4PgH4F-sb97k4,3702
@@ -2417,7 +2422,7 @@ windmill_api/models/get_websocket_trigger_response_200_url_runnable_args.py,sha2
2417
2422
  windmill_api/models/get_workspace_default_app_response_200.py,sha256=FKINlHD6u4qyUDJgJjDuDIyIsWAuvRdPKYQA9s_Y00g,1758
2418
2423
  windmill_api/models/get_workspace_encryption_key_response_200.py,sha256=Fvs0c2FiaRvYp_qRzJ4xj-gQ-2mF58Ae5dOol6Onuow,1544
2419
2424
  windmill_api/models/git_repository_settings.py,sha256=tO-Ggwbyvy4tiGGeIcgku8QNXXhLsZjIv0X7gZWNb6M,3985
2420
- windmill_api/models/git_repository_settings_exclude_types_override_item.py,sha256=DQ-AVOKWRRJi91UeocbmbxGgcUrpdkpHb8jzMk1dHNI,400
2425
+ windmill_api/models/git_repository_settings_exclude_types_override_item.py,sha256=Re3A2xjZTQVw6BM0X1uKp0DgOt20HQNG5QbNMh-RqJ0,424
2421
2426
  windmill_api/models/github_installations_item.py,sha256=eQZySpUmGB8XibjaE1F7Iu11KtFr_Z7x_2XIM-RPsGU,3114
2422
2427
  windmill_api/models/github_installations_item_repositories_item.py,sha256=ui-qQICI5iywFMczl6pDy3Ppaw1KsEkgex1HrNlkoaE,1698
2423
2428
  windmill_api/models/global_setting.py,sha256=NZxAwAz5Rh8LMvpHqRAaVZhF0-cXR9897d1lyNrXeTU,1821
@@ -3734,9 +3739,9 @@ windmill_api/models/script_kind.py,sha256=EfuvQDR3IhQ9etWW99oMvmgdawuj__rx5tQRsK
3734
3739
  windmill_api/models/script_lang.py,sha256=E_-rGsvKaMmhwDbVvCSIdW2r6xU7ZgJXOpyE7MxStKo,547
3735
3740
  windmill_api/models/script_language.py,sha256=c8819nVuX42h5Bb6A0S321Bz5hgLRp5lgw0FS8uaGo4,551
3736
3741
  windmill_api/models/script_schema.py,sha256=GXPOBoQ3f0rw_DVnfAOJLfXc1R7Fkmxzzjd02R-FEt4,1215
3737
- windmill_api/models/search_jobs_index_response_200.py,sha256=G5l9sg4Q57_rei_DIl-gU6T1CuB0QAj-yGUeWva1uK0,3873
3742
+ windmill_api/models/search_jobs_index_response_200.py,sha256=8J35Js9bE7pndcXQFeWV-1l_4Q8N-qutSplVMM0vsEs,4346
3738
3743
  windmill_api/models/search_jobs_index_response_200_hits_item.py,sha256=Gw1Bkl02LdWrjEYlNSP3Tg5DpxsZkPuMDRdQ2vuzNQ4,1656
3739
- windmill_api/models/search_jobs_index_response_200_query_parse_errors_item.py,sha256=K1j5yPGqaAB5XIMlsSP4F3g4w8g6gdDTS1DMoEJQVEY,1722
3744
+ windmill_api/models/search_jobs_index_response_200_index_metadata.py,sha256=MHfN1BmiNqQ3oD53PSB0ZF2HfcIy1OChCu3yArStm7o,2679
3740
3745
  windmill_api/models/search_logs_index_response_200.py,sha256=uXwOAxVQEvaM-97PP8UTe91hTEWvE9Nx1IGmtq2VJ0E,2960
3741
3746
  windmill_api/models/search_logs_index_response_200_hits_item.py,sha256=BjRCX0Xwna32gEbU6g8EeEYeJIEsZsCzEaATKiazKFk,1656
3742
3747
  windmill_api/models/send_message_to_conversation_json_body.py,sha256=oeRSIRvfWH5qZ3Ofnjoy02gtISHFhBmmkaYQvlSCBWQ,3337
@@ -3953,15 +3958,15 @@ windmill_api/models/workspace_deploy_ui_settings_include_type_item.py,sha256=BI5
3953
3958
  windmill_api/models/workspace_get_critical_alerts_response_200.py,sha256=1Io4I9aWkg7GGDJYwQWSBNTW_vFAW4-MhTLKf5pmnmM,3275
3954
3959
  windmill_api/models/workspace_get_critical_alerts_response_200_alerts_item.py,sha256=pjAKMe8U_VlNECSoGlYxiNAIevL-B6hjLfZn39v6RNw,3823
3955
3960
  windmill_api/models/workspace_git_sync_settings.py,sha256=0OOwDEra0pYwFhCs3X2a38R3m8UY5Asxx9m-dTq13Io,4028
3956
- windmill_api/models/workspace_git_sync_settings_include_type_item.py,sha256=tAAP2BqURMwG8XQiTQVkS1TaCIcGT2gzHzJ4J6NPPo0,394
3961
+ windmill_api/models/workspace_git_sync_settings_include_type_item.py,sha256=RtlJ1OxV1N31v-62KDCX2-dKEAtwnigAIdzRLhAnjyA,418
3957
3962
  windmill_api/models/workspace_git_sync_settings_repositories_item.py,sha256=ZJFc1PVy25Ifv69k7zHMRD55fhVzfpmZDBy7w8lXa0A,4196
3958
- windmill_api/models/workspace_git_sync_settings_repositories_item_exclude_types_override_item.py,sha256=2v33qfdGJHHMPgdPvSgw6FTrYqStaZbobxI8ZISqk7c,419
3963
+ windmill_api/models/workspace_git_sync_settings_repositories_item_exclude_types_override_item.py,sha256=gA-1dtssIA_6ybmkTfA8ZlGIIWpy8cPqwY32p5OMEGA,443
3959
3964
  windmill_api/models/workspace_github_installation.py,sha256=Vqwewx9pTGHUp_NzRIKQw9zhOiTWojR8qG9LHGycG90,1816
3960
3965
  windmill_api/models/workspace_invite.py,sha256=HnAJWGv5LwxWkz1T3fhgHKIccO7RFC1lixwUUXG6CXs,2037
3961
3966
  windmill_api/models/workspace_mute_critical_alerts_ui_json_body.py,sha256=y8ZwkWEZgavVc-FgLuZZ4z8YPCLxjPcMfdGdKjGM6VQ,1883
3962
3967
  windmill_api/py.typed,sha256=8ZJUsxZiuOy1oJeVhsTWQhTG_6pTVHVXk5hJL79ebTk,25
3963
3968
  windmill_api/types.py,sha256=GoYub3t4hQP2Yn5tsvShsBfIY3vHUmblU0MXszDx_V0,968
3964
- windmill_api-1.491.1.dist-info/LICENSE,sha256=qJVFNTaOevCeSY6NoXeUG1SPOwQ1K-PxVQ2iEWJzX-A,11348
3965
- windmill_api-1.491.1.dist-info/METADATA,sha256=uwyz3DN-6YDKM6kLXH2I4epUzP_NssigXB32gHiw_rI,5023
3966
- windmill_api-1.491.1.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
3967
- windmill_api-1.491.1.dist-info/RECORD,,
3969
+ windmill_api-1.492.0.dist-info/LICENSE,sha256=qJVFNTaOevCeSY6NoXeUG1SPOwQ1K-PxVQ2iEWJzX-A,11348
3970
+ windmill_api-1.492.0.dist-info/METADATA,sha256=q3IDPSz_IbP4pF0rcbrlmm0K_KO5brB5HsxyHGjZyig,5023
3971
+ windmill_api-1.492.0.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
3972
+ windmill_api-1.492.0.dist-info/RECORD,,
@@ -1,58 +0,0 @@
1
- from typing import Any, Dict, List, Type, 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="SearchJobsIndexResponse200QueryParseErrorsItem")
9
-
10
-
11
- @_attrs_define
12
- class SearchJobsIndexResponse200QueryParseErrorsItem:
13
- """
14
- Attributes:
15
- dancer (Union[Unset, str]):
16
- """
17
-
18
- dancer: Union[Unset, str] = UNSET
19
- additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
20
-
21
- def to_dict(self) -> Dict[str, Any]:
22
- dancer = self.dancer
23
-
24
- field_dict: Dict[str, Any] = {}
25
- field_dict.update(self.additional_properties)
26
- field_dict.update({})
27
- if dancer is not UNSET:
28
- field_dict["dancer"] = dancer
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
- dancer = d.pop("dancer", UNSET)
36
-
37
- search_jobs_index_response_200_query_parse_errors_item = cls(
38
- dancer=dancer,
39
- )
40
-
41
- search_jobs_index_response_200_query_parse_errors_item.additional_properties = d
42
- return search_jobs_index_response_200_query_parse_errors_item
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