'string', 'identifier' => 'string', 'url' => 'string', ]; /** * @inheritdoc */ public static $_required = ['name']; /** * @inheritdoc */ public static $_parents = [ Info::class, ]; /** * @inheritdoc */ public static $_nested = [ Attachable::class => ['attachables'], ]; /** * @inheritdoc */ #[\ReturnTypeWillChange] public function jsonSerialize() { $data = parent::jsonSerialize(); if ($this->_context->isVersion(OpenApi::VERSION_3_0_0)) { unset($data->identifier); } return $data; } /** * @inheritdoc */ public function validate(array $stack = [], array $skip = [], string $ref = '', $context = null): bool { $valid = parent::validate($stack, $skip, $ref, $context); if ($this->_context->isVersion(OpenApi::VERSION_3_1_0)) { if (!Generator::isDefault($this->url) && $this->identifier !== Generator::UNDEFINED) { $this->_context->logger->warning($this->identity() . ' url and identifier are mutually exclusive'); $valid = false; } } return $valid; } }