cyberdesk 2.0.0__py3-none-any.whl → 2.1.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 cyberdesk might be problematic. Click here for more details.

Files changed (29) hide show
  1. cyberdesk/__init__.py +1 -1
  2. cyberdesk/client.py +358 -6
  3. {cyberdesk-2.0.0.dist-info → cyberdesk-2.1.0.dist-info}/METADATA +1 -1
  4. {cyberdesk-2.0.0.dist-info → cyberdesk-2.1.0.dist-info}/RECORD +29 -12
  5. openapi_client/cyberdesk_cloud_client/api/machines/get_machine_pools_v1_machines_machine_id_pools_get.py +169 -0
  6. openapi_client/cyberdesk_cloud_client/api/machines/update_machine_pools_v1_machines_machine_id_pools_put.py +190 -0
  7. openapi_client/cyberdesk_cloud_client/api/pools/__init__.py +1 -0
  8. openapi_client/cyberdesk_cloud_client/api/pools/add_machines_to_pool_v1_pools_pool_id_machines_post.py +186 -0
  9. openapi_client/cyberdesk_cloud_client/api/pools/create_pool_v1_pools_post.py +172 -0
  10. openapi_client/cyberdesk_cloud_client/api/pools/delete_pool_v1_pools_pool_id_delete.py +162 -0
  11. openapi_client/cyberdesk_cloud_client/api/pools/get_pool_v1_pools_pool_id_get.py +185 -0
  12. openapi_client/cyberdesk_cloud_client/api/pools/list_pools_v1_pools_get.py +186 -0
  13. openapi_client/cyberdesk_cloud_client/api/pools/remove_machines_from_pool_v1_pools_pool_id_machines_delete.py +184 -0
  14. openapi_client/cyberdesk_cloud_client/api/pools/update_pool_v1_pools_pool_id_patch.py +186 -0
  15. openapi_client/cyberdesk_cloud_client/models/__init__.py +14 -0
  16. openapi_client/cyberdesk_cloud_client/models/machine_pool_assignment.py +69 -0
  17. openapi_client/cyberdesk_cloud_client/models/machine_pool_update.py +69 -0
  18. openapi_client/cyberdesk_cloud_client/models/machine_response.py +46 -1
  19. openapi_client/cyberdesk_cloud_client/models/paginated_response_pool_response.py +97 -0
  20. openapi_client/cyberdesk_cloud_client/models/pool_create.py +82 -0
  21. openapi_client/cyberdesk_cloud_client/models/pool_response.py +137 -0
  22. openapi_client/cyberdesk_cloud_client/models/pool_update.py +92 -0
  23. openapi_client/cyberdesk_cloud_client/models/pool_with_machines.py +162 -0
  24. openapi_client/cyberdesk_cloud_client/models/run_bulk_create.py +40 -0
  25. openapi_client/cyberdesk_cloud_client/models/run_create.py +40 -0
  26. openapi_client/cyberdesk_cloud_client/models/run_response.py +39 -0
  27. {cyberdesk-2.0.0.dist-info → cyberdesk-2.1.0.dist-info}/WHEEL +0 -0
  28. {cyberdesk-2.0.0.dist-info → cyberdesk-2.1.0.dist-info}/licenses/LICENSE +0 -0
  29. {cyberdesk-2.0.0.dist-info → cyberdesk-2.1.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,137 @@
1
+ import datetime
2
+ from collections.abc import Mapping
3
+ from typing import Any, TypeVar, Union, cast
4
+ from uuid import UUID
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+ from dateutil.parser import isoparse
9
+
10
+ from ..types import UNSET, Unset
11
+
12
+ T = TypeVar("T", bound="PoolResponse")
13
+
14
+
15
+ @_attrs_define
16
+ class PoolResponse:
17
+ """Pool response schema
18
+
19
+ Attributes:
20
+ name (str):
21
+ id (UUID):
22
+ organization_id (str):
23
+ created_at (datetime.datetime):
24
+ updated_at (datetime.datetime):
25
+ description (Union[None, Unset, str]):
26
+ machine_count (Union[None, Unset, int]): Number of machines in this pool Default: 0.
27
+ """
28
+
29
+ name: str
30
+ id: UUID
31
+ organization_id: str
32
+ created_at: datetime.datetime
33
+ updated_at: datetime.datetime
34
+ description: Union[None, Unset, str] = UNSET
35
+ machine_count: Union[None, Unset, int] = 0
36
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
37
+
38
+ def to_dict(self) -> dict[str, Any]:
39
+ name = self.name
40
+
41
+ id = str(self.id)
42
+
43
+ organization_id = self.organization_id
44
+
45
+ created_at = self.created_at.isoformat()
46
+
47
+ updated_at = self.updated_at.isoformat()
48
+
49
+ description: Union[None, Unset, str]
50
+ if isinstance(self.description, Unset):
51
+ description = UNSET
52
+ else:
53
+ description = self.description
54
+
55
+ machine_count: Union[None, Unset, int]
56
+ if isinstance(self.machine_count, Unset):
57
+ machine_count = UNSET
58
+ else:
59
+ machine_count = self.machine_count
60
+
61
+ field_dict: dict[str, Any] = {}
62
+ field_dict.update(self.additional_properties)
63
+ field_dict.update(
64
+ {
65
+ "name": name,
66
+ "id": id,
67
+ "organization_id": organization_id,
68
+ "created_at": created_at,
69
+ "updated_at": updated_at,
70
+ }
71
+ )
72
+ if description is not UNSET:
73
+ field_dict["description"] = description
74
+ if machine_count is not UNSET:
75
+ field_dict["machine_count"] = machine_count
76
+
77
+ return field_dict
78
+
79
+ @classmethod
80
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
81
+ d = dict(src_dict)
82
+ name = d.pop("name")
83
+
84
+ id = UUID(d.pop("id"))
85
+
86
+ organization_id = d.pop("organization_id")
87
+
88
+ created_at = isoparse(d.pop("created_at"))
89
+
90
+ updated_at = isoparse(d.pop("updated_at"))
91
+
92
+ def _parse_description(data: object) -> Union[None, Unset, str]:
93
+ if data is None:
94
+ return data
95
+ if isinstance(data, Unset):
96
+ return data
97
+ return cast(Union[None, Unset, str], data)
98
+
99
+ description = _parse_description(d.pop("description", UNSET))
100
+
101
+ def _parse_machine_count(data: object) -> Union[None, Unset, int]:
102
+ if data is None:
103
+ return data
104
+ if isinstance(data, Unset):
105
+ return data
106
+ return cast(Union[None, Unset, int], data)
107
+
108
+ machine_count = _parse_machine_count(d.pop("machine_count", UNSET))
109
+
110
+ pool_response = cls(
111
+ name=name,
112
+ id=id,
113
+ organization_id=organization_id,
114
+ created_at=created_at,
115
+ updated_at=updated_at,
116
+ description=description,
117
+ machine_count=machine_count,
118
+ )
119
+
120
+ pool_response.additional_properties = d
121
+ return pool_response
122
+
123
+ @property
124
+ def additional_keys(self) -> list[str]:
125
+ return list(self.additional_properties.keys())
126
+
127
+ def __getitem__(self, key: str) -> Any:
128
+ return self.additional_properties[key]
129
+
130
+ def __setitem__(self, key: str, value: Any) -> None:
131
+ self.additional_properties[key] = value
132
+
133
+ def __delitem__(self, key: str) -> None:
134
+ del self.additional_properties[key]
135
+
136
+ def __contains__(self, key: str) -> bool:
137
+ return key in self.additional_properties
@@ -0,0 +1,92 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union, cast
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..types import UNSET, Unset
8
+
9
+ T = TypeVar("T", bound="PoolUpdate")
10
+
11
+
12
+ @_attrs_define
13
+ class PoolUpdate:
14
+ """Schema for updating a pool
15
+
16
+ Attributes:
17
+ name (Union[None, Unset, str]):
18
+ description (Union[None, Unset, str]):
19
+ """
20
+
21
+ name: Union[None, Unset, str] = UNSET
22
+ description: Union[None, Unset, str] = UNSET
23
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
24
+
25
+ def to_dict(self) -> dict[str, Any]:
26
+ name: Union[None, Unset, str]
27
+ if isinstance(self.name, Unset):
28
+ name = UNSET
29
+ else:
30
+ name = self.name
31
+
32
+ description: Union[None, Unset, str]
33
+ if isinstance(self.description, Unset):
34
+ description = UNSET
35
+ else:
36
+ description = self.description
37
+
38
+ field_dict: dict[str, Any] = {}
39
+ field_dict.update(self.additional_properties)
40
+ field_dict.update({})
41
+ if name is not UNSET:
42
+ field_dict["name"] = name
43
+ if description is not UNSET:
44
+ field_dict["description"] = description
45
+
46
+ return field_dict
47
+
48
+ @classmethod
49
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
50
+ d = dict(src_dict)
51
+
52
+ def _parse_name(data: object) -> Union[None, Unset, str]:
53
+ if data is None:
54
+ return data
55
+ if isinstance(data, Unset):
56
+ return data
57
+ return cast(Union[None, Unset, str], data)
58
+
59
+ name = _parse_name(d.pop("name", UNSET))
60
+
61
+ def _parse_description(data: object) -> Union[None, Unset, str]:
62
+ if data is None:
63
+ return data
64
+ if isinstance(data, Unset):
65
+ return data
66
+ return cast(Union[None, Unset, str], data)
67
+
68
+ description = _parse_description(d.pop("description", UNSET))
69
+
70
+ pool_update = cls(
71
+ name=name,
72
+ description=description,
73
+ )
74
+
75
+ pool_update.additional_properties = d
76
+ return pool_update
77
+
78
+ @property
79
+ def additional_keys(self) -> list[str]:
80
+ return list(self.additional_properties.keys())
81
+
82
+ def __getitem__(self, key: str) -> Any:
83
+ return self.additional_properties[key]
84
+
85
+ def __setitem__(self, key: str, value: Any) -> None:
86
+ self.additional_properties[key] = value
87
+
88
+ def __delitem__(self, key: str) -> None:
89
+ del self.additional_properties[key]
90
+
91
+ def __contains__(self, key: str) -> bool:
92
+ return key in self.additional_properties
@@ -0,0 +1,162 @@
1
+ import datetime
2
+ from collections.abc import Mapping
3
+ from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
4
+ from uuid import UUID
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+ from dateutil.parser import isoparse
9
+
10
+ from ..types import UNSET, Unset
11
+
12
+ if TYPE_CHECKING:
13
+ from ..models.machine_response import MachineResponse
14
+
15
+
16
+ T = TypeVar("T", bound="PoolWithMachines")
17
+
18
+
19
+ @_attrs_define
20
+ class PoolWithMachines:
21
+ """Pool response with machines included
22
+
23
+ Attributes:
24
+ name (str):
25
+ id (UUID):
26
+ organization_id (str):
27
+ created_at (datetime.datetime):
28
+ updated_at (datetime.datetime):
29
+ description (Union[None, Unset, str]):
30
+ machine_count (Union[None, Unset, int]): Number of machines in this pool Default: 0.
31
+ machines (Union[Unset, list['MachineResponse']]):
32
+ """
33
+
34
+ name: str
35
+ id: UUID
36
+ organization_id: str
37
+ created_at: datetime.datetime
38
+ updated_at: datetime.datetime
39
+ description: Union[None, Unset, str] = UNSET
40
+ machine_count: Union[None, Unset, int] = 0
41
+ machines: Union[Unset, list["MachineResponse"]] = UNSET
42
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
43
+
44
+ def to_dict(self) -> dict[str, Any]:
45
+ name = self.name
46
+
47
+ id = str(self.id)
48
+
49
+ organization_id = self.organization_id
50
+
51
+ created_at = self.created_at.isoformat()
52
+
53
+ updated_at = self.updated_at.isoformat()
54
+
55
+ description: Union[None, Unset, str]
56
+ if isinstance(self.description, Unset):
57
+ description = UNSET
58
+ else:
59
+ description = self.description
60
+
61
+ machine_count: Union[None, Unset, int]
62
+ if isinstance(self.machine_count, Unset):
63
+ machine_count = UNSET
64
+ else:
65
+ machine_count = self.machine_count
66
+
67
+ machines: Union[Unset, list[dict[str, Any]]] = UNSET
68
+ if not isinstance(self.machines, Unset):
69
+ machines = []
70
+ for machines_item_data in self.machines:
71
+ machines_item = machines_item_data.to_dict()
72
+ machines.append(machines_item)
73
+
74
+ field_dict: dict[str, Any] = {}
75
+ field_dict.update(self.additional_properties)
76
+ field_dict.update(
77
+ {
78
+ "name": name,
79
+ "id": id,
80
+ "organization_id": organization_id,
81
+ "created_at": created_at,
82
+ "updated_at": updated_at,
83
+ }
84
+ )
85
+ if description is not UNSET:
86
+ field_dict["description"] = description
87
+ if machine_count is not UNSET:
88
+ field_dict["machine_count"] = machine_count
89
+ if machines is not UNSET:
90
+ field_dict["machines"] = machines
91
+
92
+ return field_dict
93
+
94
+ @classmethod
95
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
96
+ from ..models.machine_response import MachineResponse
97
+
98
+ d = dict(src_dict)
99
+ name = d.pop("name")
100
+
101
+ id = UUID(d.pop("id"))
102
+
103
+ organization_id = d.pop("organization_id")
104
+
105
+ created_at = isoparse(d.pop("created_at"))
106
+
107
+ updated_at = isoparse(d.pop("updated_at"))
108
+
109
+ def _parse_description(data: object) -> Union[None, Unset, str]:
110
+ if data is None:
111
+ return data
112
+ if isinstance(data, Unset):
113
+ return data
114
+ return cast(Union[None, Unset, str], data)
115
+
116
+ description = _parse_description(d.pop("description", UNSET))
117
+
118
+ def _parse_machine_count(data: object) -> Union[None, Unset, int]:
119
+ if data is None:
120
+ return data
121
+ if isinstance(data, Unset):
122
+ return data
123
+ return cast(Union[None, Unset, int], data)
124
+
125
+ machine_count = _parse_machine_count(d.pop("machine_count", UNSET))
126
+
127
+ machines = []
128
+ _machines = d.pop("machines", UNSET)
129
+ for machines_item_data in _machines or []:
130
+ machines_item = MachineResponse.from_dict(machines_item_data)
131
+
132
+ machines.append(machines_item)
133
+
134
+ pool_with_machines = cls(
135
+ name=name,
136
+ id=id,
137
+ organization_id=organization_id,
138
+ created_at=created_at,
139
+ updated_at=updated_at,
140
+ description=description,
141
+ machine_count=machine_count,
142
+ machines=machines,
143
+ )
144
+
145
+ pool_with_machines.additional_properties = d
146
+ return pool_with_machines
147
+
148
+ @property
149
+ def additional_keys(self) -> list[str]:
150
+ return list(self.additional_properties.keys())
151
+
152
+ def __getitem__(self, key: str) -> Any:
153
+ return self.additional_properties[key]
154
+
155
+ def __setitem__(self, key: str, value: Any) -> None:
156
+ self.additional_properties[key] = value
157
+
158
+ def __delitem__(self, key: str) -> None:
159
+ del self.additional_properties[key]
160
+
161
+ def __contains__(self, key: str) -> bool:
162
+ return key in self.additional_properties
@@ -24,6 +24,8 @@ class RunBulkCreate:
24
24
  count (int): Number of runs to create (max 1000)
25
25
  machine_id (Union[None, UUID, Unset]): Machine ID. If not provided, an available machine will be automatically
26
26
  selected.
27
+ pool_ids (Union[None, Unset, list[UUID]]): Pool IDs to filter available machines. Machine must belong to at
28
+ least one of these pools.
27
29
  input_values (Union['RunBulkCreateInputValuesType0', None, Unset]): Input values for workflow variables
28
30
  file_inputs (Union[None, Unset, list['FileInput']]): Files to upload to the machine
29
31
  """
@@ -31,6 +33,7 @@ class RunBulkCreate:
31
33
  workflow_id: UUID
32
34
  count: int
33
35
  machine_id: Union[None, UUID, Unset] = UNSET
36
+ pool_ids: Union[None, Unset, list[UUID]] = UNSET
34
37
  input_values: Union["RunBulkCreateInputValuesType0", None, Unset] = UNSET
35
38
  file_inputs: Union[None, Unset, list["FileInput"]] = UNSET
36
39
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
@@ -50,6 +53,18 @@ class RunBulkCreate:
50
53
  else:
51
54
  machine_id = self.machine_id
52
55
 
56
+ pool_ids: Union[None, Unset, list[str]]
57
+ if isinstance(self.pool_ids, Unset):
58
+ pool_ids = UNSET
59
+ elif isinstance(self.pool_ids, list):
60
+ pool_ids = []
61
+ for pool_ids_type_0_item_data in self.pool_ids:
62
+ pool_ids_type_0_item = str(pool_ids_type_0_item_data)
63
+ pool_ids.append(pool_ids_type_0_item)
64
+
65
+ else:
66
+ pool_ids = self.pool_ids
67
+
53
68
  input_values: Union[None, Unset, dict[str, Any]]
54
69
  if isinstance(self.input_values, Unset):
55
70
  input_values = UNSET
@@ -80,6 +95,8 @@ class RunBulkCreate:
80
95
  )
81
96
  if machine_id is not UNSET:
82
97
  field_dict["machine_id"] = machine_id
98
+ if pool_ids is not UNSET:
99
+ field_dict["pool_ids"] = pool_ids
83
100
  if input_values is not UNSET:
84
101
  field_dict["input_values"] = input_values
85
102
  if file_inputs is not UNSET:
@@ -114,6 +131,28 @@ class RunBulkCreate:
114
131
 
115
132
  machine_id = _parse_machine_id(d.pop("machine_id", UNSET))
116
133
 
134
+ def _parse_pool_ids(data: object) -> Union[None, Unset, list[UUID]]:
135
+ if data is None:
136
+ return data
137
+ if isinstance(data, Unset):
138
+ return data
139
+ try:
140
+ if not isinstance(data, list):
141
+ raise TypeError()
142
+ pool_ids_type_0 = []
143
+ _pool_ids_type_0 = data
144
+ for pool_ids_type_0_item_data in _pool_ids_type_0:
145
+ pool_ids_type_0_item = UUID(pool_ids_type_0_item_data)
146
+
147
+ pool_ids_type_0.append(pool_ids_type_0_item)
148
+
149
+ return pool_ids_type_0
150
+ except: # noqa: E722
151
+ pass
152
+ return cast(Union[None, Unset, list[UUID]], data)
153
+
154
+ pool_ids = _parse_pool_ids(d.pop("pool_ids", UNSET))
155
+
117
156
  def _parse_input_values(data: object) -> Union["RunBulkCreateInputValuesType0", None, Unset]:
118
157
  if data is None:
119
158
  return data
@@ -157,6 +196,7 @@ class RunBulkCreate:
157
196
  workflow_id=workflow_id,
158
197
  count=count,
159
198
  machine_id=machine_id,
199
+ pool_ids=pool_ids,
160
200
  input_values=input_values,
161
201
  file_inputs=file_inputs,
162
202
  )
@@ -23,12 +23,15 @@ class RunCreate:
23
23
  workflow_id (UUID):
24
24
  machine_id (Union[None, UUID, Unset]): Machine ID. If not provided, an available machine will be automatically
25
25
  selected.
26
+ pool_ids (Union[None, Unset, list[UUID]]): Pool IDs to filter available machines. Machine must belong to at
27
+ least one of these pools.
26
28
  input_values (Union['RunCreateInputValuesType0', None, Unset]): Input values for workflow variables
27
29
  file_inputs (Union[None, Unset, list['FileInput']]): Files to upload to the machine
28
30
  """
29
31
 
30
32
  workflow_id: UUID
31
33
  machine_id: Union[None, UUID, Unset] = UNSET
34
+ pool_ids: Union[None, Unset, list[UUID]] = UNSET
32
35
  input_values: Union["RunCreateInputValuesType0", None, Unset] = UNSET
33
36
  file_inputs: Union[None, Unset, list["FileInput"]] = UNSET
34
37
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
@@ -46,6 +49,18 @@ class RunCreate:
46
49
  else:
47
50
  machine_id = self.machine_id
48
51
 
52
+ pool_ids: Union[None, Unset, list[str]]
53
+ if isinstance(self.pool_ids, Unset):
54
+ pool_ids = UNSET
55
+ elif isinstance(self.pool_ids, list):
56
+ pool_ids = []
57
+ for pool_ids_type_0_item_data in self.pool_ids:
58
+ pool_ids_type_0_item = str(pool_ids_type_0_item_data)
59
+ pool_ids.append(pool_ids_type_0_item)
60
+
61
+ else:
62
+ pool_ids = self.pool_ids
63
+
49
64
  input_values: Union[None, Unset, dict[str, Any]]
50
65
  if isinstance(self.input_values, Unset):
51
66
  input_values = UNSET
@@ -75,6 +90,8 @@ class RunCreate:
75
90
  )
