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

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