"""Capability declarations shared by transport and daemon services."""
from .capabilities import Capability

UNSUPPORTED_CLIENT_METHOD_CAPABILITIES = {
    "start_broadcast_command": Capability.BROADCAST_WRITE,
    "get_broadcast_command": Capability.BROADCAST_READ,
    "cancel_broadcast_command": Capability.BROADCAST_WRITE,
    "get_plugin_setting": Capability.PLUGIN_SETTINGS_READ,
    "set_plugin_setting": Capability.PLUGIN_SETTINGS_WRITE,
    "subscribe_broadcast_output": Capability.BROADCAST_EVENTS,
    "attach_session": Capability.SESSIONS_WRITE,
    "claim_terminal_input": Capability.TERMINAL_INPUT,
    "close_session": Capability.SESSIONS_WRITE,
    "detach_session": Capability.SESSIONS_WRITE,
    "get_daemon_diagnostics": Capability.DAEMON_STATUS,
    "get_daemon_status": Capability.DAEMON_STATUS,
    "get_session": Capability.SESSIONS_READ,
    "get_interaction": Capability.INTERACTIONS_READ,
    "claim_interaction": Capability.INTERACTIONS_RESPOND,
    "cancel_interaction": Capability.INTERACTIONS_RESPOND,
    "list_interactions": Capability.INTERACTIONS_READ,
    "list_sessions": Capability.SESSIONS_READ,
    "open_session": Capability.SESSIONS_WRITE,
    "release_terminal_input": Capability.TERMINAL_INPUT,
    "replay_terminal": Capability.TERMINAL_REPLAY,
    "resize_terminal": Capability.TERMINAL_RESIZE,
    "release_interaction": Capability.INTERACTIONS_RESPOND,
    "respond_to_interaction": Capability.INTERACTIONS_RESPOND,
    "restart_daemon": Capability.DAEMON_CONTROL,
    "set_daemon_log_level": Capability.DAEMON_CONTROL,
    "set_operation_mode": Capability.OPERATION_MODE,
    "get_operation_mode": Capability.OPERATION_MODE,
    "send_interaction_secret": Capability.INTERACTIONS_RESPOND,
    "has_connection_password": Capability.CONNECTIONS_SECRETS_STATUS_READ,
    "has_key_passphrase": Capability.CONNECTIONS_SECRETS_STATUS_READ,
    "reveal_connection_password": Capability.CONNECTIONS_SECRETS_REVEAL,
    "reveal_key_passphrase": Capability.CONNECTIONS_SECRETS_REVEAL,
    "get_plugin_secret": Capability.CONNECTIONS_SECRETS_REVEAL,
    "move_connections": Capability.CONNECTIONS_GROUPS,
    "sftp_copy": Capability.SFTP_MUTATE,
    "send_terminal_input": Capability.TERMINAL_INPUT,
    "broadcast_terminal_input": Capability.TERMINAL_INPUT,
    "stop_daemon": Capability.DAEMON_CONTROL,
    "subscribe_terminal": Capability.TERMINAL_OUTPUT,
    "list_sftp_services": Capability.SFTP_READ,
    "get_sftp_service": Capability.SFTP_READ,
    "open_sftp": Capability.SFTP_WRITE,
    "attach_sftp": Capability.SFTP_WRITE,
    "detach_sftp": Capability.SFTP_WRITE,
    "close_sftp": Capability.SFTP_WRITE,
    "sftp_list_directory": Capability.SFTP_READ,
    "sftp_stat": Capability.SFTP_METADATA,
    "sftp_directory_size": Capability.SFTP_READ,
    "sftp_lstat": Capability.SFTP_METADATA,
    "sftp_realpath": Capability.SFTP_METADATA,
    "sftp_readlink": Capability.SFTP_METADATA,
    "sftp_read_file": Capability.SFTP_READ,
    "sftp_replace_file": Capability.SFTP_MUTATE,
    "sftp_create_file": Capability.SFTP_MUTATE,
    "sftp_mkdir": Capability.SFTP_MUTATE,
    "sftp_rmdir": Capability.SFTP_MUTATE,
    "sftp_remove": Capability.SFTP_MUTATE,
    "sftp_rename": Capability.SFTP_MUTATE,
    "sftp_chmod": Capability.SFTP_MUTATE,
    "sftp_symlink": Capability.SFTP_MUTATE,
    "list_transfers": Capability.TRANSFERS_READ,
    "get_transfer": Capability.TRANSFERS_READ,
    "start_transfer": Capability.TRANSFERS_WRITE,
    "start_scp_transfer": Capability.TRANSFERS_SCP,
    "cancel_transfer": Capability.TRANSFERS_WRITE,
    "list_forwards": Capability.FORWARDS_READ,
    "get_forward": Capability.FORWARDS_READ,
    "open_forward": Capability.FORWARDS_WRITE,
    "claim_forward": Capability.FORWARDS_WRITE,
    "close_forward": Capability.FORWARDS_WRITE,
    "get_secret_configuration": Capability.SECRETS_READ,
    "update_secret_configuration": Capability.SECRETS_WRITE,
    "get_secret_backends": Capability.SECRETS_READ,
    "get_secret_state": Capability.SECRETS_READ,
    "update_secret_selection": Capability.SECRETS_WRITE,
    "unlock_secrets": Capability.SECRETS_OPERATE,
    "lock_secrets": Capability.SECRETS_OPERATE,
    "bitwarden_status": Capability.SECRETS_OPERATE,
    "bitwarden_configure_server": Capability.SECRETS_OPERATE,
    "bitwarden_login": Capability.SECRETS_OPERATE,
    "bitwarden_api_key_login": Capability.SECRETS_OPERATE,
    "bitwarden_sso_login": Capability.SECRETS_OPERATE,
    "bitwarden_unlock": Capability.SECRETS_OPERATE,
    "bitwarden_sync": Capability.SECRETS_OPERATE,
    "bitwarden_lock": Capability.SECRETS_OPERATE,
    "bitwarden_logout": Capability.SECRETS_OPERATE,
    "rbw_status": Capability.SECRETS_OPERATE,
    "rbw_configure": Capability.SECRETS_OPERATE,
    "rbw_unlock": Capability.SECRETS_OPERATE,
    "rbw_sync": Capability.SECRETS_OPERATE,
    "rbw_lock": Capability.SECRETS_OPERATE,
    "keepassxc_create_database": Capability.SECRETS_OPERATE,
    "keepassxc_unlock": Capability.SECRETS_OPERATE,
    "keepassxc_lock": Capability.SECRETS_OPERATE,
    "remember_master_password": Capability.SECRETS_OPERATE,
    "forget_master_password": Capability.SECRETS_OPERATE,
    "export_secret_backup": Capability.SECRETS_TRANSFER,
    "import_secret_backup": Capability.SECRETS_TRANSFER,
    "preview_backup": Capability.SECRETS_TRANSFER,
    "list_bitwarden_backups": Capability.SECRETS_TRANSFER,
    "import_bitwarden_backup": Capability.SECRETS_TRANSFER,
    "preview_bitwarden_backup": Capability.SECRETS_TRANSFER,
    "list_ssh_backups": Capability.SECRETS_TRANSFER,
    "import_ssh_backup": Capability.SECRETS_TRANSFER,
    "preview_ssh_backup": Capability.SECRETS_TRANSFER,
    "get_identity_providers": Capability.IDENTITY_READ,
    "get_identity_state": Capability.IDENTITY_READ,
    "update_identity_selection": Capability.IDENTITY_WRITE,
    "update_identity_configuration": Capability.IDENTITY_WRITE,
    "list_agent_keys": Capability.IDENTITY_READ,
    "list_provider_agent_keys": Capability.IDENTITY_READ,
    "add_agent_key": Capability.IDENTITY_OPERATE,
    "remove_agent_key": Capability.IDENTITY_OPERATE,
    "deploy_key": Capability.IDENTITY_OPERATE,
    "list_authorized_keys": Capability.IDENTITY_READ,
    "remove_authorized_key": Capability.IDENTITY_OPERATE,
    "get_operation": Capability.OPERATIONS_READ,
    "cancel_operation": Capability.OPERATIONS_CONTROL,
}
