blaxel 0.2.26rc119__py3-none-any.whl → 0.2.27__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. blaxel/__init__.py +3 -5
  2. blaxel/core/__init__.py +9 -1
  3. blaxel/core/client/api/{privateclusters/create_private_cluster.py → images/cleanup_images.py} +31 -25
  4. blaxel/core/client/models/__init__.py +2 -4
  5. blaxel/core/client/models/agent.py +1 -0
  6. blaxel/core/client/models/agent_spec.py +1 -24
  7. blaxel/core/client/models/billable_time_metric.py +1 -0
  8. blaxel/core/{sandbox/client/models/find_match.py → client/models/cleanup_images_response_200.py} +19 -19
  9. blaxel/core/client/models/configuration.py +1 -0
  10. blaxel/core/client/models/core_event.py +9 -0
  11. blaxel/core/client/models/core_spec.py +1 -24
  12. blaxel/core/client/models/core_spec_configurations.py +1 -0
  13. blaxel/core/client/models/create_job_execution_request.py +1 -0
  14. blaxel/core/client/models/create_job_execution_response.py +1 -0
  15. blaxel/core/client/models/custom_domain.py +1 -0
  16. blaxel/core/client/models/custom_domain_metadata.py +1 -0
  17. blaxel/core/client/models/custom_domain_spec.py +1 -0
  18. blaxel/core/client/models/delete_volume_template_version_response_200.py +1 -0
  19. blaxel/core/client/models/entrypoint.py +1 -0
  20. blaxel/core/client/models/form.py +1 -0
  21. blaxel/core/client/models/function.py +1 -0
  22. blaxel/core/client/models/function_spec.py +1 -24
  23. blaxel/core/client/models/image.py +1 -0
  24. blaxel/core/client/models/image_spec.py +1 -0
  25. blaxel/core/client/models/integration.py +1 -0
  26. blaxel/core/client/models/integration_connection.py +1 -0
  27. blaxel/core/client/models/integration_connection_spec.py +1 -0
  28. blaxel/core/client/models/integration_endpoint.py +1 -0
  29. blaxel/core/client/models/integration_endpoints.py +2 -0
  30. blaxel/core/client/models/job.py +1 -0
  31. blaxel/core/client/models/job_execution.py +1 -0
  32. blaxel/core/client/models/job_execution_spec.py +1 -0
  33. blaxel/core/client/models/job_execution_task.py +1 -0
  34. blaxel/core/client/models/job_metrics.py +1 -0
  35. blaxel/core/client/models/job_spec.py +1 -24
  36. blaxel/core/client/models/jobs_network_chart.py +1 -0
  37. blaxel/core/client/models/jobs_success_failed_chart.py +1 -0
  38. blaxel/core/client/models/latency_metric.py +1 -0
  39. blaxel/core/client/models/location_response.py +1 -0
  40. blaxel/core/client/models/mcp_definition.py +1 -0
  41. blaxel/core/client/models/metadata.py +1 -0
  42. blaxel/core/client/models/metrics.py +34 -0
  43. blaxel/core/client/models/model.py +1 -0
  44. blaxel/core/client/models/model_spec.py +1 -24
  45. blaxel/core/client/models/pending_invitation_accept.py +1 -0
  46. blaxel/core/client/models/pending_invitation_render.py +1 -0
  47. blaxel/core/client/models/policy.py +1 -0
  48. blaxel/core/client/models/policy_spec.py +1 -0
  49. blaxel/core/client/models/preview.py +1 -0
  50. blaxel/core/client/models/preview_spec.py +1 -0
  51. blaxel/core/client/models/preview_token.py +1 -0
  52. blaxel/core/client/models/public_ips.py +1 -0
  53. blaxel/core/client/models/request_duration_over_time_metrics.py +1 -0
  54. blaxel/core/client/models/request_total_by_origin_metric.py +1 -0
  55. blaxel/core/client/models/request_total_metric.py +1 -0
  56. blaxel/core/client/models/resource_metrics.py +1 -0
  57. blaxel/core/client/models/revision_configuration.py +9 -0
  58. blaxel/core/client/models/runtime.py +1 -0
  59. blaxel/core/client/models/sandbox.py +1 -0
  60. blaxel/core/client/models/sandbox_definition.py +1 -0
  61. blaxel/core/client/models/sandbox_lifecycle.py +1 -0
  62. blaxel/core/client/models/sandbox_spec.py +1 -24
  63. blaxel/core/client/models/serverless_config.py +1 -0
  64. blaxel/core/client/models/start_sandbox.py +1 -0
  65. blaxel/core/client/models/stop_sandbox.py +1 -0
  66. blaxel/core/client/models/store_agent.py +1 -0
  67. blaxel/core/client/models/store_configuration.py +1 -0
  68. blaxel/core/client/models/template.py +1 -0
  69. blaxel/core/client/models/time_to_first_token_over_time_metrics.py +1 -0
  70. blaxel/core/client/models/token_rate_metrics.py +1 -0
  71. blaxel/core/client/models/trigger.py +10 -0
  72. blaxel/core/client/models/trigger_configuration.py +28 -0
  73. blaxel/core/client/models/volume.py +1 -0
  74. blaxel/core/client/models/volume_template.py +1 -0
  75. blaxel/core/client/models/websocket_channel.py +9 -0
  76. blaxel/core/client/models/workspace.py +1 -0
  77. blaxel/core/client/response_interceptor.py +0 -1
  78. blaxel/core/common/__init__.py +11 -2
  79. blaxel/core/common/autoload.py +1 -85
  80. blaxel/core/common/settings.py +56 -16
  81. blaxel/core/common/webhook.py +187 -0
  82. blaxel/core/jobs/__init__.py +352 -3
  83. blaxel/core/sandbox/client/models/__init__.py +0 -16
  84. blaxel/core/sandbox/default/action.py +10 -27
  85. blaxel/core/sandbox/default/filesystem.py +47 -185
  86. blaxel/core/sandbox/default/interpreter.py +55 -62
  87. blaxel/core/sandbox/default/process.py +46 -66
  88. {blaxel-0.2.26rc119.dist-info → blaxel-0.2.27.dist-info}/METADATA +2 -3
  89. {blaxel-0.2.26rc119.dist-info → blaxel-0.2.27.dist-info}/RECORD +91 -114
  90. blaxel/core/client/api/privateclusters/__init__.py +0 -0
  91. blaxel/core/client/api/privateclusters/delete_private_cluster.py +0 -152
  92. blaxel/core/client/api/privateclusters/get_private_cluster.py +0 -155
  93. blaxel/core/client/api/privateclusters/get_private_cluster_health.py +0 -97
  94. blaxel/core/client/api/privateclusters/list_private_clusters.py +0 -136
  95. blaxel/core/client/api/privateclusters/update_private_cluster.py +0 -152
  96. blaxel/core/client/api/privateclusters/update_private_cluster_health.py +0 -97
  97. blaxel/core/client/models/model_private_cluster.py +0 -79
  98. blaxel/core/client/models/private_cluster.py +0 -183
  99. blaxel/core/sandbox/client/api/filesystem/delete_filesystem_tree_path.py +0 -188
  100. blaxel/core/sandbox/client/api/filesystem/get_filesystem_content_search_path.py +0 -265
  101. blaxel/core/sandbox/client/api/filesystem/get_filesystem_find_path.py +0 -248
  102. blaxel/core/sandbox/client/api/filesystem/get_filesystem_search_path.py +0 -237
  103. blaxel/core/sandbox/client/api/filesystem/get_filesystem_tree_path.py +0 -197
  104. blaxel/core/sandbox/client/api/filesystem/put_filesystem_tree_path.py +0 -223
  105. blaxel/core/sandbox/client/api/websocket/__init__.py +0 -0
  106. blaxel/core/sandbox/client/api/websocket/get_ws.py +0 -81
  107. blaxel/core/sandbox/client/models/content_search_match.py +0 -98
  108. blaxel/core/sandbox/client/models/content_search_response.py +0 -97
  109. blaxel/core/sandbox/client/models/find_response.py +0 -88
  110. blaxel/core/sandbox/client/models/fuzzy_search_match.py +0 -78
  111. blaxel/core/sandbox/client/models/fuzzy_search_response.py +0 -88
  112. blaxel/core/sandbox/client/models/tree_request.py +0 -76
  113. blaxel/core/sandbox/client/models/tree_request_files.py +0 -49
  114. {blaxel-0.2.26rc119.dist-info → blaxel-0.2.27.dist-info}/WHEEL +0 -0
  115. {blaxel-0.2.26rc119.dist-info → blaxel-0.2.27.dist-info}/licenses/LICENSE +0 -0
