public function removeAction() : Action\RemoveActionDefiner
    {
        try {
            $this->eventDispatcher->emit(
                $this->packageName . '.' . $this->name . '.define-remove', $this
            );

            return new RemoveActionDefiner($this->dataSource, $this->authSystem, $this->requiredPermissions, function (IObjectAction $action) {
                $this->actions[$action->getName()] = $action;
            });
        } catch (UnsupportedActionException $e) {

        }
    }