@startuml !includesub ./ftd_model.puml!CiscoFTDModel !include ./ftd_ssh_strategy.puml interface CiscoFTDFactoryInterfaces { + perform_request() } !startsub CISCOFTDSSHOPERATIONFACTORY class CiscoFTDSSHOperationFactory { + ftd_instance: CiscoFTD + request_data: Dict + perform_request() + @property\nftd_connect_data() -> Dict # _parse_client_data(client_data: Dict) -> Dict # _parse_ftd_response(ftd_response: str) -> Dict # _prepare_operation() -> CiscoFTDSSHOperation } !endsub !startsub CISCOFTDCACHEOPERATIONFACTORY class CiscoFTDCacheOperationFactory { + ftd_instance: CiscoFTD + request_data: Dict + perform_request() # _get_config() -> str } !endsub CiscoFTD --o CiscoFTDCacheOperationFactory CiscoFTD --o CiscoFTDSSHOperationFactory CiscoFTDSSHOperationFactory ..|> CiscoFTDFactoryInterfaces CiscoFTDCacheOperationFactory ..|> CiscoFTDFactoryInterfaces CiscoFTDSSHOperationFactory *-- CiscoFTDSSHOperation @enduml