blaxel/__init__.py CHANGED
@@ -4,9 +4,7 @@ from .core.common.autoload import autoload
4
4
  from .core.common.env import env
5
5
  from .core.common.settings import settings
6
6
 
7
- __version__ = "0.2.26.pre-119"
8
- __commit__ = "dda66951b9606bb9bc2fbaf0b6f680af5343b315"
9
- __sentry_dsn__ = "https://9711de13cd02b285ca4378c01de8dc30@o4508714045276160.ingest.us.sentry.io/4510461121462272"
10
- __all__ = ["autoload", "settings", "env"]
7
+ autoload()
11
8
 
12
- autoload()
9
+ __version__ = "0.2.0"
10
+ __all__ = ["autoload", "settings", "env"]
blaxel/core/__init__.py CHANGED
@@ -4,7 +4,13 @@ from .agents import BlAgent, bl_agent
4
4
  from .authentication import BlaxelAuth, auth, get_credentials
5
5
  from .cache import find_from_cache
6
6
  from .client.client import client
7
- from .common import autoload, env, settings
7
+ from .common import (
8
+ autoload,
9
+ env,
10
+ settings,
11
+ verify_webhook_from_request,
12
+ verify_webhook_signature,
13
+ )
8
14
  from .jobs import BlJobWrapper
