setName('sharing:update-share-recipient-secret') ->setDescription('Update the secret of a recipient.') ->addArgument('secret', InputArgument::REQUIRED, 'Recipient secret') ->addArgument('id', InputArgument::REQUIRED, 'Share ID') ->addArgument('class', InputArgument::REQUIRED, 'Recipient class') ->addArgument('value', InputArgument::REQUIRED, 'Recipient value') ->addArgument('instance', InputArgument::OPTIONAL, 'Recipient instance'); } #[\Override] public function execute(InputInterface $input, OutputInterface $output): int { /** @var string $id */ $id = $input->getArgument('id'); /** @var class-string $class */ $class = $input->getArgument('class'); /** @var non-empty-string $value */ $value = $input->getArgument('value'); /** @var ?non-empty-string $instance */ $instance = $input->getArgument('instance'); /** @var non-empty-string $secret */ $secret = $input->getArgument('secret'); return $this->wrapExecution($output, function () use ($id, $class, $value, $instance, $secret): Share { $share = $this->manager->getShare($this->accessContext, $id); return $this->manager->updateShareRecipientSecret($this->accessContext, $share, new ShareRecipient($class, $value, $instance), $secret); }); } }