zenml-nightly 0.75.0.dev20250313__py3-none-any.whl → 0.75.0.dev20250314__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 (123) hide show
  1. zenml/VERSION +1 -1
  2. zenml/analytics/context.py +4 -4
  3. zenml/analytics/enums.py +2 -2
  4. zenml/artifacts/utils.py +2 -2
  5. zenml/cli/__init__.py +8 -9
  6. zenml/cli/base.py +2 -2
  7. zenml/cli/code_repository.py +1 -1
  8. zenml/cli/pipeline.py +3 -3
  9. zenml/cli/project.py +172 -0
  10. zenml/cli/service_accounts.py +0 -1
  11. zenml/cli/service_connectors.py +15 -16
  12. zenml/cli/stack.py +0 -2
  13. zenml/cli/stack_components.py +2 -2
  14. zenml/cli/utils.py +3 -3
  15. zenml/client.py +347 -340
  16. zenml/config/global_config.py +41 -43
  17. zenml/constants.py +5 -3
  18. zenml/event_hub/event_hub.py +1 -1
  19. zenml/integrations/gcp/service_connectors/gcp_service_connector.py +7 -6
  20. zenml/integrations/mlflow/steps/mlflow_registry.py +3 -3
  21. zenml/integrations/wandb/__init__.py +1 -1
  22. zenml/integrations/wandb/experiment_trackers/wandb_experiment_tracker.py +29 -9
  23. zenml/integrations/wandb/flavors/wandb_experiment_tracker_flavor.py +2 -0
  24. zenml/model/model.py +2 -2
  25. zenml/model_registries/base_model_registry.py +1 -1
  26. zenml/models/__init__.py +29 -29
  27. zenml/models/v2/base/filter.py +1 -1
  28. zenml/models/v2/base/scoped.py +49 -53
  29. zenml/models/v2/core/action.py +12 -12
  30. zenml/models/v2/core/artifact.py +15 -15
  31. zenml/models/v2/core/artifact_version.py +15 -15
  32. zenml/models/v2/core/code_repository.py +12 -12
  33. zenml/models/v2/core/event_source.py +12 -12
  34. zenml/models/v2/core/model.py +17 -17
  35. zenml/models/v2/core/model_version.py +15 -15
  36. zenml/models/v2/core/pipeline.py +15 -15
  37. zenml/models/v2/core/pipeline_build.py +14 -14
  38. zenml/models/v2/core/pipeline_deployment.py +12 -14
  39. zenml/models/v2/core/pipeline_run.py +16 -16
  40. zenml/models/v2/core/project.py +203 -0
  41. zenml/models/v2/core/run_metadata.py +2 -2
  42. zenml/models/v2/core/run_template.py +15 -15
  43. zenml/models/v2/core/schedule.py +12 -12
  44. zenml/models/v2/core/secret.py +1 -1
  45. zenml/models/v2/core/service.py +14 -14
  46. zenml/models/v2/core/step_run.py +13 -13
  47. zenml/models/v2/core/trigger.py +13 -13
  48. zenml/models/v2/core/trigger_execution.py +2 -2
  49. zenml/models/v2/core/user.py +0 -17
  50. zenml/models/v2/misc/statistics.py +4 -4
  51. zenml/orchestrators/cache_utils.py +7 -7
  52. zenml/orchestrators/input_utils.py +1 -1
  53. zenml/orchestrators/step_launcher.py +1 -1
  54. zenml/orchestrators/step_run_utils.py +2 -2
  55. zenml/orchestrators/utils.py +4 -4
  56. zenml/pipelines/build_utils.py +2 -2
  57. zenml/pipelines/pipeline_definition.py +5 -5
  58. zenml/pipelines/run_utils.py +1 -1
  59. zenml/service_connectors/service_connector.py +0 -3
  60. zenml/service_connectors/service_connector_utils.py +0 -1
  61. zenml/stack/stack.py +0 -1
  62. zenml/steps/base_step.py +10 -2
  63. zenml/zen_server/rbac/endpoint_utils.py +17 -17
  64. zenml/zen_server/rbac/models.py +20 -20
  65. zenml/zen_server/rbac/rbac_sql_zen_store.py +3 -3
  66. zenml/zen_server/rbac/utils.py +23 -25
  67. zenml/zen_server/rbac/zenml_cloud_rbac.py +12 -16
  68. zenml/zen_server/routers/artifact_version_endpoints.py +10 -10
  69. zenml/zen_server/routers/auth_endpoints.py +6 -6
  70. zenml/zen_server/routers/code_repositories_endpoints.py +12 -14
  71. zenml/zen_server/routers/model_versions_endpoints.py +13 -15
  72. zenml/zen_server/routers/models_endpoints.py +7 -9
  73. zenml/zen_server/routers/pipeline_builds_endpoints.py +14 -16
  74. zenml/zen_server/routers/pipeline_deployments_endpoints.py +13 -15
  75. zenml/zen_server/routers/pipelines_endpoints.py +16 -18
  76. zenml/zen_server/routers/{workspaces_endpoints.py → projects_endpoints.py} +111 -68
  77. zenml/zen_server/routers/run_metadata_endpoints.py +7 -9
  78. zenml/zen_server/routers/run_templates_endpoints.py +15 -17
  79. zenml/zen_server/routers/runs_endpoints.py +12 -14
  80. zenml/zen_server/routers/schedule_endpoints.py +12 -14
  81. zenml/zen_server/routers/secrets_endpoints.py +1 -3
  82. zenml/zen_server/routers/server_endpoints.py +5 -5
  83. zenml/zen_server/routers/service_connectors_endpoints.py +11 -13
  84. zenml/zen_server/routers/service_endpoints.py +7 -9
  85. zenml/zen_server/routers/stack_components_endpoints.py +9 -11
  86. zenml/zen_server/routers/stacks_endpoints.py +9 -11
  87. zenml/zen_server/routers/steps_endpoints.py +6 -6
  88. zenml/zen_server/routers/users_endpoints.py +5 -43
  89. zenml/zen_server/template_execution/utils.py +4 -4
  90. zenml/zen_server/utils.py +10 -10
  91. zenml/zen_server/zen_server_api.py +3 -2
  92. zenml/zen_stores/base_zen_store.py +35 -39
  93. zenml/zen_stores/migrations/versions/12eff0206201_rename_workspace_to_project.py +768 -0
  94. zenml/zen_stores/migrations/versions/41b28cae31ce_make_artifacts_workspace_scoped.py +3 -3
  95. zenml/zen_stores/migrations/versions/cbc6acd71f92_add_workspace_display_name.py +58 -0
  96. zenml/zen_stores/rest_zen_store.py +54 -62
  97. zenml/zen_stores/schemas/__init__.py +2 -2
  98. zenml/zen_stores/schemas/action_schemas.py +9 -9
  99. zenml/zen_stores/schemas/artifact_schemas.py +15 -17
  100. zenml/zen_stores/schemas/code_repository_schemas.py +16 -18
  101. zenml/zen_stores/schemas/event_source_schemas.py +9 -9
  102. zenml/zen_stores/schemas/model_schemas.py +15 -17
  103. zenml/zen_stores/schemas/pipeline_build_schemas.py +7 -7
  104. zenml/zen_stores/schemas/pipeline_deployment_schemas.py +7 -7
  105. zenml/zen_stores/schemas/pipeline_run_schemas.py +9 -9
  106. zenml/zen_stores/schemas/pipeline_schemas.py +9 -9
  107. zenml/zen_stores/schemas/{workspace_schemas.py → project_schemas.py} +47 -41
  108. zenml/zen_stores/schemas/run_metadata_schemas.py +5 -5
  109. zenml/zen_stores/schemas/run_template_schemas.py +9 -9
  110. zenml/zen_stores/schemas/schedule_schema.py +9 -9
  111. zenml/zen_stores/schemas/service_schemas.py +7 -7
  112. zenml/zen_stores/schemas/step_run_schemas.py +7 -7
  113. zenml/zen_stores/schemas/trigger_schemas.py +9 -9
  114. zenml/zen_stores/schemas/user_schemas.py +0 -12
  115. zenml/zen_stores/sql_zen_store.py +258 -268
  116. zenml/zen_stores/zen_store_interface.py +56 -70
  117. {zenml_nightly-0.75.0.dev20250313.dist-info → zenml_nightly-0.75.0.dev20250314.dist-info}/METADATA +1 -1
  118. {zenml_nightly-0.75.0.dev20250313.dist-info → zenml_nightly-0.75.0.dev20250314.dist-info}/RECORD +121 -119
  119. zenml/cli/workspace.py +0 -160
  120. zenml/models/v2/core/workspace.py +0 -131
  121. {zenml_nightly-0.75.0.dev20250313.dist-info → zenml_nightly-0.75.0.dev20250314.dist-info}/LICENSE +0 -0
  122. {zenml_nightly-0.75.0.dev20250313.dist-info → zenml_nightly-0.75.0.dev20250314.dist-info}/WHEEL +0 -0
  123. {zenml_nightly-0.75.0.dev20250313.dist-info → zenml_nightly-0.75.0.dev20250314.dist-info}/entry_points.txt +0 -0
@@ -25,13 +25,13 @@ from zenml.constants import (
25
25
  )
26
26
  from zenml.models.v2.base.base import BaseUpdate
27
27
  from zenml.models.v2.base.scoped import (
28
+ ProjectScopedFilter,
29
+ ProjectScopedRequest,
30
+ ProjectScopedResponse,
31
+ ProjectScopedResponseBody,
32
+ ProjectScopedResponseMetadata,
33
+ ProjectScopedResponseResources,
28
34
  TaggableFilter,
29
- WorkspaceScopedFilter,
30
- WorkspaceScopedRequest,
31
- WorkspaceScopedResponse,
32
- WorkspaceScopedResponseBody,
33
- WorkspaceScopedResponseMetadata,
34
- WorkspaceScopedResponseResources,
35
35
  )
36
36
  from zenml.utils.pagination_utils import depaginate
37
37
 
@@ -47,7 +47,7 @@ AnyQuery = TypeVar("AnyQuery", bound=Any)
47
47
  # ------------------ Request Model ------------------
48
48
 
49
49
 
50
- class ModelRequest(WorkspaceScopedRequest):
50
+ class ModelRequest(ProjectScopedRequest):
51
51
  """Request model for models."""
52
52
 
53
53
  name: str = Field(
@@ -121,7 +121,7 @@ class ModelUpdate(BaseUpdate):
121
121
  # ------------------ Response Model ------------------
122
122
 
123
123
 
124
- class ModelResponseBody(WorkspaceScopedResponseBody):
124
+ class ModelResponseBody(ProjectScopedResponseBody):
125
125
  """Response body for models."""
126
126
 
127
127
  tags: List["TagResponse"] = Field(
@@ -131,7 +131,7 @@ class ModelResponseBody(WorkspaceScopedResponseBody):
131
131
  latest_version_id: Optional[UUID] = None
132
132
 
133
133
 
134
- class ModelResponseMetadata(WorkspaceScopedResponseMetadata):
134
+ class ModelResponseMetadata(ProjectScopedResponseMetadata):
135
135
  """Response metadata for models."""
136
136
 
137
137
  license: Optional[str] = Field(
@@ -175,12 +175,12 @@ class ModelResponseMetadata(WorkspaceScopedResponseMetadata):
175
175
  )
176
176
 
177
177
 
178
- class ModelResponseResources(WorkspaceScopedResponseResources):
178
+ class ModelResponseResources(ProjectScopedResponseResources):
179
179
  """Class for all resource models associated with the model entity."""
180
180
 
181
181
 
182
182
  class ModelResponse(
183
- WorkspaceScopedResponse[
183
+ ProjectScopedResponse[
184
184
  ModelResponseBody, ModelResponseMetadata, ModelResponseResources
185
185
  ]
186
186
  ):
@@ -315,7 +315,7 @@ class ModelResponse(
315
315
  model_versions = depaginate(
316
316
  client.list_model_versions,
317
317
  model_name_or_id=self.id,
318
- workspace=self.workspace.id,
318
+ project=self.project.id,
319
319
  )
320
320
  return [
321
321
  mv.to_model_class(suppress_class_validation_warnings=True)
@@ -326,8 +326,8 @@ class ModelResponse(
326
326
  # ------------------ Filter Model ------------------
327
327
 
328
328
 
329
- class ModelFilter(WorkspaceScopedFilter, TaggableFilter):
330
- """Model to enable advanced filtering of all Workspaces."""
329
+ class ModelFilter(ProjectScopedFilter, TaggableFilter):
330
+ """Model to enable advanced filtering of all models."""
331
331
 
332
332
  name: Optional[str] = Field(
333
333
  default=None,
@@ -335,16 +335,16 @@ class ModelFilter(WorkspaceScopedFilter, TaggableFilter):
335
335
  )
336
336
 
337
337
  FILTER_EXCLUDE_FIELDS: ClassVar[List[str]] = [
338
- *WorkspaceScopedFilter.FILTER_EXCLUDE_FIELDS,
338
+ *ProjectScopedFilter.FILTER_EXCLUDE_FIELDS,
339
339
  *TaggableFilter.FILTER_EXCLUDE_FIELDS,
340
340
  ]
341
341
  CUSTOM_SORTING_OPTIONS: ClassVar[List[str]] = [
342
- *WorkspaceScopedFilter.CUSTOM_SORTING_OPTIONS,
342
+ *ProjectScopedFilter.CUSTOM_SORTING_OPTIONS,
343
343
  *TaggableFilter.CUSTOM_SORTING_OPTIONS,
344
344
  SORT_BY_LATEST_VERSION_KEY,
345
345
  ]
346
346
  CLI_EXCLUDE_FIELDS: ClassVar[List[str]] = [
347
- *WorkspaceScopedFilter.CLI_EXCLUDE_FIELDS,
347
+ *ProjectScopedFilter.CLI_EXCLUDE_FIELDS,
348
348
  *TaggableFilter.CLI_EXCLUDE_FIELDS,
349
349
  ]
350
350
 
@@ -34,13 +34,13 @@ from zenml.models.v2.base.base import BaseUpdate
34
34
  from zenml.models.v2.base.filter import AnyQuery
35
35
  from zenml.models.v2.base.page import Page
36
36
  from zenml.models.v2.base.scoped import (
37
+ ProjectScopedFilter,
38
+ ProjectScopedRequest,
39
+ ProjectScopedResponse,
40
+ ProjectScopedResponseBody,
41
+ ProjectScopedResponseMetadata,
42
+ ProjectScopedResponseResources,
37
43
  TaggableFilter,
38
- WorkspaceScopedFilter,
39
- WorkspaceScopedRequest,
40
- WorkspaceScopedResponse,
41
- WorkspaceScopedResponseBody,
42
- WorkspaceScopedResponseMetadata,
43
- WorkspaceScopedResponseResources,
44
44
  )
45
45
  from zenml.models.v2.core.service import ServiceResponse
46
46
  from zenml.models.v2.core.tag import TagResponse
@@ -60,7 +60,7 @@ if TYPE_CHECKING:
60
60
  # ------------------ Request Model ------------------
61
61
 
62
62
 
63
- class ModelVersionRequest(WorkspaceScopedRequest):
63
+ class ModelVersionRequest(ProjectScopedRequest):
64
64
  """Request model for model versions."""
65
65
 
66
66
  name: Optional[str] = Field(
@@ -135,7 +135,7 @@ class ModelVersionUpdate(BaseUpdate):
135
135
  # ------------------ Response Model ------------------
136
136
 
137
137
 
138
- class ModelVersionResponseBody(WorkspaceScopedResponseBody):
138
+ class ModelVersionResponseBody(ProjectScopedResponseBody):
139
139
  """Response body for model versions."""
140
140
 
141
141
  stage: Optional[str] = Field(
@@ -178,7 +178,7 @@ class ModelVersionResponseBody(WorkspaceScopedResponseBody):
178
178
  model_config = ConfigDict(protected_namespaces=())
179
179
 
180
180
 
181
- class ModelVersionResponseMetadata(WorkspaceScopedResponseMetadata):
181
+ class ModelVersionResponseMetadata(ProjectScopedResponseMetadata):
182
182
  """Response metadata for model versions."""
183
183
 
184
184
  description: Optional[str] = Field(
@@ -192,7 +192,7 @@ class ModelVersionResponseMetadata(WorkspaceScopedResponseMetadata):
192
192
  )
193
193
 
194
194
 
195
- class ModelVersionResponseResources(WorkspaceScopedResponseResources):
195
+ class ModelVersionResponseResources(ProjectScopedResponseResources):
196
196
  """Class for all resource models associated with the model version entity."""
197
197
 
198
198
  services: Page[ServiceResponse] = Field(
@@ -201,7 +201,7 @@ class ModelVersionResponseResources(WorkspaceScopedResponseResources):
201
201
 
202
202
 
203
203
  class ModelVersionResponse(
204
- WorkspaceScopedResponse[
204
+ ProjectScopedResponse[
205
205
  ModelVersionResponseBody,
206
206
  ModelVersionResponseMetadata,
207
207
  ModelVersionResponseResources,
@@ -566,21 +566,21 @@ class ModelVersionResponse(
566
566
  # ------------------ Filter Model ------------------
567
567
 
568
568
 
569
- class ModelVersionFilter(WorkspaceScopedFilter, TaggableFilter):
569
+ class ModelVersionFilter(ProjectScopedFilter, TaggableFilter):
570
570
  """Filter model for model versions."""
571
571
 
572
572
  FILTER_EXCLUDE_FIELDS: ClassVar[List[str]] = [
573
- *WorkspaceScopedFilter.FILTER_EXCLUDE_FIELDS,
573
+ *ProjectScopedFilter.FILTER_EXCLUDE_FIELDS,
574
574
  *TaggableFilter.FILTER_EXCLUDE_FIELDS,
575
575
  "model",
576
576
  "run_metadata",
577
577
  ]
578
578
  CUSTOM_SORTING_OPTIONS: ClassVar[List[str]] = [
579
- *WorkspaceScopedFilter.CUSTOM_SORTING_OPTIONS,
579
+ *ProjectScopedFilter.CUSTOM_SORTING_OPTIONS,
580
580
  *TaggableFilter.CUSTOM_SORTING_OPTIONS,
581
581
  ]
582
582
  CLI_EXCLUDE_FIELDS: ClassVar[List[str]] = [
583
- *WorkspaceScopedFilter.CLI_EXCLUDE_FIELDS,
583
+ *ProjectScopedFilter.CLI_EXCLUDE_FIELDS,
584
584
  *TaggableFilter.CLI_EXCLUDE_FIELDS,
585
585
  "model",
586
586
  ]
@@ -34,13 +34,13 @@ from zenml.constants import (
34
34
  from zenml.enums import ExecutionStatus
35
35
  from zenml.models.v2.base.base import BaseUpdate
36
36
  from zenml.models.v2.base.scoped import (
37
+ ProjectScopedFilter,
38
+ ProjectScopedRequest,
39
+ ProjectScopedResponse,
40
+ ProjectScopedResponseBody,
41
+ ProjectScopedResponseMetadata,
42
+ ProjectScopedResponseResources,
37
43
  TaggableFilter,
38
- WorkspaceScopedFilter,
39
- WorkspaceScopedRequest,
40
- WorkspaceScopedResponse,
41
- WorkspaceScopedResponseBody,
42
- WorkspaceScopedResponseMetadata,
43
- WorkspaceScopedResponseResources,
44
44
  )
45
45
  from zenml.models.v2.core.tag import TagResponse
46
46
 
@@ -55,7 +55,7 @@ AnyQuery = TypeVar("AnyQuery", bound=Any)
55
55
  # ------------------ Request Model ------------------
56
56
 
57
57
 
58
- class PipelineRequest(WorkspaceScopedRequest):
58
+ class PipelineRequest(ProjectScopedRequest):
59
59
  """Request model for pipelines."""
60
60
 
61
61
  name: str = Field(
@@ -95,7 +95,7 @@ class PipelineUpdate(BaseUpdate):
95
95
  # ------------------ Response Model ------------------
96
96
 
97
97
 
98
- class PipelineResponseBody(WorkspaceScopedResponseBody):
98
+ class PipelineResponseBody(ProjectScopedResponseBody):
99
99
  """Response body for pipelines."""
100
100
 
101
101
  latest_run_id: Optional[UUID] = Field(
@@ -108,7 +108,7 @@ class PipelineResponseBody(WorkspaceScopedResponseBody):
108
108
  )
109
109
 
110
110
 
111
- class PipelineResponseMetadata(WorkspaceScopedResponseMetadata):
111
+ class PipelineResponseMetadata(ProjectScopedResponseMetadata):
112
112
  """Response metadata for pipelines."""
113
113
 
114
114
  description: Optional[str] = Field(
@@ -117,7 +117,7 @@ class PipelineResponseMetadata(WorkspaceScopedResponseMetadata):
117
117
  )
118
118
 
119
119
 
120
- class PipelineResponseResources(WorkspaceScopedResponseResources):
120
+ class PipelineResponseResources(ProjectScopedResponseResources):
121
121
  """Class for all resource models associated with the pipeline entity."""
122
122
 
123
123
  latest_run_user: Optional["UserResponse"] = Field(
@@ -130,7 +130,7 @@ class PipelineResponseResources(WorkspaceScopedResponseResources):
130
130
 
131
131
 
132
132
  class PipelineResponse(
133
- WorkspaceScopedResponse[
133
+ ProjectScopedResponse[
134
134
  PipelineResponseBody,
135
135
  PipelineResponseMetadata,
136
136
  PipelineResponseResources,
@@ -257,21 +257,21 @@ class PipelineResponse(
257
257
  # ------------------ Filter Model ------------------
258
258
 
259
259
 
260
- class PipelineFilter(WorkspaceScopedFilter, TaggableFilter):
260
+ class PipelineFilter(ProjectScopedFilter, TaggableFilter):
261
261
  """Pipeline filter model."""
262
262
 
263
263
  CUSTOM_SORTING_OPTIONS: ClassVar[List[str]] = [
264
- *WorkspaceScopedFilter.CUSTOM_SORTING_OPTIONS,
264
+ *ProjectScopedFilter.CUSTOM_SORTING_OPTIONS,
265
265
  *TaggableFilter.CUSTOM_SORTING_OPTIONS,
266
266
  SORT_PIPELINES_BY_LATEST_RUN_KEY,
267
267
  ]
268
268
  FILTER_EXCLUDE_FIELDS: ClassVar[List[str]] = [
269
- *WorkspaceScopedFilter.FILTER_EXCLUDE_FIELDS,
269
+ *ProjectScopedFilter.FILTER_EXCLUDE_FIELDS,
270
270
  *TaggableFilter.FILTER_EXCLUDE_FIELDS,
271
271
  "latest_run_status",
272
272
  ]
273
273
  CLI_EXCLUDE_FIELDS: ClassVar[List[str]] = [
274
- *WorkspaceScopedFilter.CLI_EXCLUDE_FIELDS,
274
+ *ProjectScopedFilter.CLI_EXCLUDE_FIELDS,
275
275
  *TaggableFilter.CLI_EXCLUDE_FIELDS,
276
276
  ]
277
277
 
@@ -31,12 +31,12 @@ from pydantic import Field
31
31
 
32
32
  from zenml.models.v2.base.base import BaseZenModel
33
33
  from zenml.models.v2.base.scoped import (
34
- WorkspaceScopedFilter,
35
- WorkspaceScopedRequest,
36
- WorkspaceScopedResponse,
37
- WorkspaceScopedResponseBody,
38
- WorkspaceScopedResponseMetadata,
39
- WorkspaceScopedResponseResources,
34
+ ProjectScopedFilter,
35
+ ProjectScopedRequest,
36
+ ProjectScopedResponse,
37
+ ProjectScopedResponseBody,
38
+ ProjectScopedResponseMetadata,
39
+ ProjectScopedResponseResources,
40
40
  )
41
41
  from zenml.models.v2.misc.build_item import BuildItem
42
42
 
@@ -171,7 +171,7 @@ class PipelineBuildBase(BaseZenModel):
171
171
  )
172
172
 
173
173
 
174
- class PipelineBuildRequest(PipelineBuildBase, WorkspaceScopedRequest):
174
+ class PipelineBuildRequest(PipelineBuildBase, ProjectScopedRequest):
175
175
  """Request model for pipelines builds."""
176
176
 
177
177
  checksum: Optional[str] = Field(title="The build checksum.", default=None)
@@ -193,11 +193,11 @@ class PipelineBuildRequest(PipelineBuildBase, WorkspaceScopedRequest):
193
193
 
194
194
 
195
195
  # ------------------ Response Model ------------------
196
- class PipelineBuildResponseBody(WorkspaceScopedResponseBody):
196
+ class PipelineBuildResponseBody(ProjectScopedResponseBody):
197
197
  """Response body for pipeline builds."""
198
198
 
199
199
 
200
- class PipelineBuildResponseMetadata(WorkspaceScopedResponseMetadata):
200
+ class PipelineBuildResponseMetadata(ProjectScopedResponseMetadata):
201
201
  """Response metadata for pipeline builds."""
202
202
 
203
203
  pipeline: Optional["PipelineResponse"] = Field(
@@ -231,12 +231,12 @@ class PipelineBuildResponseMetadata(WorkspaceScopedResponseMetadata):
231
231
  )
232
232
 
233
233
 
234
- class PipelineBuildResponseResources(WorkspaceScopedResponseResources):
234
+ class PipelineBuildResponseResources(ProjectScopedResponseResources):
235
235
  """Class for all resource models associated with the pipeline build entity."""
236
236
 
237
237
 
238
238
  class PipelineBuildResponse(
239
- WorkspaceScopedResponse[
239
+ ProjectScopedResponse[
240
240
  PipelineBuildResponseBody,
241
241
  PipelineBuildResponseMetadata,
242
242
  PipelineBuildResponseResources,
@@ -278,7 +278,7 @@ class PipelineBuildResponse(
278
278
  exclude={
279
279
  "pipeline",
280
280
  "stack",
281
- "workspace",
281
+ "project",
282
282
  }
283
283
  )
284
284
  )
@@ -473,11 +473,11 @@ class PipelineBuildResponse(
473
473
  # ------------------ Filter Model ------------------
474
474
 
475
475
 
476
- class PipelineBuildFilter(WorkspaceScopedFilter):
476
+ class PipelineBuildFilter(ProjectScopedFilter):
477
477
  """Model to enable advanced filtering of all pipeline builds."""
478
478
 
479
479
  FILTER_EXCLUDE_FIELDS: ClassVar[List[str]] = [
480
- *WorkspaceScopedFilter.FILTER_EXCLUDE_FIELDS,
480
+ *ProjectScopedFilter.FILTER_EXCLUDE_FIELDS,
481
481
  "container_registry_id",
482
482
  ]
483
483
 
@@ -24,12 +24,12 @@ from zenml.config.step_configurations import Step
24
24
  from zenml.models.v2.base.base import BaseZenModel
25
25
  from zenml.models.v2.base.page import Page
26
26
  from zenml.models.v2.base.scoped import (
27
- WorkspaceScopedFilter,
28
- WorkspaceScopedRequest,
29
- WorkspaceScopedResponse,
30
- WorkspaceScopedResponseBody,
31
- WorkspaceScopedResponseMetadata,
32
- WorkspaceScopedResponseResources,
27
+ ProjectScopedFilter,
28
+ ProjectScopedRequest,
29
+ ProjectScopedResponse,
30
+ ProjectScopedResponseBody,
31
+ ProjectScopedResponseMetadata,
32
+ ProjectScopedResponseResources,
33
33
  )
34
34
  from zenml.models.v2.core.code_reference import (
35
35
  CodeReferenceRequest,
@@ -93,9 +93,7 @@ class PipelineDeploymentBase(BaseZenModel):
93
93
  )
94
94
 
95
95
 
96
- class PipelineDeploymentRequest(
97
- PipelineDeploymentBase, WorkspaceScopedRequest
98
- ):
96
+ class PipelineDeploymentRequest(PipelineDeploymentBase, ProjectScopedRequest):
99
97
  """Request model for pipeline deployments."""
100
98
 
101
99
  stack: UUID = Field(title="The stack associated with the deployment.")
@@ -129,11 +127,11 @@ class PipelineDeploymentRequest(
129
127
  # ------------------ Response Model ------------------
130
128
 
131
129
 
132
- class PipelineDeploymentResponseBody(WorkspaceScopedResponseBody):
130
+ class PipelineDeploymentResponseBody(ProjectScopedResponseBody):
133
131
  """Response body for pipeline deployments."""
134
132
 
135
133
 
136
- class PipelineDeploymentResponseMetadata(WorkspaceScopedResponseMetadata):
134
+ class PipelineDeploymentResponseMetadata(ProjectScopedResponseMetadata):
137
135
  """Response metadata for pipeline deployments."""
138
136
 
139
137
  run_name_template: str = Field(
@@ -188,7 +186,7 @@ class PipelineDeploymentResponseMetadata(WorkspaceScopedResponseMetadata):
188
186
  )
189
187
 
190
188
 
191
- class PipelineDeploymentResponseResources(WorkspaceScopedResponseResources):
189
+ class PipelineDeploymentResponseResources(ProjectScopedResponseResources):
192
190
  """Class for all resource models associated with the pipeline deployment entity."""
193
191
 
194
192
  triggers: TriggerPage = Field( # type: ignore[valid-type]
@@ -197,7 +195,7 @@ class PipelineDeploymentResponseResources(WorkspaceScopedResponseResources):
197
195
 
198
196
 
199
197
  class PipelineDeploymentResponse(
200
- WorkspaceScopedResponse[
198
+ ProjectScopedResponse[
201
199
  PipelineDeploymentResponseBody,
202
200
  PipelineDeploymentResponseMetadata,
203
201
  PipelineDeploymentResponseResources,
@@ -355,7 +353,7 @@ class PipelineDeploymentResponse(
355
353
  # ------------------ Filter Model ------------------
356
354
 
357
355
 
358
- class PipelineDeploymentFilter(WorkspaceScopedFilter):
356
+ class PipelineDeploymentFilter(ProjectScopedFilter):
359
357
  """Model to enable advanced filtering of all pipeline deployments."""
360
358
 
361
359
  pipeline_id: Optional[Union[UUID, str]] = Field(
@@ -36,13 +36,13 @@ from zenml.enums import ExecutionStatus
36
36
  from zenml.metadata.metadata_types import MetadataType
37
37
  from zenml.models.v2.base.base import BaseUpdate
38
38
  from zenml.models.v2.base.scoped import (
39
+ ProjectScopedFilter,
40
+ ProjectScopedRequest,
41
+ ProjectScopedResponse,
42
+ ProjectScopedResponseBody,
43
+ ProjectScopedResponseMetadata,
44
+ ProjectScopedResponseResources,
39
45
  TaggableFilter,
40
- WorkspaceScopedFilter,
41
- WorkspaceScopedRequest,
42
- WorkspaceScopedResponse,
43
- WorkspaceScopedResponseBody,
44
- WorkspaceScopedResponseMetadata,
45
- WorkspaceScopedResponseResources,
46
46
  )
47
47
  from zenml.models.v2.core.model_version import ModelVersionResponse
48
48
  from zenml.models.v2.core.tag import TagResponse
@@ -71,7 +71,7 @@ AnyQuery = TypeVar("AnyQuery", bound=Any)
71
71
  # ------------------ Request Model ------------------
72
72
 
73
73
 
74
- class PipelineRunRequest(WorkspaceScopedRequest):
74
+ class PipelineRunRequest(ProjectScopedRequest):
75
75
  """Request model for pipeline runs."""
76
76
 
77
77
  name: str = Field(
@@ -150,7 +150,7 @@ class PipelineRunUpdate(BaseUpdate):
150
150
  # ------------------ Response Model ------------------
151
151
 
152
152
 
153
- class PipelineRunResponseBody(WorkspaceScopedResponseBody):
153
+ class PipelineRunResponseBody(ProjectScopedResponseBody):
154
154
  """Response body for pipeline runs."""
155
155
 
156
156
  status: ExecutionStatus = Field(
@@ -186,7 +186,7 @@ class PipelineRunResponseBody(WorkspaceScopedResponseBody):
186
186
  model_config = ConfigDict(protected_namespaces=())
187
187
 
188
188
 
189
- class PipelineRunResponseMetadata(WorkspaceScopedResponseMetadata):
189
+ class PipelineRunResponseMetadata(ProjectScopedResponseMetadata):
190
190
  """Response metadata for pipeline runs."""
191
191
 
192
192
  run_metadata: Dict[str, MetadataType] = Field(
@@ -244,7 +244,7 @@ class PipelineRunResponseMetadata(WorkspaceScopedResponseMetadata):
244
244
  )
245
245
 
246
246
 
247
- class PipelineRunResponseResources(WorkspaceScopedResponseResources):
247
+ class PipelineRunResponseResources(ProjectScopedResponseResources):
248
248
  """Class for all resource models associated with the pipeline run entity."""
249
249
 
250
250
  model_version: Optional[ModelVersionResponse] = None
@@ -262,7 +262,7 @@ class PipelineRunResponseResources(WorkspaceScopedResponseResources):
262
262
 
263
263
 
264
264
  class PipelineRunResponse(
265
- WorkspaceScopedResponse[
265
+ ProjectScopedResponse[
266
266
  PipelineRunResponseBody,
267
267
  PipelineRunResponseMetadata,
268
268
  PipelineRunResponseResources,
@@ -582,11 +582,11 @@ class PipelineRunResponse(
582
582
  # ------------------ Filter Model ------------------
583
583
 
584
584
 
585
- class PipelineRunFilter(WorkspaceScopedFilter, TaggableFilter):
586
- """Model to enable advanced filtering of all Workspaces."""
585
+ class PipelineRunFilter(ProjectScopedFilter, TaggableFilter):
586
+ """Model to enable advanced filtering of all pipeline runs."""
587
587
 
588
588
  CUSTOM_SORTING_OPTIONS: ClassVar[List[str]] = [
589
- *WorkspaceScopedFilter.CUSTOM_SORTING_OPTIONS,
589
+ *ProjectScopedFilter.CUSTOM_SORTING_OPTIONS,
590
590
  *TaggableFilter.CUSTOM_SORTING_OPTIONS,
591
591
  "tag",
592
592
  "stack",
@@ -595,7 +595,7 @@ class PipelineRunFilter(WorkspaceScopedFilter, TaggableFilter):
595
595
  "model_version",
596
596
  ]
597
597
  FILTER_EXCLUDE_FIELDS: ClassVar[List[str]] = [
598
- *WorkspaceScopedFilter.FILTER_EXCLUDE_FIELDS,
598
+ *ProjectScopedFilter.FILTER_EXCLUDE_FIELDS,
599
599
  *TaggableFilter.FILTER_EXCLUDE_FIELDS,
600
600
  "unlisted",
601
601
  "code_repository_id",
@@ -613,7 +613,7 @@ class PipelineRunFilter(WorkspaceScopedFilter, TaggableFilter):
613
613
  "run_metadata",
614
614
  ]
615
615
  CLI_EXCLUDE_FIELDS = [
616
- *WorkspaceScopedFilter.CLI_EXCLUDE_FIELDS,
616
+ *ProjectScopedFilter.CLI_EXCLUDE_FIELDS,
617
617
  *TaggableFilter.CLI_EXCLUDE_FIELDS,
618
618
  ]
619
619