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

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