vendor/api-platform/core/src/Metadata/ApiResource.php line 961
<?php/** This file is part of the API Platform project.** (c) Kévin Dunglas <dunglas@gmail.com>** For the full copyright and license information, please view the LICENSE* file that was distributed with this source code.*/declare(strict_types=1);namespace ApiPlatform\Metadata;use ApiPlatform\Metadata\GraphQl\Operation as GraphQlOperation;use ApiPlatform\OpenApi\Model\Operation as OpenApiOperation;use ApiPlatform\State\OptionsInterface;/*** Resource metadata attribute.** @Annotation** @author Antoine Bluchet <soyuka@gmail.com>*/#[\Attribute(\Attribute::TARGET_CLASS | \Attribute::IS_REPEATABLE)]class ApiResource{use WithResourceTrait;protected ?Operations $operations;/*** @var string|callable|null*/protected $provider;/*** @var string|callable|null*/protected $processor;/*** @param array|string|null $types The RDF types of this resource* @param mixed|null $operations* @param array|string|null $formats https://api-platform.com/docs/core/content-negotiation/#configuring-formats-for-a-specific-resource-or-operation* @param array|string|null $inputFormats https://api-platform.com/docs/core/content-negotiation/#configuring-formats-for-a-specific-resource-or-operation* @param array|string|null $outputFormats https://api-platform.com/docs/core/content-negotiation/#configuring-formats-for-a-specific-resource-or-operation* @param array<string, Link>|array<string, mixed[]>|string[]|string|null $uriVariables* @param string|null $routePrefix https://api-platform.com/docs/core/operations/#prefixing-all-routes-of-all-operations* @param string|null $sunset https://api-platform.com/docs/core/deprecations/#setting-the-sunset-http-header-to-indicate-when-a-resource-or-an-operation-will-be-removed* @param string|null $deprecationReason https://api-platform.com/docs/core/deprecations/#deprecating-resource-classes-operations-and-properties* @param array|null $cacheHeaders https://api-platform.com/docs/core/performance/#setting-custom-http-cache-headers* @param array|null $normalizationContext https://api-platform.com/docs/core/serialization/#using-serialization-groups* @param array|null $denormalizationContext https://api-platform.com/docs/core/serialization/#using-serialization-groups* @param string[]|null $hydraContext https://api-platform.com/docs/core/extending-jsonld-context/#hydra* @param array|null $openapiContext https://api-platform.com/docs/core/openapi/#using-the-openapi-and-swagger-contexts* @param bool|OpenApiOperation|null $openapi https://api-platform.com/docs/core/openapi/#using-the-openapi-and-swagger-contexts* @param array|null $validationContext https://api-platform.com/docs/core/validation/#using-validation-groups* @param string[] $filters https://api-platform.com/docs/core/filters/#doctrine-orm-and-mongodb-odm-filters* @param bool|null $elasticsearch https://api-platform.com/docs/core/elasticsearch/* @param mixed|null $mercure https://api-platform.com/docs/core/mercure* @param mixed|null $messenger https://api-platform.com/docs/core/messenger/#dispatching-a-resource-through-the-message-bus* @param mixed|null $input https://api-platform.com/docs/core/dto/#specifying-an-input-or-an-output-data-representation* @param mixed|null $output https://api-platform.com/docs/core/dto/#specifying-an-input-or-an-output-data-representation* @param array|null $order https://api-platform.com/docs/core/default-order/#overriding-default-order* @param bool|null $fetchPartial https://api-platform.com/docs/core/performance/#fetch-partial* @param bool|null $forceEager https://api-platform.com/docs/core/performance/#force-eager* @param bool|null $paginationClientEnabled https://api-platform.com/docs/core/pagination/#for-a-specific-resource-1* @param bool|null $paginationClientItemsPerPage https://api-platform.com/docs/core/pagination/#for-a-specific-resource-3* @param bool|null $paginationClientPartial https://api-platform.com/docs/core/pagination/#for-a-specific-resource-6* @param array|null $paginationViaCursor https://api-platform.com/docs/core/pagination/#cursor-based-pagination* @param bool|null $paginationEnabled https://api-platform.com/docs/core/pagination/#for-a-specific-resource* @param bool|null $paginationFetchJoinCollection https://api-platform.com/docs/core/pagination/#controlling-the-behavior-of-the-doctrine-orm-paginator* @param int|null $paginationItemsPerPage https://api-platform.com/docs/core/pagination/#changing-the-number-of-items-per-page* @param int|null $paginationMaximumItemsPerPage https://api-platform.com/docs/core/pagination/#changing-maximum-items-per-page* @param bool|null $paginationPartial https://api-platform.com/docs/core/performance/#partial-pagination* @param string|null $paginationType https://api-platform.com/docs/core/graphql/#using-the-page-based-pagination* @param string|null $security https://api-platform.com/docs/core/security* @param string|null $securityMessage https://api-platform.com/docs/core/security/#configuring-the-access-control-error-message* @param string|null $securityPostDenormalize https://api-platform.com/docs/core/security/#executing-access-control-rules-after-denormalization* @param string|null $securityPostDenormalizeMessage https://api-platform.com/docs/core/security/#configuring-the-access-control-error-message* @param string $securityPostValidation https://api-platform.com/docs/core/security/#executing-access-control-rules-after-validtion* @param string $securityPostValidationMessage https://api-platform.com/docs/core/security/#configuring-the-access-control-error-message* @param mixed|null $provider* @param mixed|null $processor*/public function __construct(protected ?string $uriTemplate = null,protected ?string $shortName = null,protected ?string $description = null,protected string|array|null $types = null,$operations = null,protected $formats = null,protected $inputFormats = null,protected $outputFormats = null,protected $uriVariables = null,protected ?string $routePrefix = null,protected ?array $defaults = null,protected ?array $requirements = null,protected ?array $options = null,protected ?bool $stateless = null,protected ?string $sunset = null,protected ?string $acceptPatch = null,protected ?int $status = null,protected ?string $host = null,protected ?array $schemes = null,protected ?string $condition = null,protected ?string $controller = null,protected ?string $class = null,protected ?int $urlGenerationStrategy = null,protected ?string $deprecationReason = null,protected ?array $cacheHeaders = null,protected ?array $normalizationContext = null,protected ?array $denormalizationContext = null,protected ?bool $collectDenormalizationErrors = null,protected ?array $hydraContext = null,protected ?array $openapiContext = null, // TODO Remove in 4.0protected bool|OpenApiOperation|null $openapi = null,protected ?array $validationContext = null,protected ?array $filters = null,protected ?bool $elasticsearch = null,protected $mercure = null,protected $messenger = null,protected $input = null,protected $output = null,protected ?array $order = null,protected ?bool $fetchPartial = null,protected ?bool $forceEager = null,protected ?bool $paginationClientEnabled = null,protected ?bool $paginationClientItemsPerPage = null,protected ?bool $paginationClientPartial = null,protected ?array $paginationViaCursor = null,protected ?bool $paginationEnabled = null,protected ?bool $paginationFetchJoinCollection = null,protected ?bool $paginationUseOutputWalkers = null,protected ?int $paginationItemsPerPage = null,protected ?int $paginationMaximumItemsPerPage = null,protected ?bool $paginationPartial = null,protected ?string $paginationType = null,protected ?string $security = null,protected ?string $securityMessage = null,protected ?string $securityPostDenormalize = null,protected ?string $securityPostDenormalizeMessage = null,protected ?string $securityPostValidation = null,protected ?string $securityPostValidationMessage = null,protected ?bool $compositeIdentifier = null,protected ?array $exceptionToStatus = null,protected ?bool $queryParameterValidationEnabled = null,protected ?array $graphQlOperations = null,$provider = null,$processor = null,protected ?OptionsInterface $stateOptions = null,protected array $extraProperties = [],) {$this->operations = null === $operations ? null : new Operations($operations);$this->provider = $provider;$this->processor = $processor;if (\is_string($types)) {$this->types = (array) $types;}}public function getOperations(): ?Operations{return $this->operations;}public function withOperations(Operations $operations): self{$self = clone $this;$self->operations = $operations;return $self;}public function getUriTemplate(): ?string{return $this->uriTemplate;}public function withUriTemplate(string $uriTemplate): self{$self = clone $this;$self->uriTemplate = $uriTemplate;return $self;}public function getShortName(): ?string{return $this->shortName;}public function withShortName(string $shortName): self{$self = clone $this;$self->shortName = $shortName;return $self;}public function getDescription(): ?string{return $this->description;}public function withDescription(string $description): self{$self = clone $this;$self->description = $description;return $self;}public function getTypes(): ?array{return $this->types;}/*** @param string[]|string $types*/public function withTypes(array|string $types): self{$self = clone $this;$self->types = (array) $types;return $self;}/*** @return array|mixed|string|null*/public function getFormats(){return $this->formats;}/*** @param mixed|null $formats*/public function withFormats($formats): self{$self = clone $this;$self->formats = $formats;return $self;}/*** @return array|mixed|string|null*/public function getInputFormats(){return $this->inputFormats;}/*** @param mixed|null $inputFormats*/public function withInputFormats($inputFormats): self{$self = clone $this;$self->inputFormats = $inputFormats;return $self;}/*** @return array|mixed|string|null*/public function getOutputFormats(){return $this->outputFormats;}/*** @param mixed|null $outputFormats*/public function withOutputFormats($outputFormats): self{$self = clone $this;$self->outputFormats = $outputFormats;return $self;}/*** @return array<string, Link>|array<string, array>|string[]|string|null*/public function getUriVariables(){return $this->uriVariables;}/*** @param array<string, Link>|array<string, array>|string[]|string|null $uriVariables*/public function withUriVariables($uriVariables): self{$self = clone $this;$self->uriVariables = $uriVariables;return $self;}public function getRoutePrefix(): ?string{return $this->routePrefix;}public function withRoutePrefix(string $routePrefix): self{$self = clone $this;$self->routePrefix = $routePrefix;return $self;}public function getDefaults(): ?array{return $this->defaults;}public function withDefaults(array $defaults): self{$self = clone $this;$self->defaults = $defaults;return $self;}public function getRequirements(): ?array{return $this->requirements;}public function withRequirements(array $requirements): self{$self = clone $this;$self->requirements = $requirements;return $self;}public function getOptions(): ?array{return $this->options;}public function withOptions(array $options): self{$self = clone $this;$self->options = $options;return $self;}public function getStateless(): ?bool{return $this->stateless;}public function withStateless(bool $stateless): self{$self = clone $this;$self->stateless = $stateless;return $self;}public function getSunset(): ?string{return $this->sunset;}public function withSunset(string $sunset): self{$self = clone $this;$self->sunset = $sunset;return $self;}public function getAcceptPatch(): ?string{return $this->acceptPatch;}public function withAcceptPatch(string $acceptPatch): self{$self = clone $this;$self->acceptPatch = $acceptPatch;return $self;}public function getStatus(): ?int{return $this->status;}public function withStatus($status): self{$self = clone $this;$self->status = $status;return $self;}public function getHost(): ?string{return $this->host;}public function withHost(string $host): self{$self = clone $this;$self->host = $host;return $self;}public function getSchemes(): ?array{return $this->schemes;}public function withSchemes(array $schemes): self{$self = clone $this;$self->schemes = $schemes;return $self;}public function getCondition(): ?string{return $this->condition;}public function withCondition(string $condition): self{$self = clone $this;$self->condition = $condition;return $self;}public function getController(): ?string{return $this->controller;}public function withController(string $controller): self{$self = clone $this;$self->controller = $controller;return $self;}public function getClass(): ?string{return $this->class;}public function withClass(string $class): self{$self = clone $this;$self->class = $class;return $self;}public function getUrlGenerationStrategy(): ?int{return $this->urlGenerationStrategy;}public function withUrlGenerationStrategy(int $urlGenerationStrategy): self{$self = clone $this;$self->urlGenerationStrategy = $urlGenerationStrategy;return $self;}public function getDeprecationReason(): ?string{return $this->deprecationReason;}public function withDeprecationReason(string $deprecationReason): self{$self = clone $this;$self->deprecationReason = $deprecationReason;return $self;}public function getCacheHeaders(): ?array{return $this->cacheHeaders;}public function withCacheHeaders(array $cacheHeaders): self{$self = clone $this;$self->cacheHeaders = $cacheHeaders;return $self;}public function getNormalizationContext(): ?array{return $this->normalizationContext;}public function withNormalizationContext(array $normalizationContext): self{$self = clone $this;$self->normalizationContext = $normalizationContext;return $self;}public function getDenormalizationContext(): ?array{return $this->denormalizationContext;}public function withDenormalizationContext(array $denormalizationContext): self{$self = clone $this;$self->denormalizationContext = $denormalizationContext;return $self;}public function getCollectDenormalizationErrors(): ?bool{return $this->collectDenormalizationErrors;}public function withCollectDenormalizationErrors(bool $collectDenormalizationErrors = null): self{$self = clone $this;$self->collectDenormalizationErrors = $collectDenormalizationErrors;return $self;}/*** @return string[]|null*/public function getHydraContext(): ?array{return $this->hydraContext;}public function withHydraContext(array $hydraContext): self{$self = clone $this;$self->hydraContext = $hydraContext;return $self;}/*** TODO Remove in 4.0.** @deprecated*/public function getOpenapiContext(): ?array{return $this->openapiContext;}/*** TODO Remove in 4.0.** @deprecated*/public function withOpenapiContext(array $openapiContext): self{$self = clone $this;$self->openapiContext = $openapiContext;return $self;}public function getOpenapi(): bool|OpenApiOperation|null{return $this->openapi;}public function withOpenapi(bool|OpenApiOperation $openapi): self{$self = clone $this;$self->openapi = $openapi;return $self;}public function getValidationContext(): ?array{return $this->validationContext;}public function withValidationContext(array $validationContext): self{$self = clone $this;$self->validationContext = $validationContext;return $self;}/*** @return string[]|null*/public function getFilters(): ?array{return $this->filters;}public function withFilters(array $filters): self{$self = clone $this;$self->filters = $filters;return $self;}/*** @deprecated this will be removed in v4*/public function getElasticsearch(): ?bool{return $this->elasticsearch;}/*** @deprecated this will be removed in v4*/public function withElasticsearch(bool $elasticsearch): self{$self = clone $this;$self->elasticsearch = $elasticsearch;return $self;}/*** @return array|bool|mixed|null*/public function getMercure(){return $this->mercure;}public function withMercure($mercure): self{$self = clone $this;$self->mercure = $mercure;return $self;}public function getMessenger(){return $this->messenger;}public function withMessenger($messenger): self{$self = clone $this;$self->messenger = $messenger;return $self;}public function getInput(){return $this->input;}public function withInput($input): self{$self = clone $this;$self->input = $input;return $self;}public function getOutput(){return $this->output;}public function withOutput($output): self{$self = clone $this;$self->output = $output;return $self;}public function getOrder(): ?array{return $this->order;}public function withOrder(array $order): self{$self = clone $this;$self->order = $order;return $self;}public function getFetchPartial(): ?bool{return $this->fetchPartial;}public function withFetchPartial(bool $fetchPartial): self{$self = clone $this;$self->fetchPartial = $fetchPartial;return $self;}public function getForceEager(): ?bool{return $this->forceEager;}public function withForceEager(bool $forceEager): self{$self = clone $this;$self->forceEager = $forceEager;return $self;}public function getPaginationClientEnabled(): ?bool{return $this->paginationClientEnabled;}public function withPaginationClientEnabled(bool $paginationClientEnabled): self{$self = clone $this;$self->paginationClientEnabled = $paginationClientEnabled;return $self;}public function getPaginationClientItemsPerPage(): ?bool{return $this->paginationClientItemsPerPage;}public function withPaginationClientItemsPerPage(bool $paginationClientItemsPerPage): self{$self = clone $this;$self->paginationClientItemsPerPage = $paginationClientItemsPerPage;return $self;}public function getPaginationClientPartial(): ?bool{return $this->paginationClientPartial;}public function withPaginationClientPartial(bool $paginationClientPartial): self{$self = clone $this;$self->paginationClientPartial = $paginationClientPartial;return $self;}public function getPaginationViaCursor(): ?array{return $this->paginationViaCursor;}public function withPaginationViaCursor(array $paginationViaCursor): self{$self = clone $this;$self->paginationViaCursor = $paginationViaCursor;return $self;}public function getPaginationEnabled(): ?bool{return $this->paginationEnabled;}public function withPaginationEnabled(bool $paginationEnabled): self{$self = clone $this;$self->paginationEnabled = $paginationEnabled;return $self;}public function getPaginationFetchJoinCollection(): ?bool{return $this->paginationFetchJoinCollection;}public function withPaginationFetchJoinCollection(bool $paginationFetchJoinCollection): self{$self = clone $this;$self->paginationFetchJoinCollection = $paginationFetchJoinCollection;return $self;}public function getPaginationUseOutputWalkers(): ?bool{return $this->paginationUseOutputWalkers;}public function withPaginationUseOutputWalkers(bool $paginationUseOutputWalkers): self{$self = clone $this;$self->paginationUseOutputWalkers = $paginationUseOutputWalkers;return $self;}public function getPaginationItemsPerPage(): ?int{return $this->paginationItemsPerPage;}public function withPaginationItemsPerPage(int $paginationItemsPerPage): self{$self = clone $this;$self->paginationItemsPerPage = $paginationItemsPerPage;return $self;}public function getPaginationMaximumItemsPerPage(): ?int{return $this->paginationMaximumItemsPerPage;}public function withPaginationMaximumItemsPerPage(int $paginationMaximumItemsPerPage): self{$self = clone $this;$self->paginationMaximumItemsPerPage = $paginationMaximumItemsPerPage;return $self;}public function getPaginationPartial(): ?bool{return $this->paginationPartial;}public function withPaginationPartial(bool $paginationPartial): self{$self = clone $this;$self->paginationPartial = $paginationPartial;return $self;}public function getPaginationType(): ?string{return $this->paginationType;}public function withPaginationType(string $paginationType): self{$self = clone $this;$self->paginationType = $paginationType;return $self;}public function getSecurity(): ?string{return $this->security;}public function withSecurity(string $security): self{$self = clone $this;$self->security = $security;return $self;}public function getSecurityMessage(): ?string{return $this->securityMessage;}public function withSecurityMessage(string $securityMessage): self{$self = clone $this;$self->securityMessage = $securityMessage;return $self;}public function getSecurityPostDenormalize(): ?string{return $this->securityPostDenormalize;}public function withSecurityPostDenormalize(string $securityPostDenormalize): self{$self = clone $this;$self->securityPostDenormalize = $securityPostDenormalize;return $self;}public function getSecurityPostDenormalizeMessage(): ?string{return $this->securityPostDenormalizeMessage;}public function withSecurityPostDenormalizeMessage(string $securityPostDenormalizeMessage): self{$self = clone $this;$self->securityPostDenormalizeMessage = $securityPostDenormalizeMessage;return $self;}public function getSecurityPostValidation(): ?string{return $this->securityPostValidation;}public function withSecurityPostValidation(string $securityPostValidation = null): self{$self = clone $this;$self->securityPostValidation = $securityPostValidation;return $self;}public function getSecurityPostValidationMessage(): ?string{return $this->securityPostValidationMessage;}public function withSecurityPostValidationMessage(string $securityPostValidationMessage = null): self{$self = clone $this;$self->securityPostValidationMessage = $securityPostValidationMessage;return $self;}public function getExceptionToStatus(): ?array{return $this->exceptionToStatus;}public function withExceptionToStatus(array $exceptionToStatus): self{$self = clone $this;$self->exceptionToStatus = $exceptionToStatus;return $self;}public function getQueryParameterValidationEnabled(): ?bool{return $this->queryParameterValidationEnabled;}public function withQueryParameterValidationEnabled(bool $queryParameterValidationEnabled): self{$self = clone $this;$self->queryParameterValidationEnabled = $queryParameterValidationEnabled;return $self;}/*** @return GraphQlOperation[]*/public function getGraphQlOperations(): ?array{return $this->graphQlOperations;}public function withGraphQlOperations(array $graphQlOperations): self{$self = clone $this;$self->graphQlOperations = $graphQlOperations;return $self;}/*** @return string|callable|null*/public function getProcessor(){return $this->processor;}public function withProcessor($processor): self{$self = clone $this;$self->processor = $processor;return $self;}/*** @return string|callable|null*/public function getProvider(){return $this->provider;}public function withProvider($provider): self{$self = clone $this;$self->provider = $provider;return $self;}public function getExtraProperties(): array{return $this->extraProperties;}public function withExtraProperties(array $extraProperties): self{$self = clone $this;$self->extraProperties = $extraProperties;return $self;}public function getStateOptions(): ?OptionsInterface{return $this->stateOptions;}public function withStateOptions(?OptionsInterface $stateOptions): self{$self = clone $this;$self->stateOptions = $stateOptions;return $self;}}