韩宇
init
1b7e88c
from abc import ABC, abstractmethod
from typing import Dict, List, Optional
from omagent_core.engine.http.models.conductor_application import \
ConductorApplication
from omagent_core.engine.http.models.conductor_user import ConductorUser
from omagent_core.engine.http.models.create_or_update_application_request import \
CreateOrUpdateApplicationRequest
from omagent_core.engine.http.models.group import Group
from omagent_core.engine.http.models.subject_ref import SubjectRef
from omagent_core.engine.http.models.target_ref import TargetRef
from omagent_core.engine.http.models.upsert_group_request import \
UpsertGroupRequest
from omagent_core.engine.http.models.upsert_user_request import \
UpsertUserRequest
from omagent_core.engine.orkes.models.access_key import AccessKey
from omagent_core.engine.orkes.models.access_type import AccessType
from omagent_core.engine.orkes.models.created_access_key import \
CreatedAccessKey
from omagent_core.engine.orkes.models.granted_permission import \
GrantedPermission
from omagent_core.engine.orkes.models.metadata_tag import MetadataTag
class AuthorizationClient(ABC):
# Applications
@abstractmethod
def create_application(
self, create_or_update_application_request: CreateOrUpdateApplicationRequest
) -> ConductorApplication:
pass
@abstractmethod
def get_application(self, application_id: str) -> ConductorApplication:
pass
@abstractmethod
def list_applications(self) -> List[ConductorApplication]:
pass
@abstractmethod
def update_application(
self,
create_or_update_application_request: CreateOrUpdateApplicationRequest,
application_id: str,
) -> ConductorApplication:
pass
@abstractmethod
def delete_application(self, application_id: str):
pass
@abstractmethod
def add_role_to_application_user(self, application_id: str, role: str):
pass
@abstractmethod
def remove_role_from_application_user(self, application_id: str, role: str):
pass
@abstractmethod
def set_application_tags(self, tags: List[MetadataTag], application_id: str):
pass
@abstractmethod
def get_application_tags(self, application_id: str) -> List[MetadataTag]:
pass
@abstractmethod
def delete_application_tags(self, tags: List[MetadataTag], application_id: str):
pass
@abstractmethod
def create_access_key(self, application_id: str) -> CreatedAccessKey:
pass
@abstractmethod
def get_access_keys(self, application_id: str) -> List[AccessKey]:
pass
@abstractmethod
def toggle_access_key_status(self, application_id: str, key_id: str) -> AccessKey:
pass
@abstractmethod
def delete_access_key(self, application_id: str, key_id: str):
pass
# Users
@abstractmethod
def upsert_user(
self, upsert_user_request: UpsertUserRequest, user_id: str
) -> ConductorUser:
pass
@abstractmethod
def get_user(self, user_id: str) -> ConductorUser:
pass
@abstractmethod
def list_users(self, apps: Optional[bool] = False) -> List[ConductorUser]:
pass
@abstractmethod
def delete_user(self, user_id: str):
pass
# Groups
@abstractmethod
def upsert_group(
self, upsert_group_request: UpsertGroupRequest, group_id: str
) -> Group:
pass
@abstractmethod
def get_group(self, group_id: str) -> Group:
pass
@abstractmethod
def list_groups(self) -> List[Group]:
pass
@abstractmethod
def delete_group(self, group_id: str):
pass
@abstractmethod
def add_user_to_group(self, group_id: str, user_id: str):
pass
@abstractmethod
def get_users_in_group(self, group_id: str) -> List[ConductorUser]:
pass
@abstractmethod
def remove_user_from_group(self, group_id: str, user_id: str):
pass
# Permissions
@abstractmethod
def grant_permissions(
self, subject: SubjectRef, target: TargetRef, access: List[AccessType]
):
pass
@abstractmethod
def get_permissions(self, target: TargetRef) -> Dict[str, List[SubjectRef]]:
pass
@abstractmethod
def get_granted_permissions_for_group(
self, group_id: str
) -> List[GrantedPermission]:
pass
@abstractmethod
def get_granted_permissions_for_user(self, user_id: str) -> List[GrantedPermission]:
pass
@abstractmethod
def remove_permissions(
self, subject: SubjectRef, target: TargetRef, access: List[AccessType]
):
pass