"""
Role endpoints for the OpenBankProject API Client.
"""
from typing import Dict, List, Optional, Union, Any
[docs]
class RoleEndpoints:
"""Role-related API endpoints."""
[docs]
def __init__(self, client):
"""
Initialize the endpoint group.
Args:
client: OpenBankProjectClient instance
"""
self.client = client
[docs]
def add_entitlement_for_user(self, bank_id: str, user_id: str, role_name: str) -> Dict:
"""
Add Entitlement for a User.
Args:
bank_id: Bank identifier
user_id: User identifier
role_name: Role name
Returns:
Dict containing entitlement information
"""
return self.client.post(f"banks/{bank_id}/users/{user_id}/entitlements/{role_name}", data={})
[docs]
def create_user_with_roles(self, bank_id: str, data: Dict) -> Dict:
"""
Create (DAuth) User with Roles.
Args:
bank_id: Bank identifier
data: User and roles data
Returns:
Dict containing created user information
"""
return self.client.post(f"banks/{bank_id}/user-entitlements", data=data)
[docs]
def create_entitlement_request_for_current_user(self, bank_id: str, data: Dict) -> Dict:
"""
Create Entitlement Request for current User.
Args:
bank_id: Bank identifier
data: Entitlement request data
Returns:
Dict containing created entitlement request information
"""
return self.client.post(f"banks/{bank_id}/entitlement-requests", data=data)
[docs]
def delete_entitlement(self, bank_id: str, user_id: str, role_name: str) -> Dict:
"""
Delete Entitlement.
Args:
bank_id: Bank identifier
user_id: User identifier
role_name: Role name
Returns:
Dict containing deletion status
"""
return self.client.delete(f"banks/{bank_id}/users/{user_id}/entitlements/{role_name}")
[docs]
def delete_entitlement_request(self, entitlement_request_id: str) -> Dict:
"""
Delete Entitlement Request.
Args:
entitlement_request_id: Entitlement request identifier
Returns:
Dict containing deletion status
"""
return self.client.delete(f"entitlement-requests/{entitlement_request_id}")
[docs]
def get_entitlement_requests_for_user(self, user_id: str) -> Dict:
"""
Get Entitlement Requests for a User.
Args:
user_id: User identifier
Returns:
Dict containing entitlement requests information
"""
return self.client.get(f"users/{user_id}/entitlement-requests")
[docs]
def get_entitlement_requests_for_current_user(self) -> Dict:
"""
Get Entitlement Requests for the current User.
Returns:
Dict containing entitlement requests information
"""
return self.client.get("my/entitlement-requests")
[docs]
def get_entitlements_and_permissions_for_user(self, user_id: str) -> Dict:
"""
Get Entitlements and Permissions for a User.
Args:
user_id: User identifier
Returns:
Dict containing entitlements and permissions information
"""
return self.client.get(f"users/{user_id}/entitlements/permissions")
[docs]
def get_entitlements_for_one_bank(self, bank_id: str) -> Dict:
"""
Get Entitlements for One Bank.
Args:
bank_id: Bank identifier
Returns:
Dict containing entitlements information
"""
return self.client.get(f"banks/{bank_id}/entitlements")
[docs]
def get_entitlements_for_user(self, user_id: str) -> Dict:
"""
Get Entitlements for User.
Args:
user_id: User identifier
Returns:
Dict containing entitlements information
"""
return self.client.get(f"users/{user_id}/entitlements")
[docs]
def get_entitlements_for_user_at_bank(self, bank_id: str, user_id: str) -> Dict:
"""
Get Entitlements for User at Bank.
Args:
bank_id: Bank identifier
user_id: User identifier
Returns:
Dict containing entitlements information
"""
return self.client.get(f"banks/{bank_id}/users/{user_id}/entitlements")
[docs]
def get_entitlements_for_current_user(self) -> Dict:
"""
Get Entitlements for the current User.
Returns:
Dict containing entitlements information
"""
return self.client.get("my/entitlements")
[docs]
def get_roles(self) -> Dict:
"""
Get Roles.
Returns:
Dict containing roles information
"""
return self.client.get("roles")
[docs]
def get_all_entitlement_requests(self) -> Dict:
"""
Get all Entitlement Requests.
Returns:
Dict containing all entitlement requests information
"""
return self.client.get("entitlement-requests")
[docs]
def get_all_entitlements(self) -> Dict:
"""
Get all Entitlements.
Returns:
Dict containing all entitlements information
"""
return self.client.get("entitlements")