|
18 | 18 | __all__ = [ |
19 | 19 | "ProjectEnvironment", |
20 | 20 | "ProjectEnvironmentManager", |
| 21 | + "ProjectProtectedEnvironment", |
| 22 | + "ProjectProtectedEnvironmentManager", |
21 | 23 | ] |
22 | 24 |
|
23 | 25 |
|
@@ -55,3 +57,31 @@ def get( |
55 | 57 | self, id: Union[str, int], lazy: bool = False, **kwargs: Any |
56 | 58 | ) -> ProjectEnvironment: |
57 | 59 | return cast(ProjectEnvironment, super().get(id=id, lazy=lazy, **kwargs)) |
| 60 | + |
| 61 | + |
| 62 | +class ProjectProtectedEnvironment(ObjectDeleteMixin, RESTObject): |
| 63 | + _id_attr = "name" |
| 64 | + _repr_attr = "name" |
| 65 | + |
| 66 | + |
| 67 | +class ProjectProtectedEnvironmentManager( |
| 68 | + RetrieveMixin, CreateMixin, DeleteMixin, RESTManager |
| 69 | +): |
| 70 | + _path = "/projects/{project_id}/protected_environments" |
| 71 | + _obj_cls = ProjectProtectedEnvironment |
| 72 | + _from_parent_attrs = {"project_id": "id"} |
| 73 | + _create_attrs = RequiredOptional( |
| 74 | + required=( |
| 75 | + "name", |
| 76 | + "deploy_access_levels", |
| 77 | + ), |
| 78 | + optional=("required_approval_count", "approval_rules"), |
| 79 | + ) |
| 80 | + _list_filters = "name" |
| 81 | + |
| 82 | + def get( |
| 83 | + self, id: Union[str, int], lazy: bool = False, **kwargs: Any |
| 84 | + ) -> ProjectProtectedEnvironment: |
| 85 | + return cast( |
| 86 | + ProjectProtectedEnvironment, super().get(id=id, lazy=lazy, **kwargs) |
| 87 | + ) |
0 commit comments