9
15
  from .mcp import BlaxelMcpServerTransport, websocket_client
10
16
  from .models import BLModel, bl_model
@@ -60,4 +66,6 @@ __all__ = [
60
66
  "websocket_client",
61
67
  "VolumeInstance",
62
68
  "VolumeCreateConfiguration",
69
+ "verify_webhook_signature",
70
+ "verify_webhook_from_request",
63
71
  ]
@@ -1,41 +1,35 @@
1
1
  from http import HTTPStatus
2
- from typing import Any, Union, cast
2
+ from typing import Any, Union
3
3
 
4
4
  import httpx
5
5
 
6
6
  from ... import errors
7
7
  from ...client import Client
8
- from ...models.private_cluster import PrivateCluster
8
+ from ...models.cleanup_images_response_200 import CleanupImagesResponse200
9
9
  from ...types import Response
10
10
 
11
11
 
12
12
  def _get_kwargs() -> dict[str, Any]:
13
13
  _kwargs: dict[str, Any] = {
14
- "method": "post",
15
- "url": "/privateclusters",
14
+ "method": "delete",
15
+ "url": "/images",
16
16
  }
17
17
 
18
18
  return _kwargs
19
19
 
20
20
 
21
- def _parse_response(*, client: Client, response: httpx.Response) -> Union[Any, PrivateCluster] | None:
21
+ def _parse_response(*, client: Client, response: httpx.Response) -> CleanupImagesResponse200 | None:
22
22
  if response.status_code == 200:
23
- response_200 = PrivateCluster.from_dict(response.json())
23
+ response_200 = CleanupImagesResponse200.from_dict(response.json())
24
24
 
25
25
  return response_200
26
- if response.status_code == 401:
27
- response_401 = cast(Any, None)
28
- return response_401
29
- if response.status_code == 403:
30
- response_403 = cast(Any, None)
31
- return response_403
32
26
  if client.raise_on_unexpected_status:
33
27
  raise errors.UnexpectedStatus(response.status_code, response.content)
34
28
  else:
35
29
  return None
36
30
 
37
31
 
