vendor/api-platform/core/src/Metadata/HttpOperation.php line 78

  1. <?php
  2. /*
  3.  * This file is part of the API Platform project.
  4.  *
  5.  * (c) Kévin Dunglas <dunglas@gmail.com>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. declare(strict_types=1);
  11. namespace ApiPlatform\Metadata;
  12. use ApiPlatform\OpenApi\Model\Operation as OpenApiOperation;
  13. use ApiPlatform\State\OptionsInterface;
  14. class HttpOperation extends Operation
  15. {
  16.     public const METHOD_GET 'GET';
  17.     public const METHOD_POST 'POST';
  18.     public const METHOD_PUT 'PUT';
  19.     public const METHOD_PATCH 'PATCH';
  20.     public const METHOD_DELETE 'DELETE';
  21.     public const METHOD_HEAD 'HEAD';
  22.     public const METHOD_OPTIONS 'OPTIONS';
  23.     /**
  24.      * @param string[]|null                                  $types         the RDF types of this property
  25.      * @param array<int|string, string|string[]>|string|null $formats       {@see https://api-platform.com/docs/core/content-negotiation/#configuring-formats-for-a-specific-resource-or-operation}
  26.      * @param array<int|string, string|string[]>|string|null $inputFormats  {@see https://api-platform.com/docs/core/content-negotiation/#configuring-formats-for-a-specific-resource-or-operation}
  27.      * @param array<int|string, string|string[]>|string|null $outputFormats {@see https://api-platform.com/docs/core/content-negotiation/#configuring-formats-for-a-specific-resource-or-operation}
  28.      * @param array<string,array{
  29.      *     0: string,
  30.      *     1: string
  31.      * }|array{
  32.      *     from_property?: string,
  33.      *     to_property?: string,
  34.      *     from_class?: string,
  35.      *     to_class?: string,
  36.      *     identifiers?: string[],
  37.      *     composite_identifier?: bool,
  38.      *     expanded_value?: string,
  39.      * }|Link>|string[]|string|null $uriVariables {@see https://api-platform.com/docs/core/subresources/}
  40.      * @param string|null     $routePrefix {@see https://api-platform.com/docs/core/operations/#prefixing-all-routes-of-all-operations}
  41.      * @param string|null     $sunset      {@see https://api-platform.com/docs/core/deprecations/#setting-the-sunset-http-header-to-indicate-when-a-resource-or-an-operation-will-be-removed}
  42.      * @param string|int|null $status      {@see https://api-platform.com/docs/core/operations/#configuring-operations}
  43.      * @param array{
  44.      *     max_age?: int,
  45.      *     vary?: string|string[],
  46.      *     public?: bool,
  47.      *     shared_max_age?: int,
  48.      *     stale_while_revalidate?: int,
  49.      *     stale-if-error?: int,
  50.      * }|null $cacheHeaders {@see https://api-platform.com/docs/core/performance/#setting-custom-http-cache-headers}
  51.      * @param array{
  52.      *     field: string,
  53.      *     direction: string,
  54.      * }|null $paginationViaCursor {@see https://api-platform.com/docs/core/pagination/#cursor-based-pagination}
  55.      * @param array|null $normalizationContext   {@see https://api-platform.com/docs/core/serialization/#using-serialization-groups}
  56.      * @param array|null $denormalizationContext {@see https://api-platform.com/docs/core/serialization/#using-serialization-groups}
  57.      * @param array|null $hydraContext           {@see https://api-platform.com/docs/core/extending-jsonld-context/#hydra}
  58.      * @param array|null $openapiContext         {@see https://api-platform.com/docs/core/openapi/#using-the-openapi-and-swagger-contexts}
  59.      * @param array{
  60.      *     class?: string|null,
  61.      *     name?: string,
  62.      * }|string|false|null $input {@see https://api-platform.com/docs/core/dto/#specifying-an-input-or-an-output-data-representation}
  63.      * @param array{
  64.      *     class?: string|null,
  65.      *     name?: string,
  66.      * }|string|false|null $output {@see https://api-platform.com/docs/core/dto/#specifying-an-input-or-an-output-data-representation}
  67.      * @param string|array|bool|null $mercure   {@see https://api-platform.com/docs/core/mercure}
  68.      * @param string|bool|null       $messenger {@see https://api-platform.com/docs/core/messenger/#dispatching-a-resource-through-the-message-bus}
  69.      * @param string|callable|null   $provider  {@see https://api-platform.com/docs/core/state-providers/#state-providers}
  70.      * @param string|callable|null   $processor {@see https://api-platform.com/docs/core/state-processors/#state-processors}
  71.      */
  72.     public function __construct(
  73.         protected string $method self::METHOD_GET,
  74.         protected ?string $uriTemplate null,
  75.         protected ?array $types null,
  76.         protected $formats null,
  77.         protected $inputFormats null,
  78.         protected $outputFormats null,
  79.         protected $uriVariables null,
  80.         protected ?string $routePrefix null,
  81.         protected ?string $routeName null,
  82.         protected ?array $defaults null,
  83.         protected ?array $requirements null,
  84.         protected ?array $options null,
  85.         protected ?bool $stateless null,
  86.         protected ?string $sunset null,
  87.         protected ?string $acceptPatch null,
  88.         protected $status null,
  89.         protected ?string $host null,
  90.         protected ?array $schemes null,
  91.         protected ?string $condition null,
  92.         protected ?string $controller null,
  93.         protected ?array $cacheHeaders null,
  94.         protected ?array $paginationViaCursor null,
  95.         protected ?array $hydraContext null,
  96.         protected ?array $openapiContext null// TODO Remove in 4.0
  97.         protected bool|OpenApiOperation|null $openapi null,
  98.         protected ?array $exceptionToStatus null,
  99.         protected ?bool $queryParameterValidationEnabled null,
  100.         string $shortName null,
  101.         string $class null,
  102.         bool $paginationEnabled null,
  103.         string $paginationType null,
  104.         int $paginationItemsPerPage null,
  105.         int $paginationMaximumItemsPerPage null,
  106.         bool $paginationPartial null,
  107.         bool $paginationClientEnabled null,
  108.         bool $paginationClientItemsPerPage null,
  109.         bool $paginationClientPartial null,
  110.         bool $paginationFetchJoinCollection null,
  111.         bool $paginationUseOutputWalkers null,
  112.         array $order null,
  113.         string $description null,
  114.         array $normalizationContext null,
  115.         array $denormalizationContext null,
  116.         bool $collectDenormalizationErrors null,
  117.         string $security null,
  118.         string $securityMessage null,
  119.         string $securityPostDenormalize null,
  120.         string $securityPostDenormalizeMessage null,
  121.         string $securityPostValidation null,
  122.         string $securityPostValidationMessage null,
  123.         string $deprecationReason null,
  124.         array $filters null,
  125.         array $validationContext null,
  126.         $input null,
  127.         $output null,
  128.         $mercure null,
  129.         $messenger null,
  130.         bool $elasticsearch null,
  131.         int $urlGenerationStrategy null,
  132.         bool $read null,
  133.         bool $deserialize null,
  134.         bool $validate null,
  135.         bool $write null,
  136.         bool $serialize null,
  137.         bool $fetchPartial null,
  138.         bool $forceEager null,
  139.         int $priority null,
  140.         string $name null,
  141.         $provider null,
  142.         $processor null,
  143.         OptionsInterface $stateOptions null,
  144.         array $extraProperties = [],
  145.     ) {
  146.         parent::__construct(
  147.             shortName$shortName,
  148.             class: $class,
  149.             paginationEnabled$paginationEnabled,
  150.             paginationType$paginationType,
  151.             paginationItemsPerPage$paginationItemsPerPage,
  152.             paginationMaximumItemsPerPage$paginationMaximumItemsPerPage,
  153.             paginationPartial$paginationPartial,
  154.             paginationClientEnabled$paginationClientEnabled,
  155.             paginationClientItemsPerPage$paginationClientItemsPerPage,
  156.             paginationClientPartial$paginationClientPartial,
  157.             paginationFetchJoinCollection$paginationFetchJoinCollection,
  158.             paginationUseOutputWalkers$paginationUseOutputWalkers,
  159.             order$order,
  160.             description$description,
  161.             normalizationContext$normalizationContext,
  162.             denormalizationContext$denormalizationContext,
  163.             collectDenormalizationErrors$collectDenormalizationErrors,
  164.             security$security,
  165.             securityMessage$securityMessage,
  166.             securityPostDenormalize$securityPostDenormalize,
  167.             securityPostDenormalizeMessage$securityPostDenormalizeMessage,
  168.             securityPostValidation$securityPostValidation,
  169.             securityPostValidationMessage$securityPostValidationMessage,
  170.             deprecationReason$deprecationReason,
  171.             filters$filters,
  172.             validationContext$validationContext,
  173.             input$input,
  174.             output$output,
  175.             mercure$mercure,
  176.             messenger$messenger,
  177.             elasticsearch$elasticsearch,
  178.             urlGenerationStrategy$urlGenerationStrategy,
  179.             read$read,
  180.             deserialize$deserialize,
  181.             validate$validate,
  182.             write$write,
  183.             serialize$serialize,
  184.             fetchPartial$fetchPartial,
  185.             forceEager$forceEager,
  186.             priority$priority,
  187.             name$name,
  188.             provider$provider,
  189.             processor$processor,
  190.             stateOptions$stateOptions,
  191.             extraProperties$extraProperties
  192.         );
  193.     }
  194.     public function getMethod(): string
  195.     {
  196.         return $this->method;
  197.     }
  198.     public function withMethod(string $method): self
  199.     {
  200.         $self = clone $this;
  201.         $self->method $method;
  202.         return $self;
  203.     }
  204.     public function getUriTemplate(): ?string
  205.     {
  206.         return $this->uriTemplate;
  207.     }
  208.     public function withUriTemplate(string $uriTemplate null)
  209.     {
  210.         $self = clone $this;
  211.         $self->uriTemplate $uriTemplate;
  212.         return $self;
  213.     }
  214.     public function getTypes(): ?array
  215.     {
  216.         return $this->types;
  217.     }
  218.     /**
  219.      * @param string[]|string $types
  220.      */
  221.     public function withTypes($types): self
  222.     {
  223.         $self = clone $this;
  224.         $self->types = (array) $types;
  225.         return $self;
  226.     }
  227.     public function getFormats()
  228.     {
  229.         return $this->formats;
  230.     }
  231.     public function withFormats($formats null): self
  232.     {
  233.         $self = clone $this;
  234.         $self->formats $formats;
  235.         return $self;
  236.     }
  237.     public function getInputFormats()
  238.     {
  239.         return $this->inputFormats;
  240.     }
  241.     public function withInputFormats($inputFormats null): self
  242.     {
  243.         $self = clone $this;
  244.         $self->inputFormats $inputFormats;
  245.         return $self;
  246.     }
  247.     public function getOutputFormats()
  248.     {
  249.         return $this->outputFormats;
  250.     }
  251.     public function withOutputFormats($outputFormats null): self
  252.     {
  253.         $self = clone $this;
  254.         $self->outputFormats $outputFormats;
  255.         return $self;
  256.     }
  257.     public function getUriVariables()
  258.     {
  259.         return $this->uriVariables;
  260.     }
  261.     public function withUriVariables($uriVariables): self
  262.     {
  263.         $self = clone $this;
  264.         $self->uriVariables $uriVariables;
  265.         return $self;
  266.     }
  267.     public function getRoutePrefix(): ?string
  268.     {
  269.         return $this->routePrefix;
  270.     }
  271.     public function withRoutePrefix(string $routePrefix): self
  272.     {
  273.         $self = clone $this;
  274.         $self->routePrefix $routePrefix;
  275.         return $self;
  276.     }
  277.     public function getRouteName(): ?string
  278.     {
  279.         return $this->routeName;
  280.     }
  281.     public function withRouteName(?string $routeName): self
  282.     {
  283.         $self = clone $this;
  284.         $self->routeName $routeName;
  285.         return $self;
  286.     }
  287.     public function getDefaults(): ?array
  288.     {
  289.         return $this->defaults;
  290.     }
  291.     public function withDefaults(array $defaults): self
  292.     {
  293.         $self = clone $this;
  294.         $self->defaults $defaults;
  295.         return $self;
  296.     }
  297.     public function getRequirements(): ?array
  298.     {
  299.         return $this->requirements;
  300.     }
  301.     public function withRequirements(array $requirements): self
  302.     {
  303.         $self = clone $this;
  304.         $self->requirements $requirements;
  305.         return $self;
  306.     }
  307.     public function getOptions(): ?array
  308.     {
  309.         return $this->options;
  310.     }
  311.     public function withOptions(array $options): self
  312.     {
  313.         $self = clone $this;
  314.         $self->options $options;
  315.         return $self;
  316.     }
  317.     public function getStateless(): ?bool
  318.     {
  319.         return $this->stateless;
  320.     }
  321.     public function withStateless($stateless): self
  322.     {
  323.         $self = clone $this;
  324.         $self->stateless $stateless;
  325.         return $self;
  326.     }
  327.     public function getSunset(): ?string
  328.     {
  329.         return $this->sunset;
  330.     }
  331.     public function withSunset(string $sunset): self
  332.     {
  333.         $self = clone $this;
  334.         $self->sunset $sunset;
  335.         return $self;
  336.     }
  337.     public function getAcceptPatch(): ?string
  338.     {
  339.         return $this->acceptPatch;
  340.     }
  341.     public function withAcceptPatch(string $acceptPatch): self
  342.     {
  343.         $self = clone $this;
  344.         $self->acceptPatch $acceptPatch;
  345.         return $self;
  346.     }
  347.     public function getStatus(): ?int
  348.     {
  349.         return $this->status;
  350.     }
  351.     public function withStatus(int $status): self
  352.     {
  353.         $self = clone $this;
  354.         $self->status $status;
  355.         return $self;
  356.     }
  357.     public function getHost(): ?string
  358.     {
  359.         return $this->host;
  360.     }
  361.     public function withHost(string $host): self
  362.     {
  363.         $self = clone $this;
  364.         $self->host $host;
  365.         return $self;
  366.     }
  367.     public function getSchemes(): ?array
  368.     {
  369.         return $this->schemes;
  370.     }
  371.     public function withSchemes(array $schemes): self
  372.     {
  373.         $self = clone $this;
  374.         $self->schemes $schemes;
  375.         return $self;
  376.     }
  377.     public function getCondition(): ?string
  378.     {
  379.         return $this->condition;
  380.     }
  381.     public function withCondition(string $condition): self
  382.     {
  383.         $self = clone $this;
  384.         $self->condition $condition;
  385.         return $self;
  386.     }
  387.     public function getController(): ?string
  388.     {
  389.         return $this->controller;
  390.     }
  391.     public function withController(string $controller): self
  392.     {
  393.         $self = clone $this;
  394.         $self->controller $controller;
  395.         return $self;
  396.     }
  397.     public function getCacheHeaders(): ?array
  398.     {
  399.         return $this->cacheHeaders;
  400.     }
  401.     public function withCacheHeaders(array $cacheHeaders): self
  402.     {
  403.         $self = clone $this;
  404.         $self->cacheHeaders $cacheHeaders;
  405.         return $self;
  406.     }
  407.     public function getPaginationViaCursor(): ?array
  408.     {
  409.         return $this->paginationViaCursor;
  410.     }
  411.     public function withPaginationViaCursor(array $paginationViaCursor): self
  412.     {
  413.         $self = clone $this;
  414.         $self->paginationViaCursor $paginationViaCursor;
  415.         return $self;
  416.     }
  417.     public function getHydraContext(): ?array
  418.     {
  419.         return $this->hydraContext;
  420.     }
  421.     public function withHydraContext(array $hydraContext): self
  422.     {
  423.         $self = clone $this;
  424.         $self->hydraContext $hydraContext;
  425.         return $self;
  426.     }
  427.     public function getOpenapiContext(): ?array
  428.     {
  429.         return $this->openapiContext;
  430.     }
  431.     public function withOpenapiContext(array $openapiContext): self
  432.     {
  433.         $self = clone $this;
  434.         $self->openapiContext $openapiContext;
  435.         return $self;
  436.     }
  437.     public function getOpenapi(): bool|OpenApiOperation|null
  438.     {
  439.         return $this->openapi;
  440.     }
  441.     public function withOpenapi(bool|OpenApiOperation $openapi): self
  442.     {
  443.         $self = clone $this;
  444.         $self->openapi $openapi;
  445.         return $self;
  446.     }
  447.     public function getExceptionToStatus(): ?array
  448.     {
  449.         return $this->exceptionToStatus;
  450.     }
  451.     public function withExceptionToStatus(array $exceptionToStatus): self
  452.     {
  453.         $self = clone $this;
  454.         $self->exceptionToStatus $exceptionToStatus;
  455.         return $self;
  456.     }
  457.     public function getQueryParameterValidationEnabled(): ?bool
  458.     {
  459.         return $this->queryParameterValidationEnabled;
  460.     }
  461.     public function withQueryParameterValidationEnabled(bool $queryParameterValidationEnabled): self
  462.     {
  463.         $self = clone $this;
  464.         $self->queryParameterValidationEnabled $queryParameterValidationEnabled;
  465.         return $self;
  466.     }
  467. }