Source code for openbankproject_client.atm

"""
ATM endpoints for the OpenBankProject API Client.
"""

from typing import Dict, List, Optional, Union, Any


[docs] class AtmEndpoints: """ATM-related API endpoints."""
[docs] def __init__(self, client): """ Initialize the endpoint group. Args: client: OpenBankProjectClient instance """ self.client = client
[docs] def get_atms(self, bank_id: str, params: Optional[Dict] = None) -> Dict: """ Get all ATMs at a specific bank. Args: bank_id: Bank identifier params: Optional query parameters like limit, offset, etc. Returns: Dict containing ATM information """ return self.client.get(f"banks/{bank_id}/atms", params=params)
[docs] def get_atm_by_id(self, bank_id: str, atm_id: str) -> Dict: """ Get ATM by ID at a specific bank. Args: bank_id: Bank identifier atm_id: ATM identifier Returns: Dict containing ATM information """ return self.client.get(f"banks/{bank_id}/atms/{atm_id}")
[docs] def create_atm(self, bank_id: str, data: Dict) -> Dict: """ Create a new ATM at a specific bank. Args: bank_id: Bank identifier data: ATM data Returns: Dict containing created ATM information """ return self.client.post(f"banks/{bank_id}/atms", data=data)
[docs] def update_atm(self, bank_id: str, atm_id: str, data: Dict) -> Dict: """ Update an existing ATM at a specific bank. Args: bank_id: Bank identifier atm_id: ATM identifier data: Updated ATM data Returns: Dict containing updated ATM information """ return self.client.put(f"banks/{bank_id}/atms/{atm_id}", data=data)
[docs] def delete_atm(self, bank_id: str, atm_id: str) -> Dict: """ Delete an ATM at a specific bank. Args: bank_id: Bank identifier atm_id: ATM identifier Returns: Dict containing deletion status """ return self.client.delete(f"banks/{bank_id}/atms/{atm_id}")
[docs] def get_atm_attributes(self, bank_id: str, atm_id: str) -> Dict: """ Get attributes for an ATM. Args: bank_id: Bank identifier atm_id: ATM identifier Returns: Dict containing ATM attribute information """ return self.client.get(f"banks/{bank_id}/atms/{atm_id}/attributes")
[docs] def create_atm_attribute(self, bank_id: str, atm_id: str, data: Dict) -> Dict: """ Create an attribute for an ATM. Args: bank_id: Bank identifier atm_id: ATM identifier data: Attribute data Returns: Dict containing created attribute information """ return self.client.post(f"banks/{bank_id}/atms/{atm_id}/attributes", data=data)
[docs] def update_atm_attribute(self, bank_id: str, atm_id: str, attribute_id: str, data: Dict) -> Dict: """ Update an attribute of an ATM. Args: bank_id: Bank identifier atm_id: ATM identifier attribute_id: Attribute identifier data: Updated attribute data Returns: Dict containing updated attribute information """ return self.client.put(f"banks/{bank_id}/atms/{atm_id}/attributes/{attribute_id}", data=data)
[docs] def delete_atm_attribute(self, bank_id: str, atm_id: str, attribute_id: str) -> Dict: """ Delete an attribute from an ATM. Args: bank_id: Bank identifier atm_id: ATM identifier attribute_id: Attribute identifier Returns: Dict containing deletion status """ return self.client.delete(f"banks/{bank_id}/atms/{atm_id}/attributes/{attribute_id}")