38
- def _build_response(*, client: Client, response: httpx.Response) -> Response[Union[Any, PrivateCluster]]:
32
+ def _build_response(*, client: Client, response: httpx.Response) -> Response[CleanupImagesResponse200]:
39
33
  return Response(
40
34
  status_code=HTTPStatus(response.status_code),
41
35
  content=response.content,
@@ -47,15 +41,18 @@ def _build_response(*, client: Client, response: httpx.Response) -> Response[Uni
47
41
  def sync_detailed(
48
42
  *,
49
43
  client: Union[Client],
50
- ) -> Response[Union[Any, PrivateCluster]]:
51
- """Create private cluster
44
+ ) -> Response[CleanupImagesResponse200]:
45
+ """Cleanup unused images
46
+
47
+ Deletes all unused images in the workspace. Only removes images that are not currently being used by
48
+ any agents, functions, sandboxes, or jobs.
52
49
 
53
50
  Raises:
54
51
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
55
52
  httpx.TimeoutException: If the request takes longer than Client.timeout.
56
53
 
57
54
  Returns:
58
- Response[Union[Any, PrivateCluster]]
55
+ Response[CleanupImagesResponse200]
59
56
  """
60
57
 
61
58
  kwargs = _get_kwargs()
@@ -70,15 +67,18 @@ def sync_detailed(
70
67
  def sync(
71
68
  *,
72
69
  client: Union[Client],
73
- ) -> Union[Any, PrivateCluster] | None:
74
- """Create private cluster
70
+ ) -> CleanupImagesResponse200 | None:
71
+ """Cleanup unused images
72
+
73
+ Deletes all unused images in the workspace. Only removes images that are not currently being used by
74
+ any agents, functions, sandboxes, or jobs.
75
75
 
76
76
  Raises:
77
77
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
78
78
  httpx.TimeoutException: If the request takes longer than Client.timeout.
79
79
 
80
80
  Returns:
81
- Union[Any, PrivateCluster]
81
+ CleanupImagesResponse200
82
82
  """
83
83
 
84
84
  return sync_detailed(
@@ -89,15 +89,18 @@ def sync(
89
89
  async def asyncio_detailed(
90
90
  *,
91
91
  client: Union[Client],
92
- ) -> Response[Union[Any, PrivateCluster]]:
93
- """Create private cluster
92
+ ) -> Response[CleanupImagesResponse200]:
93
+ """Cleanup unused images
94
+
95
+ Deletes all unused images in the workspace. Only removes images that are not currently being used by
96
+ any agents, functions, sandboxes, or jobs.
94
97
 
95
98
  Raises:
96
99
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
97
100
  httpx.TimeoutException: If the request takes longer than Client.timeout.
98
101
 
99
102
  Returns:
100
- Response[Union[Any, PrivateCluster]]
103
+ Response[CleanupImagesResponse200]
101
104
  """
102
105
 
103
106
  kwargs = _get_kwargs()
@@ -110,15 +113,18 @@ async def asyncio_detailed(
110
113
  async def asyncio(
111
114
  *,
112
115
  client: Union[Client],
113
- ) -> Union[Any, PrivateCluster] | None:
114
- """Create private cluster
116
+ ) -> CleanupImagesResponse200 | None:
117
+ """Cleanup unused images
118
+
119
+ Deletes all unused images in the workspace. Only removes images that are not currently being used by
120
+ any agents, functions, sandboxes, or jobs.
115
121
 
116
122
  Raises:
117
123
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
118
124
  httpx.TimeoutException: If the request takes longer than Client.timeout.
119
125
 
120
126
  Returns:
121
- Union[Any, PrivateCluster]
127
+ CleanupImagesResponse200
122
128
  """
123
129
 
124
130
  return (
@@ -6,6 +6,7 @@ from .agent_spec import AgentSpec
6
6
  from .api_key import ApiKey
7
7
  from .billable_time_metric import BillableTimeMetric
8
8
  from .check_workspace_availability_body import CheckWorkspaceAvailabilityBody
9
+ from .cleanup_images_response_200 import CleanupImagesResponse200
9
10
  from .configuration import Configuration
10
11
  from .continent import Continent
11
12
  from .core_event import CoreEvent
@@ -96,7 +97,6 @@ from .metrics_models import MetricsModels
96
97
  from .metrics_request_total_per_code import MetricsRequestTotalPerCode
97
98
  from .metrics_rps_per_code import MetricsRpsPerCode
98
99
  from .model import Model
99
- from .model_private_cluster import ModelPrivateCluster
100
100
  from .model_spec import ModelSpec
101
101
  from .o_auth import OAuth
102
102
  from .owner_fields import OwnerFields
@@ -120,7 +120,6 @@ from .preview_spec_response_headers import PreviewSpecResponseHeaders
120
120
  from .preview_token import PreviewToken
121
121
  from .preview_token_metadata import PreviewTokenMetadata
122
122
  from .preview_token_spec import PreviewTokenSpec
123
- from .private_cluster import PrivateCluster
124
123
  from .private_location import PrivateLocation
125
124
  from .public_ip import PublicIp
126
125
  from .public_ips import PublicIps
@@ -206,6 +205,7 @@ __all__ = (
206
205
  "ApiKey",
207
206
  "BillableTimeMetric",
208
207
  "CheckWorkspaceAvailabilityBody",
208
+ "CleanupImagesResponse200",
209
209
  "Configuration",
210
210
  "Continent",
211
211
  "CoreEvent",
@@ -294,7 +294,6 @@ __all__ = (
294
294
  "MetricsRequestTotalPerCode",
295
295
  "MetricsRpsPerCode",
296
296
  "Model",
297
- "ModelPrivateCluster",
298
297
  "ModelSpec",
299
298
  "OAuth",
300
299
  "OwnerFields",
@@ -318,7 +317,6 @@ __all__ = (
318
317
  "PreviewToken",
319
318
  "PreviewTokenMetadata",
320
319
  "PreviewTokenSpec",
321
- "PrivateCluster",
322
320
  "PrivateLocation",
323
321
  "PublicIp",
324
322
  "PublicIps",
@@ -32,6 +32,7 @@ class Agent:
32
32
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
33
33
 
34
34
  def to_dict(self) -> dict[str, Any]:
35
+
35
36
  events: Union[Unset, list[dict[str, Any]]] = UNSET
36
37
  if not isinstance(self.events, Unset):
37
38
  events = []
@@ -8,7 +8,6 @@ from ..types import UNSET, Unset
8
8
  if TYPE_CHECKING:
9
9
  from ..models.core_spec_configurations import CoreSpecConfigurations
10
10
  from ..models.flavor import Flavor
11
- from ..models.model_private_cluster import ModelPrivateCluster
12
11
  from ..models.repository import Repository
13
12
  from ..models.revision_configuration import RevisionConfiguration
14
13
  from ..models.runtime import Runtime
@@ -28,7 +27,6 @@ class AgentSpec:
28
27
  flavors (Union[Unset, list['Flavor']]): Types of hardware available for deployments
29
28
  integration_connections (Union[Unset, list[str]]):
30
29
  policies (Union[Unset, list[str]]):
31
- private_clusters (Union[Unset, ModelPrivateCluster]): Private cluster where the model deployment is deployed
32
30
  revision (Union[Unset, RevisionConfiguration]): Revision configuration
33
31
  runtime (Union[Unset, Runtime]): Set of configurations for a deployment
34
32
  sandbox (Union[Unset, bool]): Sandbox mode
@@ -42,7 +40,6 @@ class AgentSpec:
42
40
  flavors: Union[Unset, list["Flavor"]] = UNSET
43
41
  integration_connections: Union[Unset, list[str]] = UNSET
44
42
  policies: Union[Unset, list[str]] = UNSET
45
- private_clusters: Union[Unset, "ModelPrivateCluster"] = UNSET
46
43
  revision: Union[Unset, "RevisionConfiguration"] = UNSET
47
44
  runtime: Union[Unset, "Runtime"] = UNSET
48
45
  sandbox: Union[Unset, bool] = UNSET
@@ -52,6 +49,7 @@ class AgentSpec:
52
49
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
53
50
 
54
51
  def to_dict(self) -> dict[str, Any]:
52
+
55
53
  configurations: Union[Unset, dict[str, Any]] = UNSET
56
54
  if (
57
55
  self.configurations
@@ -82,16 +80,6 @@ class AgentSpec:
82
80
  if not isinstance(self.policies, Unset):
83
81
  policies = self.policies
84
82
 
85
- private_clusters: Union[Unset, dict[str, Any]] = UNSET
86
- if (
87
- self.private_clusters
88
- and not isinstance(self.private_clusters, Unset)
89
- and not isinstance(self.private_clusters, dict)
90
- ):
91
- private_clusters = self.private_clusters.to_dict()
92
- elif self.private_clusters and isinstance(self.private_clusters, dict):
93
- private_clusters = self.private_clusters
94
-
95
83
  revision: Union[Unset, dict[str, Any]] = UNSET
96
84
  if self.revision and not isinstance(self.revision, Unset) and not isinstance(self.revision, dict):
97
85
  revision = self.revision.to_dict()
@@ -137,8 +125,6 @@ class AgentSpec:
137
125
  field_dict["integrationConnections"] = integration_connections
138
126
  if policies is not UNSET:
139
127
  field_dict["policies"] = policies
140
- if private_clusters is not UNSET:
141
- field_dict["privateClusters"] = private_clusters
142
128
  if revision is not UNSET:
143
129
  field_dict["revision"] = revision
144
130
  if runtime is not UNSET:
@@ -158,7 +144,6 @@ class AgentSpec:
158
144
  def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
159
145
  from ..models.core_spec_configurations import CoreSpecConfigurations
160
146
  from ..models.flavor import Flavor
161
- from ..models.model_private_cluster import ModelPrivateCluster
162
147
  from ..models.repository import Repository
163
148
  from ..models.revision_configuration import RevisionConfiguration
164
149
  from ..models.runtime import Runtime
@@ -187,13 +172,6 @@ class AgentSpec:
187
172
 
188
173
  policies = cast(list[str], d.pop("policies", UNSET))
189
174
 
190
- _private_clusters = d.pop("privateClusters", UNSET)
191
- private_clusters: Union[Unset, ModelPrivateCluster]
192
- if isinstance(_private_clusters, Unset):
193
- private_clusters = UNSET
194
- else:
195
- private_clusters = ModelPrivateCluster.from_dict(_private_clusters)
196
-
197
175
  _revision = d.pop("revision", UNSET)
198
176
  revision: Union[Unset, RevisionConfiguration]
199
177
  if isinstance(_revision, Unset):
@@ -232,7 +210,6 @@ class AgentSpec:
232
210
  flavors=flavors,
233
211
  integration_connections=integration_connections,
234
212
  policies=policies,
235
- private_clusters=private_clusters,
236
213
  revision=revision,
237
214
  runtime=runtime,
238
215
  sandbox=sandbox,
@@ -26,6 +26,7 @@ class BillableTimeMetric:
26
26
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
27
27
 
28
28
  def to_dict(self) -> dict[str, Any]:
29
+
29
30
  billable_time: Union[Unset, list[dict[str, Any]]] = UNSET
30
31
  if not isinstance(self.billable_time, Unset):
31
32
  billable_time = []
@@ -5,33 +5,33 @@ from attrs import field as _attrs_field
5
5
 
6
6
  from ..types import UNSET, Unset
7
7
 
8
- T = TypeVar("T", bound="FindMatch")
8
+ T = TypeVar("T", bound="CleanupImagesResponse200")
9
9
 
10
10
 
11
11
  @_attrs_define
12
- class FindMatch:
12
+ class CleanupImagesResponse200:
13
13
  """
14
14
  Attributes:
15
- path (Union[Unset, str]): Example: src/main.go.
16
- type_ (Union[Unset, str]): "file" or "directory" Example: file.
15
+ deleted (Union[Unset, int]): Number of images deleted
16
+ message (Union[Unset, str]): Result message
17
17
  """
18
18
 
19
- path: Union[Unset, str] = UNSET
20
- type_: Union[Unset, str] = UNSET
19
+ deleted: Union[Unset, int] = UNSET
20
+ message: Union[Unset, str] = UNSET
21
21
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
22
22
 
23
23
  def to_dict(self) -> dict[str, Any]:
24
- path = self.path
24
+ deleted = self.deleted
25
25
 
26
- type_ = self.type_
26
+ message = self.message
27
27
 
28
28
  field_dict: dict[str, Any] = {}
29
29
  field_dict.update(self.additional_properties)
30
30
  field_dict.update({})
31
- if path is not UNSET:
32
- field_dict["path"] = path
33
- if type_ is not UNSET:
34
- field_dict["type"] = type_
31
+ if deleted is not UNSET:
32
+ field_dict["deleted"] = deleted
33
+ if message is not UNSET:
34
+ field_dict["message"] = message
35
35
 
36
36
  return field_dict
37
37
 
@@ -40,17 +40,17 @@ class FindMatch:
40
40
  if not src_dict:
41
41
  return None
42
42
  d = src_dict.copy()
43
- path = d.pop("path", UNSET)
43
+ deleted = d.pop("deleted", UNSET)
44
44
 
45
- type_ = d.pop("type", UNSET)
45
+ message = d.pop("message", UNSET)
46
46
 
47
- find_match = cls(
48
- path=path,
49
- type_=type_,
47
+ cleanup_images_response_200 = cls(
48
+ deleted=deleted,
49
+ message=message,
50
50
  )
51
51
 
52
- find_match.additional_properties = d
53
- return find_match
52
+ cleanup_images_response_200.additional_properties = d
53
+ return cleanup_images_response_200
54
54
 
55
55
  @property
56
56
  def additional_keys(self) -> list[str]:
@@ -33,6 +33,7 @@ class Configuration:
33
33
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
34
34
 
35
35
  def to_dict(self) -> dict[str, Any]:
36
+
36
37
  continents: Union[Unset, list[dict[str, Any]]] = UNSET
37
38
  if not isinstance(self.continents, Unset):
38
39
  continents = []
@@ -13,6 +13,7 @@ class CoreEvent:
13
13
  """Core event
14
14
 
15
15
  Attributes:
16
+ canary_revision (Union[Unset, str]): Canary revisionID link to the event
16
17
  message (Union[Unset, str]): Event message
17
18
  revision (Union[Unset, str]): RevisionID link to the event
18
19
  status (Union[Unset, str]): Event status
@@ -20,6 +21,7 @@ class CoreEvent:
20
21
  type_ (Union[Unset, str]): Event type
21
22
  """
22
23
 
24
+ canary_revision: Union[Unset, str] = UNSET
23
25
  message: Union[Unset, str] = UNSET
24
26
  revision: Union[Unset, str] = UNSET
25
27
  status: Union[Unset, str] = UNSET
@@ -28,6 +30,8 @@ class CoreEvent:
28
30
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
29
31
 
30
32
  def to_dict(self) -> dict[str, Any]:
33
+ canary_revision = self.canary_revision
34
+
31
35
  message = self.message
32
36
 
33
37
  revision = self.revision
@@ -41,6 +45,8 @@ class CoreEvent:
41
45
  field_dict: dict[str, Any] = {}
42
46
  field_dict.update(self.additional_properties)
43
47
  field_dict.update({})
48
+ if canary_revision is not UNSET:
49
+ field_dict["canaryRevision"] = canary_revision
44
50
  if message is not UNSET:
45
51
  field_dict["message"] = message
46
52
  if revision is not UNSET:
@@ -59,6 +65,8 @@ class CoreEvent:
59
65
  if not src_dict:
60
66
  return None
61
67
  d = src_dict.copy()
68
+ canary_revision = d.pop("canaryRevision", UNSET)
69
+
62
70
  message = d.pop("message", UNSET)
63
71
 
64
72
  revision = d.pop("revision", UNSET)
@@ -70,6 +78,7 @@ class CoreEvent:
70
78
  type_ = d.pop("type", UNSET)
71
79
 
72
80
  core_event = cls(
81
+ canary_revision=canary_revision,
73
82
  message=message,
74
83
  revision=revision,
75
84
  status=status,
@@ -8,7 +8,6 @@ from ..types import UNSET, Unset
8
8
  if TYPE_CHECKING:
9
9
  from ..models.core_spec_configurations import CoreSpecConfigurations
10
10
  from ..models.flavor import Flavor
11
- from ..models.model_private_cluster import ModelPrivateCluster
12
11
  from ..models.revision_configuration import RevisionConfiguration
13
12
  from ..models.runtime import Runtime
14
13
 
@@ -26,7 +25,6 @@ class CoreSpec:
26
25
  flavors (Union[Unset, list['Flavor']]): Types of hardware available for deployments
27
26
  integration_connections (Union[Unset, list[str]]):
28
27
  policies (Union[Unset, list[str]]):
29
- private_clusters (Union[Unset, ModelPrivateCluster]): Private cluster where the model deployment is deployed
30
28
  revision (Union[Unset, RevisionConfiguration]): Revision configuration
31
29
  runtime (Union[Unset, Runtime]): Set of configurations for a deployment
32
30
  sandbox (Union[Unset, bool]): Sandbox mode
@@ -37,13 +35,13 @@ class CoreSpec:
37
35
  flavors: Union[Unset, list["Flavor"]] = UNSET
38
36
  integration_connections: Union[Unset, list[str]] = UNSET
39
37
  policies: Union[Unset, list[str]] = UNSET
40
- private_clusters: Union[Unset, "ModelPrivateCluster"] = UNSET
41
38
  revision: Union[Unset, "RevisionConfiguration"] = UNSET
42
39
  runtime: Union[Unset, "Runtime"] = UNSET
43
40
  sandbox: Union[Unset, bool] = UNSET
44
41
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
45
42
 
46
43
  def to_dict(self) -> dict[str, Any]:
44
+
47
45
  configurations: Union[Unset, dict[str, Any]] = UNSET
48
46
  if (
49
47
  self.configurations
@@ -74,16 +72,6 @@ class CoreSpec:
74
72
  if not isinstance(self.policies, Unset):
75
73
  policies = self.policies
76
74
 
77
- private_clusters: Union[Unset, dict[str, Any]] = UNSET
78
- if (
79
- self.private_clusters
80
- and not isinstance(self.private_clusters, Unset)
81
- and not isinstance(self.private_clusters, dict)
82
- ):
83
- private_clusters = self.private_clusters.to_dict()
84
- elif self.private_clusters and isinstance(self.private_clusters, dict):
85
- private_clusters = self.private_clusters
86
-
87
75
  revision: Union[Unset, dict[str, Any]] = UNSET
88
76
  if self.revision and not isinstance(self.revision, Unset) and not isinstance(self.revision, dict):
89
77
  revision = self.revision.to_dict()
@@ -111,8 +99,6 @@ class CoreSpec:
111
99
  field_dict["integrationConnections"] = integration_connections
112
100
  if policies is not UNSET:
113
101
  field_dict["policies"] = policies
114
- if private_clusters is not UNSET:
115
- field_dict["privateClusters"] = private_clusters
116
102
  if revision is not UNSET:
117
103
  field_dict["revision"] = revision
118
104
  if runtime is not UNSET:
@@ -126,7 +112,6 @@ class CoreSpec:
126
112
  def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
127
113
  from ..models.core_spec_configurations import CoreSpecConfigurations
128
114
  from ..models.flavor import Flavor
129
- from ..models.model_private_cluster import ModelPrivateCluster
130
115
  from ..models.revision_configuration import RevisionConfiguration
131
116
  from ..models.runtime import Runtime
132
117
 
@@ -153,13 +138,6 @@ class CoreSpec:
153
138
 
154
139
  policies = cast(list[str], d.pop("policies", UNSET))
155
140
 
156
- _private_clusters = d.pop("privateClusters", UNSET)
157
- private_clusters: Union[Unset, ModelPrivateCluster]
158
- if isinstance(_private_clusters, Unset):
159
- private_clusters = UNSET
160
- else:
161
- private_clusters = ModelPrivateCluster.from_dict(_private_clusters)
162
-
163
141
  _revision = d.pop("revision", UNSET)
164
142
  revision: Union[Unset, RevisionConfiguration]
165
143
  if isinstance(_revision, Unset):
@@ -182,7 +160,6 @@ class CoreSpec:
182
160
  flavors=flavors,
183
161
  integration_connections=integration_connections,
184
162
  policies=policies,
185
- private_clusters=private_clusters,
186
163
  revision=revision,
187
164
  runtime=runtime,
188
165
  sandbox=sandbox,
@@ -25,6 +25,7 @@ class CoreSpecConfigurations:
25
25
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
26
26
 
27
27
  def to_dict(self) -> dict[str, Any]:
28
+
28
29
  key: Union[Unset, dict[str, Any]] = UNSET
29
30
  if self.key and not isinstance(self.key, Unset) and not isinstance(self.key, dict):
30
31
  key = self.key.to_dict()
@@ -33,6 +33,7 @@ class CreateJobExecutionRequest:
33
33
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
34
34
 
35
35
  def to_dict(self) -> dict[str, Any]:
36
+
36
37
  execution_id = self.execution_id
37
38
 
38
39
  id = self.id
@@ -35,6 +35,7 @@ class CreateJobExecutionResponse:
35
35
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
36
36
 
37
37
  def to_dict(self) -> dict[str, Any]:
38
+
38
39
  execution_id = self.execution_id
39
40
 
40
41
  id = self.id
@@ -30,6 +30,7 @@ class CustomDomain:
30
30
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
31
31
 
32
32
  def to_dict(self) -> dict[str, Any]:
33
+
33
34
  metadata: Union[Unset, dict[str, Any]] = UNSET
34
35
  if self.metadata and not isinstance(self.metadata, Unset) and not isinstance(self.metadata, dict):
35
36
  metadata = self.metadata.to_dict()
@@ -38,6 +38,7 @@ class CustomDomainMetadata:
38
38
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
39
39
 
40
40
  def to_dict(self) -> dict[str, Any]:
41
+
41
42
  created_at = self.created_at
42
43
 
43
44
  updated_at = self.updated_at
@@ -35,6 +35,7 @@ class CustomDomainSpec:
35
35
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
36
36
 
37
37
  def to_dict(self) -> dict[str, Any]:
38
+
38
39
  cname_records = self.cname_records
39
40
 
40
41
  last_verified_at = self.last_verified_at
@@ -25,6 +25,7 @@ class DeleteVolumeTemplateVersionResponse200:
25
25
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
26
26
 
27
27
  def to_dict(self) -> dict[str, Any]:
28
+
28
29
  message = self.message
29
30
 
30
31
  template: Union[Unset, dict[str, Any]] = UNSET
@@ -30,6 +30,7 @@ class Entrypoint:
30
30
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
31
31
 
32
32
  def to_dict(self) -> dict[str, Any]:
33
+
33
34
  args: Union[Unset, list[Any]] = UNSET
34
35
  if not isinstance(self.args, Unset):
35
36
  args = self.args
@@ -30,6 +30,7 @@ class Form:
30
30
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
31
31
 
32
32
  def to_dict(self) -> dict[str, Any]:
33
+
33
34
  config: Union[Unset, dict[str, Any]] = UNSET
34
35
  if self.config and not isinstance(self.config, Unset) and not isinstance(self.config, dict):
35
36
  config = self.config.to_dict()
@@ -32,6 +32,7 @@ class Function:
32
32
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
33
33
 
34
34
  def to_dict(self) -> dict[str, Any]:
35
+
35
36
  events: Union[Unset, list[dict[str, Any]]] = UNSET
36
37
  if not isinstance(self.events, Unset):
37
38
  events = []