76
91
  if machine_id is not UNSET:
77
92
  field_dict["machine_id"] = machine_id
93
+ if pool_ids is not UNSET:
94
+ field_dict["pool_ids"] = pool_ids
78
95
  if input_values is not UNSET:
79
96
  field_dict["input_values"] = input_values
80
97
  if file_inputs is not UNSET:
@@ -107,6 +124,28 @@ class RunCreate:
107
124
 
108
125
  machine_id = _parse_machine_id(d.pop("machine_id", UNSET))
109
126
 
127
+ def _parse_pool_ids(data: object) -> Union[None, Unset, list[UUID]]:
128
+ if data is None:
129
+ return data
130
+ if isinstance(data, Unset):
131
+ return data
132
+ try:
133
+ if not isinstance(data, list):
134
+ raise TypeError()
135
+ pool_ids_type_0 = []
136
+ _pool_ids_type_0 = data
137
+ for pool_ids_type_0_item_data in _pool_ids_type_0:
138
+ pool_ids_type_0_item = UUID(pool_ids_type_0_item_data)
139
+
140
+ pool_ids_type_0.append(pool_ids_type_0_item)
141
+
142
+ return pool_ids_type_0
143
+ except: # noqa: E722
144
+ pass
145
+ return cast(Union[None, Unset, list[UUID]], data)
146
+
147
+ pool_ids = _parse_pool_ids(d.pop("pool_ids", UNSET))
148
+
110
149
  def _parse_input_values(data: object) -> Union["RunCreateInputValuesType0", None, Unset]:
