forked from sr2/cloud-api
feat: iam endpoint req/res models
This commit is contained in:
parent
fa8439cc6c
commit
d4f1b73deb
3 changed files with 216 additions and 81 deletions
|
|
@ -1,7 +1,99 @@
|
|||
"""
|
||||
Pydantic models for <this module>
|
||||
Pydantic models for the IAM module
|
||||
|
||||
Models:
|
||||
- List: Description
|
||||
- Models: Description
|
||||
"""
|
||||
"""
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import EmailStr, ConfigDict
|
||||
|
||||
from src.schemas import CustomBaseModel
|
||||
from src.organisation.constants import Status, ContactType
|
||||
from src.contact.schemas import ContactAddress
|
||||
|
||||
class UserResponse(CustomBaseModel):
|
||||
id: int
|
||||
first_name: str
|
||||
last_name: str
|
||||
email: EmailStr
|
||||
|
||||
class PermissionResponse(CustomBaseModel):
|
||||
model_config = ConfigDict(from_attributes=True, extra="ignore")
|
||||
|
||||
service_name: str
|
||||
resource: str
|
||||
action: str
|
||||
|
||||
class GroupResponse(CustomBaseModel):
|
||||
id: int
|
||||
name: str
|
||||
|
||||
class IAMGetGroupPermissionsResponse(CustomBaseModel):
|
||||
permissions: list[PermissionResponse]
|
||||
|
||||
class IAMGetGroupUsersResponse(CustomBaseModel):
|
||||
users : list[UserResponse]
|
||||
|
||||
class IAMPostGroupRequest(CustomBaseModel):
|
||||
name: str
|
||||
|
||||
class IAMPostGroupResponse(CustomBaseModel):
|
||||
group: GroupResponse
|
||||
|
||||
class IAMPutGroupPermissionRequest(CustomBaseModel):
|
||||
group_id: int
|
||||
permission_id: int
|
||||
|
||||
class IAMPutGroupPermissionResponse(CustomBaseModel):
|
||||
group: GroupResponse
|
||||
permissions: list[PermissionResponse]
|
||||
|
||||
class IAMPutGroupUserRequest(CustomBaseModel):
|
||||
group_id: int
|
||||
user_id: int
|
||||
|
||||
class IAMPutGroupUserResponse(CustomBaseModel):
|
||||
group: GroupResponse
|
||||
users: list[UserResponse]
|
||||
|
||||
class IAMDeleteGroupPermissionRequest(CustomBaseModel):
|
||||
group_id: int
|
||||
permission_id: int
|
||||
|
||||
class IAMDeleteGroupPermissionResponse(CustomBaseModel):
|
||||
group: GroupResponse
|
||||
permissions: list[PermissionResponse]
|
||||
|
||||
class IAMDeleteGroupUserRequest(CustomBaseModel):
|
||||
group_id: int
|
||||
user_id: int
|
||||
|
||||
class IAMDeleteGroupUserResponse(CustomBaseModel):
|
||||
group: GroupResponse
|
||||
users: list[UserResponse]
|
||||
|
||||
class IAMGetPermissionsResponse(CustomBaseModel):
|
||||
permissions: list[PermissionResponse]
|
||||
|
||||
class IAMPostPermissionRequest(CustomBaseModel):
|
||||
service_id: int
|
||||
resource: str
|
||||
action: str
|
||||
|
||||
class IAMPostPermissionResponse(CustomBaseModel):
|
||||
permission: PermissionResponse
|
||||
|
||||
class IAMDeletePermissionRequest(CustomBaseModel):
|
||||
service_id: int
|
||||
resource: str
|
||||
action: str
|
||||
|
||||
class IAMGetPermissionsSearchRequest(CustomBaseModel):
|
||||
service_id: Optional[int] = None
|
||||
resource: Optional[str] = None
|
||||
action: Optional[str] = None
|
||||
|
||||
class IAMGetPermissionsSearchResponse(CustomBaseModel):
|
||||
permissions: list[PermissionResponse]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue