class SnapshotRestoreCommand extends AbstractSnapshotCommand<SnapshotRestoreCommandArg> {
    /** {@inheritDoc} */
    @Override public String description() {
        return "Restore snapshot";
    }

    /** {@inheritDoc} */
    @Override public @Nullable String deprecationMessage(SnapshotRestoreCommandArg arg) {<FILL_FUNCTION_BODY>}

    /** {@inheritDoc} */
    @Override public Class<SnapshotRestoreCommandArg> argClass() {
        return SnapshotRestoreCommandArg.class;
    }

    /** {@inheritDoc} */
    @Override public Class<SnapshotRestoreTask> taskClass() {
        return SnapshotRestoreTask.class;
    }

    /** {@inheritDoc} */
    @Override public String confirmationPrompt(SnapshotRestoreCommandArg arg) {
        return arg.status() || arg.cancel() || arg.groups() != null
            ? null :
            "Warning: command will restore ALL USER-CREATED CACHE GROUPS from the snapshot " + arg.snapshotName() + '.';
    }
}

        if (arg.start())
            return "Command option '--start' is redundant and must be avoided.";
        else if (arg.cancel())
            return "Command deprecated. Use '--snapshot cancel' instead.";
        else if (arg.status())
            return "Command deprecated. Use '--snapshot status' instead.";

        return null;
    
<methods>public non-sealed void <init>() ,public void printResult(org.apache.ignite.internal.management.snapshot.SnapshotRestoreCommandArg, org.apache.ignite.internal.management.snapshot.SnapshotTaskResult, Consumer<java.lang.String>) <variables>