* * 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; class HttpOperation extends Operation { public const METHOD_GET = 'GET'; public const METHOD_POST = 'POST'; public const METHOD_PUT = 'PUT'; public const METHOD_PATCH = 'PATCH'; public const METHOD_DELETE = 'DELETE'; public const METHOD_HEAD = 'HEAD'; public const METHOD_OPTIONS = 'OPTIONS'; protected $method; protected $uriTemplate; protected $types; /** * @var array|mixed|string|null */ protected $formats; /** * @var array|mixed|string|null */ protected $inputFormats; /** * @var array|mixed|string|null */ protected $outputFormats; /** * @var array|array|string[]|string|null */ protected $uriVariables; protected $routePrefix; protected $routeName; protected $defaults; protected $requirements; protected $options; protected $stateless; protected $sunset; protected $acceptPatch; protected $cacheHeaders; /** * @var string|int|null */ protected $status; protected $host; protected $schemes; protected $condition; protected $controller; /** * @var string[] */ protected $hydraContext; protected $openapiContext; protected $openapi; protected $exceptionToStatus; protected $queryParameterValidationEnabled; /** * @param array|null $types the RDF types of this property * @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 mixed|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|int|null $status * @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 string[]|null $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 bool|null $read https://api-platform.com/docs/core/events/#the-event-system * @param bool|null $deserialize https://api-platform.com/docs/core/events/#the-event-system * @param bool|null $validate https://api-platform.com/docs/core/events/#the-event-system * @param bool|null $write https://api-platform.com/docs/core/events/#the-event-system * @param bool|null $serialize https://api-platform.com/docs/core/events/#the-event-system * @param mixed|null $provider * @param mixed|null $processor */ public function __construct( string $method = self::METHOD_GET, ?string $uriTemplate = null, ?array $types = null, $formats = null, $inputFormats = null, $outputFormats = null, $uriVariables = null, ?string $routePrefix = null, ?string $routeName = null, ?array $defaults = null, ?array $requirements = null, ?array $options = null, ?bool $stateless = null, ?string $sunset = null, ?string $acceptPatch = null, $status = null, ?string $host = null, ?array $schemes = null, ?string $condition = null, ?string $controller = null, ?array $cacheHeaders = null, ?array $hydraContext = null, ?array $openapiContext = null, ?bool $openapi = null, ?array $exceptionToStatus = null, ?bool $queryParameterValidationEnabled = null, // abstract operation arguments ?string $shortName = null, ?string $class = null, ?bool $paginationEnabled = null, ?string $paginationType = null, ?int $paginationItemsPerPage = null, ?int $paginationMaximumItemsPerPage = null, ?bool $paginationPartial = null, ?bool $paginationClientEnabled = null, ?bool $paginationClientItemsPerPage = null, ?bool $paginationClientPartial = null, ?bool $paginationFetchJoinCollection = null, ?bool $paginationUseOutputWalkers = null, ?array $paginationViaCursor = null, ?array $order = null, ?string $description = null, ?array $normalizationContext = null, ?array $denormalizationContext = null, ?string $security = null, ?string $securityMessage = null, ?string $securityPostDenormalize = null, ?string $securityPostDenormalizeMessage = null, ?string $securityPostValidation = null, ?string $securityPostValidationMessage = null, ?string $deprecationReason = null, ?array $filters = null, ?array $validationContext = null, $input = null, $output = null, $mercure = null, $messenger = null, ?bool $elasticsearch = null, ?int $urlGenerationStrategy = null, ?bool $read = null, ?bool $deserialize = null, ?bool $validate = null, ?bool $write = null, ?bool $serialize = null, ?bool $fetchPartial = null, ?bool $forceEager = null, ?int $priority = null, ?string $name = null, $provider = null, $processor = null, array $extraProperties = [] ) { $this->method = $method; $this->uriTemplate = $uriTemplate; $this->shortName = $shortName; $this->description = $description; $this->types = $types; $this->formats = $formats; $this->inputFormats = $inputFormats; $this->outputFormats = $outputFormats; $this->uriVariables = $uriVariables; $this->routePrefix = $routePrefix; $this->routeName = $routeName; $this->defaults = $defaults; $this->requirements = $requirements; $this->options = $options; $this->stateless = $stateless; $this->sunset = $sunset; $this->acceptPatch = $acceptPatch; $this->status = $status; $this->host = $host; $this->schemes = $schemes; $this->condition = $condition; $this->controller = $controller; $this->class = $class; $this->urlGenerationStrategy = $urlGenerationStrategy; $this->deprecationReason = $deprecationReason; $this->cacheHeaders = $cacheHeaders; $this->normalizationContext = $normalizationContext; $this->denormalizationContext = $denormalizationContext; $this->hydraContext = $hydraContext; $this->openapiContext = $openapiContext; $this->openapi = $openapi; $this->validationContext = $validationContext; $this->filters = $filters; $this->elasticsearch = $elasticsearch; $this->mercure = $mercure; $this->messenger = $messenger; $this->input = $input; $this->output = $output; $this->order = $order; $this->fetchPartial = $fetchPartial; $this->forceEager = $forceEager; $this->paginationClientEnabled = $paginationClientEnabled; $this->paginationClientItemsPerPage = $paginationClientItemsPerPage; $this->paginationClientPartial = $paginationClientPartial; $this->paginationViaCursor = $paginationViaCursor; $this->paginationEnabled = $paginationEnabled; $this->paginationFetchJoinCollection = $paginationFetchJoinCollection; $this->paginationUseOutputWalkers = $paginationUseOutputWalkers; $this->paginationItemsPerPage = $paginationItemsPerPage; $this->paginationMaximumItemsPerPage = $paginationMaximumItemsPerPage; $this->paginationPartial = $paginationPartial; $this->paginationType = $paginationType; $this->security = $security; $this->securityMessage = $securityMessage; $this->securityPostDenormalize = $securityPostDenormalize; $this->securityPostDenormalizeMessage = $securityPostDenormalizeMessage; $this->securityPostValidation = $securityPostValidation; $this->securityPostValidationMessage = $securityPostValidationMessage; $this->exceptionToStatus = $exceptionToStatus; $this->queryParameterValidationEnabled = $queryParameterValidationEnabled; $this->read = $read; $this->deserialize = $deserialize; $this->validate = $validate; $this->write = $write; $this->serialize = $serialize; $this->priority = $priority; $this->name = $name; $this->provider = $provider; $this->processor = $processor; $this->extraProperties = $extraProperties; } public function getMethod(): ?string { return $this->method; } public function withMethod(string $method): self { $self = clone $this; $self->method = $method; return $self; } public function getUriTemplate(): ?string { return $this->uriTemplate; } public function withUriTemplate(?string $uriTemplate = null) { $self = clone $this; $self->uriTemplate = $uriTemplate; return $self; } public function getTypes(): ?array { return $this->types; } /** * @param string[]|string $types */ public function withTypes($types): self { $self = clone $this; $self->types = (array) $types; return $self; } /** * @return array|mixed|string|null */ public function getFormats() { return $this->formats; } public function withFormats($formats = null): self { $self = clone $this; $self->formats = $formats; return $self; } /** * @return array|mixed|string|null */ public function getInputFormats() { return $this->inputFormats; } public function withInputFormats($inputFormats = null): self { $self = clone $this; $self->inputFormats = $inputFormats; return $self; } /** * @return array|mixed|string|null */ public function getOutputFormats() { return $this->outputFormats; } public function withOutputFormats($outputFormats = null): self { $self = clone $this; $self->outputFormats = $outputFormats; return $self; } /** * @return array|array|string[]|string|null */ public function getUriVariables() { return $this->uriVariables; } /** * @param array|array|string[]|string $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 getRouteName(): ?string { return $this->routeName; } public function withRouteName(?string $routeName): self { $self = clone $this; $self->routeName = $routeName; 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($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(int $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 getCacheHeaders(): ?array { return $this->cacheHeaders; } public function withCacheHeaders(array $cacheHeaders): self { $self = clone $this; $self->cacheHeaders = $cacheHeaders; return $self; } /** * @return string[] */ public function getHydraContext(): ?array { return $this->hydraContext; } public function withHydraContext(array $hydraContext): self { $self = clone $this; $self->hydraContext = $hydraContext; return $self; } public function getOpenapiContext(): ?array { return $this->openapiContext; } public function withOpenapiContext(array $openapiContext): self { $self = clone $this; $self->openapiContext = $openapiContext; return $self; } public function getOpenapi(): ?bool { return $this->openapi; } public function withOpenapi(bool $openapi): self { $self = clone $this; $self->openapi = $openapi; 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; } }