Add project permission management APIs

This commit is contained in:
2024-01-31 09:43:49 -05:00
parent 7e400cd998
commit 526568f3d4
2 changed files with 22 additions and 0 deletions
+3
View File
@@ -44,6 +44,9 @@ Remember that you should never expose your api_key and handle it carefully since
- `project_create(project_id, **json)`: Creates a new project.
- `project_update(project_id, **json)`: Updates a given project.
- `project_delete(project_id)`: Deletes a given project.
- `project_permissions(project_id)`: Returns a list of permissions for a given project.
- `project_permissions_grant(project_id, **json)`: Grant permissions to a given project.
- `project_permissions_revoke(project_id, **json)`: Revoke permissions from a given project.
**Manage branches**:
+19
View File
@@ -178,6 +178,25 @@ class NeonAPI:
return self.request("DELETE", f"projects/{ project_id }")
@returns_model(schema.ProjectPermissions)
def project_permissions(self, project_id: str) -> t.Dict[str, t.Any]:
"""Get a project permissions."""
return self.request("GET", f"projects/{ project_id }/permissions")
@returns_model(schema.ProjectPermission)
def project_permissions_grant(
self, project_id: str, **json: dict
) -> t.Dict[str, t.Any]:
"""Update a project permissions. Accepts all keyword arguments for json body."""
return self.request("POST", f"projects/{ project_id }/permissions", json=json)
@returns_model(schema.ProjectPermission)
def project_permissions_revoke(
self, project_id: str, **json: dict
) -> t.Dict[str, t.Any]:
"""Update a project permissions. Accepts all keyword arguments for json body."""
return self.request("DELETE", f"projects/{ project_id }/permissions", json=json)
@returns_model(schema.BranchesResponse)
def branches(
self,