Spaces:
Sleeping
Sleeping
File size: 4,676 Bytes
1b7e88c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
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
|