|
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): |
|
|
|
@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 |
|
|
|
|
|
@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 |
|
|
|
|
|
@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 |
|
|
|
|
|
@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 |
|
|