111
150
  if data is None:
112
151
  return data
@@ -149,6 +188,7 @@ class RunCreate:
149
188
  run_create = cls(
150
189
  workflow_id=workflow_id,
151
190
  machine_id=machine_id,
191
+ pool_ids=pool_ids,
152
192
  input_values=input_values,
153
193
  file_inputs=file_inputs,
154
194
  )
@@ -37,6 +37,7 @@ class RunResponse:
37
37
  created_at (datetime.datetime):
38
38
  user_id (Union[None, UUID, Unset]):
39
39
  organization_id (Union[None, Unset, str]):
40
+ pool_ids (Union[None, Unset, list[UUID]]):
40
41
  """
41
42
 
42
43
  workflow_id: UUID
@@ -52,6 +53,7 @@ class RunResponse:
52
53
  created_at: datetime.datetime
53
54
  user_id: Union[None, UUID, Unset] = UNSET
54
55
  organization_id: Union[None, Unset, str] = UNSET
56
+ pool_ids: Union[None, Unset, list[UUID]] = UNSET
55
57
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
56
58
 
57
59
  def to_dict(self) -> dict[str, Any]:
@@ -129,6 +131,18 @@ class RunResponse:
129
131
  else:
130
132
  organization_id = self.organization_id
131
133
 
134
+ pool_ids: Union[None, Unset, list[str]]
135
+ if isinstance(self.pool_ids, Unset):
136
+ pool_ids = UNSET
137
+ elif isinstance(self.pool_ids, list):
138
+ pool_ids = []
139
+ for pool_ids_type_0_item_data in self.pool_ids:
140
+ pool_ids_type_0_item = str(pool_ids_type_0_item_data)
141
+ pool_ids.append(pool_ids_type_0_item)
142
+
143
+ else:
144
+ pool_ids = self.pool_ids
145
+
132
146
  field_dict: dict[str, Any] = {}
133
147
  field_dict.update(self.additional_properties)
134
148
  field_dict.update(
@@ -150,6 +164,8 @@ class RunResponse:
150
164
  field_dict["user_id"] = user_id
151
165
  if organization_id is not UNSET:
152
166
  field_dict["organization_id"] = organization_id
167
+ if pool_ids is not UNSET:
168
+ field_dict["pool_ids"] = pool_ids
153
169
 
154
170
  return field_dict
155
171
 
@@ -306,6 +322,28 @@ class RunResponse:
306
322
 
307
323
  organization_id = _parse_organization_id(d.pop("organization_id", UNSET))
308
324
 
325
+ def _parse_pool_ids(data: object) -> Union[None, Unset, list[UUID]]:
326
+ if data is None:
327
+ return data
328
+ if isinstance(data, Unset):
329
+ return data
330
+ try:
331
+ if not isinstance(data, list):
332
+ raise TypeError()
333
+ pool_ids_type_0 = []
334
+ _pool_ids_type_0 = data
335
+ for pool_ids_type_0_item_data in _pool_ids_type_0:
336
+ pool_ids_type_0_item = UUID(pool_ids_type_0_item_data)
337
+
338
+ pool_ids_type_0.append(pool_ids_type_0_item)
339
+
340
+ return pool_ids_type_0
341
+ except: # noqa: E722
342
+ pass
343
+ return cast(Union[None, Unset, list[UUID]], data)
344
+
345
+ pool_ids = _parse_pool_ids(d.pop("pool_ids", UNSET))
346
+
309
347
  run_response = cls(
310
348
  workflow_id=workflow_id,
311
349
  machine_id=machine_id,
@@ -320,6 +358,7 @@ class RunResponse:
320
358
  created_at=created_at,
321
359
  user_id=user_id,
322
360
  organization_id=organization_id,
361
+ pool_ids=pool_ids,
323
362
  )
324
363
 
325
364
  run_response.additional_properties = d