vendor/api-platform/core/src/Metadata/ApiResource.php line 948

  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\Metadata\GraphQl\Operation as GraphQlOperation;
  13. use ApiPlatform\OpenApi\Model\Operation as OpenApiOperation;
  14. use ApiPlatform\State\OptionsInterface;
  15. /**
  16.  * Resource metadata attribute.
  17.  *
  18.  * @Annotation
  19.  *
  20.  * @author Antoine Bluchet <soyuka@gmail.com>
  21.  */
  22. #[\Attribute(\Attribute::TARGET_CLASS \Attribute::IS_REPEATABLE)]
  23. class ApiResource
  24. {
  25.     use WithResourceTrait;
  26.     protected ?Operations $operations;
  27.     /**
  28.      * @var string|callable|null
  29.      */
  30.     protected $provider;
  31.     /**
  32.      * @var string|callable|null
  33.      */
  34.     protected $processor;
  35.     /**
  36.      * @param array|string|null                                               $types                          The RDF types of this resource
  37.      * @param mixed|null                                                      $operations
  38.      * @param array|string|null                                               $formats                        https://api-platform.com/docs/core/content-negotiation/#configuring-formats-for-a-specific-resource-or-operation
  39.      * @param array|string|null                                               $inputFormats                   https://api-platform.com/docs/core/content-negotiation/#configuring-formats-for-a-specific-resource-or-operation
  40.      * @param array|string|null                                               $outputFormats                  https://api-platform.com/docs/core/content-negotiation/#configuring-formats-for-a-specific-resource-or-operation
  41.      * @param array<string, Link>|array<string, mixed[]>|string[]|string|null $uriVariables
  42.      * @param string|null                                                     $routePrefix                    https://api-platform.com/docs/core/operations/#prefixing-all-routes-of-all-operations
  43.      * @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
  44.      * @param string|null                                                     $deprecationReason              https://api-platform.com/docs/core/deprecations/#deprecating-resource-classes-operations-and-properties
  45.      * @param array|null                                                      $cacheHeaders                   https://api-platform.com/docs/core/performance/#setting-custom-http-cache-headers
  46.      * @param array|null                                                      $normalizationContext           https://api-platform.com/docs/core/serialization/#using-serialization-groups
  47.      * @param array|null                                                      $denormalizationContext         https://api-platform.com/docs/core/serialization/#using-serialization-groups
  48.      * @param string[]|null                                                   $hydraContext                   https://api-platform.com/docs/core/extending-jsonld-context/#hydra
  49.      * @param array|null                                                      $openapiContext                 https://api-platform.com/docs/core/openapi/#using-the-openapi-and-swagger-contexts
  50.      * @param bool|OpenApiOperation|null                                      $openapi                        https://api-platform.com/docs/core/openapi/#using-the-openapi-and-swagger-contexts
  51.      * @param array|null                                                      $validationContext              https://api-platform.com/docs/core/validation/#using-validation-groups
  52.      * @param string[]                                                        $filters                        https://api-platform.com/docs/core/filters/#doctrine-orm-and-mongodb-odm-filters
  53.      * @param bool|null                                                       $elasticsearch                  https://api-platform.com/docs/core/elasticsearch/
  54.      * @param mixed|null                                                      $mercure                        https://api-platform.com/docs/core/mercure
  55.      * @param mixed|null                                                      $messenger                      https://api-platform.com/docs/core/messenger/#dispatching-a-resource-through-the-message-bus
  56.      * @param mixed|null                                                      $input                          https://api-platform.com/docs/core/dto/#specifying-an-input-or-an-output-data-representation
  57.      * @param mixed|null                                                      $output                         https://api-platform.com/docs/core/dto/#specifying-an-input-or-an-output-data-representation
  58.      * @param array|null                                                      $order                          https://api-platform.com/docs/core/default-order/#overriding-default-order
  59.      * @param bool|null                                                       $fetchPartial                   https://api-platform.com/docs/core/performance/#fetch-partial
  60.      * @param bool|null                                                       $forceEager                     https://api-platform.com/docs/core/performance/#force-eager
  61.      * @param bool|null                                                       $paginationClientEnabled        https://api-platform.com/docs/core/pagination/#for-a-specific-resource-1
  62.      * @param bool|null                                                       $paginationClientItemsPerPage   https://api-platform.com/docs/core/pagination/#for-a-specific-resource-3
  63.      * @param bool|null                                                       $paginationClientPartial        https://api-platform.com/docs/core/pagination/#for-a-specific-resource-6
  64.      * @param array|null                                                      $paginationViaCursor            https://api-platform.com/docs/core/pagination/#cursor-based-pagination
  65.      * @param bool|null                                                       $paginationEnabled              https://api-platform.com/docs/core/pagination/#for-a-specific-resource
  66.      * @param bool|null                                                       $paginationFetchJoinCollection  https://api-platform.com/docs/core/pagination/#controlling-the-behavior-of-the-doctrine-orm-paginator
  67.      * @param int|null                                                        $paginationItemsPerPage         https://api-platform.com/docs/core/pagination/#changing-the-number-of-items-per-page
  68.      * @param int|null                                                        $paginationMaximumItemsPerPage  https://api-platform.com/docs/core/pagination/#changing-maximum-items-per-page
  69.      * @param bool|null                                                       $paginationPartial              https://api-platform.com/docs/core/performance/#partial-pagination
  70.      * @param string|null                                                     $paginationType                 https://api-platform.com/docs/core/graphql/#using-the-page-based-pagination
  71.      * @param string|null                                                     $security                       https://api-platform.com/docs/core/security
  72.      * @param string|null                                                     $securityMessage                https://api-platform.com/docs/core/security/#configuring-the-access-control-error-message
  73.      * @param string|null                                                     $securityPostDenormalize        https://api-platform.com/docs/core/security/#executing-access-control-rules-after-denormalization
  74.      * @param string|null                                                     $securityPostDenormalizeMessage https://api-platform.com/docs/core/security/#configuring-the-access-control-error-message
  75.      * @param string                                                          $securityPostValidation         https://api-platform.com/docs/core/security/#executing-access-control-rules-after-validtion
  76.      * @param string                                                          $securityPostValidationMessage  https://api-platform.com/docs/core/security/#configuring-the-access-control-error-message
  77.      * @param mixed|null                                                      $provider
  78.      * @param mixed|null                                                      $processor
  79.      */
  80.     public function __construct(
  81.         protected ?string $uriTemplate null,
  82.         protected ?string $shortName null,
  83.         protected ?string $description null,
  84.         protected string|array|null $types null,
  85.         $operations null,
  86.         protected $formats null,
  87.         protected $inputFormats null,
  88.         protected $outputFormats null,
  89.         protected $uriVariables null,
  90.         protected ?string $routePrefix null,
  91.         protected ?array $defaults null,
  92.         protected ?array $requirements null,
  93.         protected ?array $options null,
  94.         protected ?bool $stateless null,
  95.         protected ?string $sunset null,
  96.         protected ?string $acceptPatch null,
  97.         protected ?int $status null,
  98.         protected ?string $host null,
  99.         protected ?array $schemes null,
  100.         protected ?string $condition null,
  101.         protected ?string $controller null,
  102.         protected ?string $class null,
  103.         protected ?int $urlGenerationStrategy null,
  104.         protected ?string $deprecationReason null,
  105.         protected ?array $cacheHeaders null,
  106.         protected ?array $normalizationContext null,
  107.         protected ?array $denormalizationContext null,
  108.         protected ?bool $collectDenormalizationErrors null,
  109.         protected ?array $hydraContext null,
  110.         protected ?array $openapiContext null// TODO Remove in 4.0
  111.         protected bool|OpenApiOperation|null $openapi null,
  112.         protected ?array $validationContext null,
  113.         protected ?array $filters null,
  114.         protected ?bool $elasticsearch null,
  115.         protected $mercure null,
  116.         protected $messenger null,
  117.         protected $input null,
  118.         protected $output null,
  119.         protected ?array $order null,
  120.         protected ?bool $fetchPartial null,
  121.         protected ?bool $forceEager null,
  122.         protected ?bool $paginationClientEnabled null,
  123.         protected ?bool $paginationClientItemsPerPage null,
  124.         protected ?bool $paginationClientPartial null,
  125.         protected ?array $paginationViaCursor null,
  126.         protected ?bool $paginationEnabled null,
  127.         protected ?bool $paginationFetchJoinCollection null,
  128.         protected ?bool $paginationUseOutputWalkers null,
  129.         protected ?int $paginationItemsPerPage null,
  130.         protected ?int $paginationMaximumItemsPerPage null,
  131.         protected ?bool $paginationPartial null,
  132.         protected ?string $paginationType null,
  133.         protected ?string $security null,
  134.         protected ?string $securityMessage null,
  135.         protected ?string $securityPostDenormalize null,
  136.         protected ?string $securityPostDenormalizeMessage null,
  137.         protected ?string $securityPostValidation null,
  138.         protected ?string $securityPostValidationMessage null,
  139.         protected ?bool $compositeIdentifier null,
  140.         protected ?array $exceptionToStatus null,
  141.         protected ?bool $queryParameterValidationEnabled null,
  142.         protected ?array $graphQlOperations null,
  143.         $provider null,
  144.         $processor null,
  145.         protected ?OptionsInterface $stateOptions null,
  146.         protected array $extraProperties = [],
  147.     ) {
  148.         $this->operations null === $operations null : new Operations($operations);
  149.         $this->provider $provider;
  150.         $this->processor $processor;
  151.         if (\is_string($types)) {
  152.             $this->types = (array) $types;
  153.         }
  154.     }
  155.     public function getOperations(): ?Operations
  156.     {
  157.         return $this->operations;
  158.     }
  159.     public function withOperations(Operations $operations): self
  160.     {
  161.         $self = clone $this;
  162.         $self->operations $operations;
  163.         return $self;
  164.     }
  165.     public function getUriTemplate(): ?string
  166.     {
  167.         return $this->uriTemplate;
  168.     }
  169.     public function withUriTemplate(string $uriTemplate): self
  170.     {
  171.         $self = clone $this;
  172.         $self->uriTemplate $uriTemplate;
  173.         return $self;
  174.     }
  175.     public function getShortName(): ?string
  176.     {
  177.         return $this->shortName;
  178.     }
  179.     public function withShortName(string $shortName): self
  180.     {
  181.         $self = clone $this;
  182.         $self->shortName $shortName;
  183.         return $self;
  184.     }
  185.     public function getDescription(): ?string
  186.     {
  187.         return $this->description;
  188.     }
  189.     public function withDescription(string $description): self
  190.     {
  191.         $self = clone $this;
  192.         $self->description $description;
  193.         return $self;
  194.     }
  195.     public function getTypes(): ?array
  196.     {
  197.         return $this->types;
  198.     }
  199.     /**
  200.      * @param string[]|string $types
  201.      */
  202.     public function withTypes(array|string $types): self
  203.     {
  204.         $self = clone $this;
  205.         $self->types = (array) $types;
  206.         return $self;
  207.     }
  208.     /**
  209.      * @return array|mixed|string|null
  210.      */
  211.     public function getFormats()
  212.     {
  213.         return $this->formats;
  214.     }
  215.     /**
  216.      * @param mixed|null $formats
  217.      */
  218.     public function withFormats($formats): self
  219.     {
  220.         $self = clone $this;
  221.         $self->formats $formats;
  222.         return $self;
  223.     }
  224.     /**
  225.      * @return array|mixed|string|null
  226.      */
  227.     public function getInputFormats()
  228.     {
  229.         return $this->inputFormats;
  230.     }
  231.     /**
  232.      * @param mixed|null $inputFormats
  233.      */
  234.     public function withInputFormats($inputFormats): self
  235.     {
  236.         $self = clone $this;
  237.         $self->inputFormats $inputFormats;
  238.         return $self;
  239.     }
  240.     /**
  241.      * @return array|mixed|string|null
  242.      */
  243.     public function getOutputFormats()
  244.     {
  245.         return $this->outputFormats;
  246.     }
  247.     /**
  248.      * @param mixed|null $outputFormats
  249.      */
  250.     public function withOutputFormats($outputFormats): self
  251.     {
  252.         $self = clone $this;
  253.         $self->outputFormats $outputFormats;
  254.         return $self;
  255.     }
  256.     /**
  257.      * @return array<string, Link>|array<string, array>|string[]|string|null
  258.      */
  259.     public function getUriVariables()
  260.     {
  261.         return $this->uriVariables;
  262.     }
  263.     /**
  264.      * @param array<string, Link>|array<string, array>|string[]|string|null $uriVariables
  265.      */
  266.     public function withUriVariables($uriVariables): self
  267.     {
  268.         $self = clone $this;
  269.         $self->uriVariables $uriVariables;
  270.         return $self;
  271.     }
  272.     public function getRoutePrefix(): ?string
  273.     {
  274.         return $this->routePrefix;
  275.     }
  276.     public function withRoutePrefix(string $routePrefix): self
  277.     {
  278.         $self = clone $this;
  279.         $self->routePrefix $routePrefix;
  280.         return $self;
  281.     }
  282.     public function getDefaults(): ?array
  283.     {
  284.         return $this->defaults;
  285.     }
  286.     public function withDefaults(array $defaults): self
  287.     {
  288.         $self = clone $this;
  289.         $self->defaults $defaults;
  290.         return $self;
  291.     }
  292.     public function getRequirements(): ?array
  293.     {
  294.         return $this->requirements;
  295.     }
  296.     public function withRequirements(array $requirements): self
  297.     {
  298.         $self = clone $this;
  299.         $self->requirements $requirements;
  300.         return $self;
  301.     }
  302.     public function getOptions(): ?array
  303.     {
  304.         return $this->options;
  305.     }
  306.     public function withOptions(array $options): self
  307.     {
  308.         $self = clone $this;
  309.         $self->options $options;
  310.         return $self;
  311.     }
  312.     public function getStateless(): ?bool
  313.     {
  314.         return $this->stateless;
  315.     }
  316.     public function withStateless(bool $stateless): self
  317.     {
  318.         $self = clone $this;
  319.         $self->stateless $stateless;
  320.         return $self;
  321.     }
  322.     public function getSunset(): ?string
  323.     {
  324.         return $this->sunset;
  325.     }
  326.     public function withSunset(string $sunset): self
  327.     {
  328.         $self = clone $this;
  329.         $self->sunset $sunset;
  330.         return $self;
  331.     }
  332.     public function getAcceptPatch(): ?string
  333.     {
  334.         return $this->acceptPatch;
  335.     }
  336.     public function withAcceptPatch(string $acceptPatch): self
  337.     {
  338.         $self = clone $this;
  339.         $self->acceptPatch $acceptPatch;
  340.         return $self;
  341.     }
  342.     public function getStatus(): ?int
  343.     {
  344.         return $this->status;
  345.     }
  346.     public function withStatus($status): self
  347.     {
  348.         $self = clone $this;
  349.         $self->status $status;
  350.         return $self;
  351.     }
  352.     public function getHost(): ?string
  353.     {
  354.         return $this->host;
  355.     }
  356.     public function withHost(string $host): self
  357.     {
  358.         $self = clone $this;
  359.         $self->host $host;
  360.         return $self;
  361.     }
  362.     public function getSchemes(): ?array
  363.     {
  364.         return $this->schemes;
  365.     }
  366.     public function withSchemes(array $schemes): self
  367.     {
  368.         $self = clone $this;
  369.         $self->schemes $schemes;
  370.         return $self;
  371.     }
  372.     public function getCondition(): ?string
  373.     {
  374.         return $this->condition;
  375.     }
  376.     public function withCondition(string $condition): self
  377.     {
  378.         $self = clone $this;
  379.         $self->condition $condition;
  380.         return $self;
  381.     }
  382.     public function getController(): ?string
  383.     {
  384.         return $this->controller;
  385.     }
  386.     public function withController(string $controller): self
  387.     {
  388.         $self = clone $this;
  389.         $self->controller $controller;
  390.         return $self;
  391.     }
  392.     public function getClass(): ?string
  393.     {
  394.         return $this->class;
  395.     }
  396.     public function withClass(string $class): self
  397.     {
  398.         $self = clone $this;
  399.         $self->class $class;
  400.         return $self;
  401.     }
  402.     public function getUrlGenerationStrategy(): ?int
  403.     {
  404.         return $this->urlGenerationStrategy;
  405.     }
  406.     public function withUrlGenerationStrategy(int $urlGenerationStrategy): self
  407.     {
  408.         $self = clone $this;
  409.         $self->urlGenerationStrategy $urlGenerationStrategy;
  410.         return $self;
  411.     }
  412.     public function getDeprecationReason(): ?string
  413.     {
  414.         return $this->deprecationReason;
  415.     }
  416.     public function withDeprecationReason(string $deprecationReason): self
  417.     {
  418.         $self = clone $this;
  419.         $self->deprecationReason $deprecationReason;
  420.         return $self;
  421.     }
  422.     public function getCacheHeaders(): ?array
  423.     {
  424.         return $this->cacheHeaders;
  425.     }
  426.     public function withCacheHeaders(array $cacheHeaders): self
  427.     {
  428.         $self = clone $this;
  429.         $self->cacheHeaders $cacheHeaders;
  430.         return $self;
  431.     }
  432.     public function getNormalizationContext(): ?array
  433.     {
  434.         return $this->normalizationContext;
  435.     }
  436.     public function withNormalizationContext(array $normalizationContext): self
  437.     {
  438.         $self = clone $this;
  439.         $self->normalizationContext $normalizationContext;
  440.         return $self;
  441.     }
  442.     public function getDenormalizationContext(): ?array
  443.     {
  444.         return $this->denormalizationContext;
  445.     }
  446.     public function withDenormalizationContext(array $denormalizationContext): self
  447.     {
  448.         $self = clone $this;
  449.         $self->denormalizationContext $denormalizationContext;
  450.         return $self;
  451.     }
  452.     public function getCollectDenormalizationErrors(): ?bool
  453.     {
  454.         return $this->collectDenormalizationErrors;
  455.     }
  456.     public function withCollectDenormalizationErrors(bool $collectDenormalizationErrors null): self
  457.     {
  458.         $self = clone $this;
  459.         $self->collectDenormalizationErrors $collectDenormalizationErrors;
  460.         return $self;
  461.     }
  462.     /**
  463.      * @return string[]|null
  464.      */
  465.     public function getHydraContext(): ?array
  466.     {
  467.         return $this->hydraContext;
  468.     }
  469.     public function withHydraContext(array $hydraContext): self
  470.     {
  471.         $self = clone $this;
  472.         $self->hydraContext $hydraContext;
  473.         return $self;
  474.     }
  475.     /**
  476.      * TODO Remove in 4.0.
  477.      *
  478.      * @deprecated
  479.      */
  480.     public function getOpenapiContext(): ?array
  481.     {
  482.         return $this->openapiContext;
  483.     }
  484.     /**
  485.      * TODO Remove in 4.0.
  486.      *
  487.      * @deprecated
  488.      */
  489.     public function withOpenapiContext(array $openapiContext): self
  490.     {
  491.         $self = clone $this;
  492.         $self->openapiContext $openapiContext;
  493.         return $self;
  494.     }
  495.     public function getOpenapi(): bool|OpenApiOperation|null
  496.     {
  497.         return $this->openapi;
  498.     }
  499.     public function withOpenapi(bool|OpenApiOperation $openapi): self
  500.     {
  501.         $self = clone $this;
  502.         $self->openapi $openapi;
  503.         return $self;
  504.     }
  505.     public function getValidationContext(): ?array
  506.     {
  507.         return $this->validationContext;
  508.     }
  509.     public function withValidationContext(array $validationContext): self
  510.     {
  511.         $self = clone $this;
  512.         $self->validationContext $validationContext;
  513.         return $self;
  514.     }
  515.     /**
  516.      * @return string[]|null
  517.      */
  518.     public function getFilters(): ?array
  519.     {
  520.         return $this->filters;
  521.     }
  522.     public function withFilters(array $filters): self
  523.     {
  524.         $self = clone $this;
  525.         $self->filters $filters;
  526.         return $self;
  527.     }
  528.     /**
  529.      * @deprecated this will be removed in v4
  530.      */
  531.     public function getElasticsearch(): ?bool
  532.     {
  533.         return $this->elasticsearch;
  534.     }
  535.     /**
  536.      * @deprecated this will be removed in v4
  537.      */
  538.     public function withElasticsearch(bool $elasticsearch): self
  539.     {
  540.         $self = clone $this;
  541.         $self->elasticsearch $elasticsearch;
  542.         return $self;
  543.     }
  544.     /**
  545.      * @return array|bool|mixed|null
  546.      */
  547.     public function getMercure()
  548.     {
  549.         return $this->mercure;
  550.     }
  551.     public function withMercure($mercure): self
  552.     {
  553.         $self = clone $this;
  554.         $self->mercure $mercure;
  555.         return $self;
  556.     }
  557.     public function getMessenger()
  558.     {
  559.         return $this->messenger;
  560.     }
  561.     public function withMessenger($messenger): self
  562.     {
  563.         $self = clone $this;
  564.         $self->messenger $messenger;
  565.         return $self;
  566.     }
  567.     public function getInput()
  568.     {
  569.         return $this->input;
  570.     }
  571.     public function withInput($input): self
  572.     {
  573.         $self = clone $this;
  574.         $self->input $input;
  575.         return $self;
  576.     }
  577.     public function getOutput()
  578.     {
  579.         return $this->output;
  580.     }
  581.     public function withOutput($output): self
  582.     {
  583.         $self = clone $this;
  584.         $self->output $output;
  585.         return $self;
  586.     }
  587.     public function getOrder(): ?array
  588.     {
  589.         return $this->order;
  590.     }
  591.     public function withOrder(array $order): self
  592.     {
  593.         $self = clone $this;
  594.         $self->order $order;
  595.         return $self;
  596.     }
  597.     public function getFetchPartial(): ?bool
  598.     {
  599.         return $this->fetchPartial;
  600.     }
  601.     public function withFetchPartial(bool $fetchPartial): self
  602.     {
  603.         $self = clone $this;
  604.         $self->fetchPartial $fetchPartial;
  605.         return $self;
  606.     }
  607.     public function getForceEager(): ?bool
  608.     {
  609.         return $this->forceEager;
  610.     }
  611.     public function withForceEager(bool $forceEager): self
  612.     {
  613.         $self = clone $this;
  614.         $self->forceEager $forceEager;
  615.         return $self;
  616.     }
  617.     public function getPaginationClientEnabled(): ?bool
  618.     {
  619.         return $this->paginationClientEnabled;
  620.     }
  621.     public function withPaginationClientEnabled(bool $paginationClientEnabled): self
  622.     {
  623.         $self = clone $this;
  624.         $self->paginationClientEnabled $paginationClientEnabled;
  625.         return $self;
  626.     }
  627.     public function getPaginationClientItemsPerPage(): ?bool
  628.     {
  629.         return $this->paginationClientItemsPerPage;
  630.     }
  631.     public function withPaginationClientItemsPerPage(bool $paginationClientItemsPerPage): self
  632.     {
  633.         $self = clone $this;
  634.         $self->paginationClientItemsPerPage $paginationClientItemsPerPage;
  635.         return $self;
  636.     }
  637.     public function getPaginationClientPartial(): ?bool
  638.     {
  639.         return $this->paginationClientPartial;
  640.     }
  641.     public function withPaginationClientPartial(bool $paginationClientPartial): self
  642.     {
  643.         $self = clone $this;
  644.         $self->paginationClientPartial $paginationClientPartial;
  645.         return $self;
  646.     }
  647.     public function getPaginationViaCursor(): ?array
  648.     {
  649.         return $this->paginationViaCursor;
  650.     }
  651.     public function withPaginationViaCursor(array $paginationViaCursor): self
  652.     {
  653.         $self = clone $this;
  654.         $self->paginationViaCursor $paginationViaCursor;
  655.         return $self;
  656.     }
  657.     public function getPaginationEnabled(): ?bool
  658.     {
  659.         return $this->paginationEnabled;
  660.     }
  661.     public function withPaginationEnabled(bool $paginationEnabled): self
  662.     {
  663.         $self = clone $this;
  664.         $self->paginationEnabled $paginationEnabled;
  665.         return $self;
  666.     }
  667.     public function getPaginationFetchJoinCollection(): ?bool
  668.     {
  669.         return $this->paginationFetchJoinCollection;
  670.     }
  671.     public function withPaginationFetchJoinCollection(bool $paginationFetchJoinCollection): self
  672.     {
  673.         $self = clone $this;
  674.         $self->paginationFetchJoinCollection $paginationFetchJoinCollection;
  675.         return $self;
  676.     }
  677.     public function getPaginationUseOutputWalkers(): ?bool
  678.     {
  679.         return $this->paginationUseOutputWalkers;
  680.     }
  681.     public function withPaginationUseOutputWalkers(bool $paginationUseOutputWalkers): self
  682.     {
  683.         $self = clone $this;
  684.         $self->paginationUseOutputWalkers $paginationUseOutputWalkers;
  685.         return $self;
  686.     }
  687.     public function getPaginationItemsPerPage(): ?int
  688.     {
  689.         return $this->paginationItemsPerPage;
  690.     }
  691.     public function withPaginationItemsPerPage(int $paginationItemsPerPage): self
  692.     {
  693.         $self = clone $this;
  694.         $self->paginationItemsPerPage $paginationItemsPerPage;
  695.         return $self;
  696.     }
  697.     public function getPaginationMaximumItemsPerPage(): ?int
  698.     {
  699.         return $this->paginationMaximumItemsPerPage;
  700.     }
  701.     public function withPaginationMaximumItemsPerPage(int $paginationMaximumItemsPerPage): self
  702.     {
  703.         $self = clone $this;
  704.         $self->paginationMaximumItemsPerPage $paginationMaximumItemsPerPage;
  705.         return $self;
  706.     }
  707.     public function getPaginationPartial(): ?bool
  708.     {
  709.         return $this->paginationPartial;
  710.     }
  711.     public function withPaginationPartial(bool $paginationPartial): self
  712.     {
  713.         $self = clone $this;
  714.         $self->paginationPartial $paginationPartial;
  715.         return $self;
  716.     }
  717.     public function getPaginationType(): ?string
  718.     {
  719.         return $this->paginationType;
  720.     }
  721.     public function withPaginationType(string $paginationType): self
  722.     {
  723.         $self = clone $this;
  724.         $self->paginationType $paginationType;
  725.         return $self;
  726.     }
  727.     public function getSecurity(): ?string
  728.     {
  729.         return $this->security;
  730.     }
  731.     public function withSecurity(string $security): self
  732.     {
  733.         $self = clone $this;
  734.         $self->security $security;
  735.         return $self;
  736.     }
  737.     public function getSecurityMessage(): ?string
  738.     {
  739.         return $this->securityMessage;
  740.     }
  741.     public function withSecurityMessage(string $securityMessage): self
  742.     {
  743.         $self = clone $this;
  744.         $self->securityMessage $securityMessage;
  745.         return $self;
  746.     }
  747.     public function getSecurityPostDenormalize(): ?string
  748.     {
  749.         return $this->securityPostDenormalize;
  750.     }
  751.     public function withSecurityPostDenormalize(string $securityPostDenormalize): self
  752.     {
  753.         $self = clone $this;
  754.         $self->securityPostDenormalize $securityPostDenormalize;
  755.         return $self;
  756.     }
  757.     public function getSecurityPostDenormalizeMessage(): ?string
  758.     {
  759.         return $this->securityPostDenormalizeMessage;
  760.     }
  761.     public function withSecurityPostDenormalizeMessage(string $securityPostDenormalizeMessage): self
  762.     {
  763.         $self = clone $this;
  764.         $self->securityPostDenormalizeMessage $securityPostDenormalizeMessage;
  765.         return $self;
  766.     }
  767.     public function getSecurityPostValidation(): ?string
  768.     {
  769.         return $this->securityPostValidation;
  770.     }
  771.     public function withSecurityPostValidation(string $securityPostValidation null): self
  772.     {
  773.         $self = clone $this;
  774.         $self->securityPostValidation $securityPostValidation;
  775.         return $self;
  776.     }
  777.     public function getSecurityPostValidationMessage(): ?string
  778.     {
  779.         return $this->securityPostValidationMessage;
  780.     }
  781.     public function withSecurityPostValidationMessage(string $securityPostValidationMessage null): self
  782.     {
  783.         $self = clone $this;
  784.         $self->securityPostValidationMessage $securityPostValidationMessage;
  785.         return $self;
  786.     }
  787.     public function getExceptionToStatus(): ?array
  788.     {
  789.         return $this->exceptionToStatus;
  790.     }
  791.     public function withExceptionToStatus(array $exceptionToStatus): self
  792.     {
  793.         $self = clone $this;
  794.         $self->exceptionToStatus $exceptionToStatus;
  795.         return $self;
  796.     }
  797.     public function getQueryParameterValidationEnabled(): ?bool
  798.     {
  799.         return $this->queryParameterValidationEnabled;
  800.     }
  801.     public function withQueryParameterValidationEnabled(bool $queryParameterValidationEnabled): self
  802.     {
  803.         $self = clone $this;
  804.         $self->queryParameterValidationEnabled $queryParameterValidationEnabled;
  805.         return $self;
  806.     }
  807.     /**
  808.      * @return GraphQlOperation[]
  809.      */
  810.     public function getGraphQlOperations(): ?array
  811.     {
  812.         return $this->graphQlOperations;
  813.     }
  814.     public function withGraphQlOperations(array $graphQlOperations): self
  815.     {
  816.         $self = clone $this;
  817.         $self->graphQlOperations $graphQlOperations;
  818.         return $self;
  819.     }
  820.     /**
  821.      * @return string|callable|null
  822.      */
  823.     public function getProcessor()
  824.     {
  825.         return $this->processor;
  826.     }
  827.     public function withProcessor($processor): self
  828.     {
  829.         $self = clone $this;
  830.         $self->processor $processor;
  831.         return $self;
  832.     }
  833.     /**
  834.      * @return string|callable|null
  835.      */
  836.     public function getProvider()
  837.     {
  838.         return $this->provider;
  839.     }
  840.     public function withProvider($provider): self
  841.     {
  842.         $self = clone $this;
  843.         $self->provider $provider;
  844.         return $self;
  845.     }
  846.     public function getExtraProperties(): array
  847.     {
  848.         return $this->extraProperties;
  849.     }
  850.     public function withExtraProperties(array $extraProperties): self
  851.     {
  852.         $self = clone $this;
  853.         $self->extraProperties $extraProperties;
  854.         return $self;
  855.     }
  856.     public function getStateOptions(): ?OptionsInterface
  857.     {
  858.         return $this->stateOptions;
  859.     }
  860.     public function withStateOptions(?OptionsInterface $stateOptions): self
  861.     {
  862.         $self = clone $this;
  863.         $self->stateOptions $stateOptions;
  864.         return $self;
  865.     }
  866. }