@startuml

!startsub CISCO_FTD_PYDANTIC_CHECK_CONNECTION_DATA
struct CiscoFTDAuthenticationModel <<(P,#fc0373) Pydantic Model>>  {
    + host: str
    + username: str
    + password: str
    + port: Optional[str] = 22
}
!endsub

struct CiscoFTDSSHOperationCommandModel <<(P,#fc0373) Pydantic Model>> {
    + command: str
    + result: Union[str, List[Any], Dict[str, Any]] = ""
}

!startsub CISCO_FTD_PYDANTIC_SSH_COMMANDS_LIST
struct CiscoFTDSSHOperationCommandsListModel <<(P,#fc0373) Pydantic Model>> {
    + commands: List[CiscoFTDSSHOperationCommand]
}
!endsub

!startsub CISCO_FTD_PYDANTIC_CREATE_DATA_MODEL
struct CiscoFTDCreateDataModel <<(P,#fc0373) Pydantic Model>> {
    name: str
    ip: str
    username: str
    password: str
    connection_type: str = CONNECTION_CLI_TYPE
    port: int = DEFAULT_FTD_PORT
    description: str = ""
    administrators: List[int] = []
}
!endsub

CiscoFTDSSHOperationCommandModel ..> CiscoFTDSSHOperationCommandsListModel

@enduml