"""
API Management endpoints for the OpenBankProject API Client.
"""
from typing import Dict, List, Optional, Union, Any
[docs]
class ApiManagementEndpoints:
"""API Management-related API endpoints."""
[docs]
def __init__(self, client):
"""
Initialize the endpoint group.
Args:
client: OpenBankProjectClient instance
"""
self.client = client
[docs]
def create_bank_level_endpoint_tag(self, bank_id: str, data: Dict) -> Dict:
"""
Create a bank level endpoint tag.
Args:
bank_id: Bank identifier
data: Endpoint tag data
Returns:
Dict containing created endpoint tag information
"""
return self.client.post(f"management/banks/{bank_id}/endpoints/tags", data=data)
[docs]
def create_system_level_endpoint_tag(self, data: Dict) -> Dict:
"""
Create a system level endpoint tag.
Args:
data: Endpoint tag data
Returns:
Dict containing created endpoint tag information
"""
return self.client.post("management/endpoints/tags", data=data)
[docs]
def delete_bank_level_endpoint_tag(self, bank_id: str, tag_id: str) -> Dict:
"""
Delete a bank level endpoint tag.
Args:
bank_id: Bank identifier
tag_id: Tag identifier
Returns:
Dict containing deletion status
"""
return self.client.delete(f"management/banks/{bank_id}/endpoints/tags/{tag_id}")
[docs]
def delete_system_level_endpoint_tag(self, tag_id: str) -> Dict:
"""
Delete a system level endpoint tag.
Args:
tag_id: Tag identifier
Returns:
Dict containing deletion status
"""
return self.client.delete(f"management/endpoints/tags/{tag_id}")
[docs]
def get_api_configuration(self) -> Dict:
"""
Get API configuration.
Returns:
Dict containing API configuration information
"""
return self.client.get("config")
[docs]
def get_api_info(self) -> Dict:
"""
Get API info (root).
Returns:
Dict containing API information
"""
return self.client.get("")
[docs]
def get_adapter_info_for_bank(self, bank_id: str) -> Dict:
"""
Get adapter info for a bank.
Args:
bank_id: Bank identifier
Returns:
Dict containing adapter information for the bank
"""
return self.client.get(f"banks/{bank_id}/adapter")
[docs]
def get_connector_status(self) -> Dict:
"""
Get connector status (Loopback).
Returns:
Dict containing connector status information
"""
return self.client.get("connector/status")
[docs]
def get_json_web_key(self) -> Dict:
"""
Get JSON Web Key (JWK).
Returns:
Dict containing JWK information
"""
return self.client.get("jwk")
[docs]
def get_json_web_key_uris(self) -> Dict:
"""
Get JSON Web Key (JWK) URIs.
Returns:
Dict containing JWK URI information
"""
return self.client.get("jwk/uris")
[docs]
def get_mapper_database_info(self) -> Dict:
"""
Get mapper database info.
Returns:
Dict containing mapper database information
"""
return self.client.get("database/info")
[docs]
def get_rate_limiting_info(self) -> Dict:
"""
Get rate limiting info.
Returns:
Dict containing rate limiting information
"""
return self.client.get("rate-limiting")
[docs]
def get_suggested_session_timeout(self) -> Dict:
"""
Get suggested session timeout.
Returns:
Dict containing suggested session timeout information
"""
return self.client.get("session/timeout")
[docs]
def get_call_context(self) -> Dict:
"""
Get the call context of a current call.
Returns:
Dict containing call context information
"""
return self.client.get("call-context")
[docs]
def update_bank_level_endpoint_tag(self, bank_id: str, tag_id: str, data: Dict) -> Dict:
"""
Update a bank level endpoint tag.
Args:
bank_id: Bank identifier
tag_id: Tag identifier
data: Updated endpoint tag data
Returns:
Dict containing updated endpoint tag information
"""
return self.client.put(f"management/banks/{bank_id}/endpoints/tags/{tag_id}", data=data)
[docs]
def update_system_level_endpoint_tag(self, tag_id: str, data: Dict) -> Dict:
"""
Update a system level endpoint tag.
Args:
tag_id: Tag identifier
data: Updated endpoint tag data
Returns:
Dict containing updated endpoint tag information
"""
return self.client.put(f"management/endpoints/tags/{tag_id}", data=data)
[docs]
def verify_request_and_sign_response(self, data: Dict) -> Dict:
"""
Verify request and sign response of a current call.
Args:
data: Verification data
Returns:
Dict containing verification and signature information
"""
return self.client.post("verify", data=data)