vendor/api-platform/core/src/OpenApi/OpenApi.php line 22

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\OpenApi;
  12. use ApiPlatform\Documentation\DocumentationInterface;
  13. use ApiPlatform\OpenApi\Model\Components;
  14. use ApiPlatform\OpenApi\Model\ExtensionTrait;
  15. use ApiPlatform\OpenApi\Model\Info;
  16. use ApiPlatform\OpenApi\Model\Paths;
  17. final class OpenApi implements DocumentationInterface
  18. {
  19.     use ExtensionTrait;
  20.     // We're actually supporting 3.1 but swagger ui has a version constraint
  21.     // public const VERSION = '3.1.0';
  22.     public const VERSION '3.0.0';
  23.     private $openapi;
  24.     private $info;
  25.     private $servers;
  26.     private $paths;
  27.     private $components;
  28.     private $security;
  29.     private $tags;
  30.     private $externalDocs;
  31.     private $jsonSchemaDialect;
  32.     private $webhooks;
  33.     public function __construct(Info $info, array $serversPaths $pathsComponents $components null, array $security = [], array $tags = [], $externalDocs nullstring $jsonSchemaDialect null\ArrayObject $webhooks null)
  34.     {
  35.         $this->openapi self::VERSION;
  36.         $this->info $info;
  37.         $this->servers $servers;
  38.         $this->paths $paths;
  39.         $this->components $components;
  40.         $this->security $security;
  41.         $this->tags $tags;
  42.         $this->externalDocs $externalDocs;
  43.         $this->jsonSchemaDialect $jsonSchemaDialect;
  44.         $this->webhooks $webhooks;
  45.     }
  46.     public function getOpenapi(): string
  47.     {
  48.         return $this->openapi;
  49.     }
  50.     public function getInfo(): Info
  51.     {
  52.         return $this->info;
  53.     }
  54.     public function getServers(): array
  55.     {
  56.         return $this->servers;
  57.     }
  58.     public function getPaths(): Paths
  59.     {
  60.         return $this->paths;
  61.     }
  62.     public function getComponents(): Components
  63.     {
  64.         return $this->components;
  65.     }
  66.     public function getSecurity(): array
  67.     {
  68.         return $this->security;
  69.     }
  70.     public function getTags(): array
  71.     {
  72.         return $this->tags;
  73.     }
  74.     public function getExternalDocs(): ?array
  75.     {
  76.         return $this->externalDocs;
  77.     }
  78.     public function getJsonSchemaDialect(): ?string
  79.     {
  80.         return $this->jsonSchemaDialect;
  81.     }
  82.     public function getWebhooks(): ?\ArrayObject
  83.     {
  84.         return $this->webhooks;
  85.     }
  86.     public function withOpenapi(string $openapi): self
  87.     {
  88.         $clone = clone $this;
  89.         $clone->openapi $openapi;
  90.         return $clone;
  91.     }
  92.     public function withInfo(Info $info): self
  93.     {
  94.         $clone = clone $this;
  95.         $clone->info $info;
  96.         return $clone;
  97.     }
  98.     public function withServers(array $servers): self
  99.     {
  100.         $clone = clone $this;
  101.         $clone->servers $servers;
  102.         return $clone;
  103.     }
  104.     public function withPaths(Paths $paths): self
  105.     {
  106.         $clone = clone $this;
  107.         $clone->paths $paths;
  108.         return $clone;
  109.     }
  110.     public function withComponents(Components $components): self
  111.     {
  112.         $clone = clone $this;
  113.         $clone->components $components;
  114.         return $clone;
  115.     }
  116.     public function withSecurity(array $security): self
  117.     {
  118.         $clone = clone $this;
  119.         $clone->security $security;
  120.         return $clone;
  121.     }
  122.     public function withTags(array $tags): self
  123.     {
  124.         $clone = clone $this;
  125.         $clone->tags $tags;
  126.         return $clone;
  127.     }
  128.     public function withExternalDocs(array $externalDocs): self
  129.     {
  130.         $clone = clone $this;
  131.         $clone->externalDocs $externalDocs;
  132.         return $clone;
  133.     }
  134.     public function withJsonSchemaDialect(?string $jsonSchemaDialect): self
  135.     {
  136.         $clone = clone $this;
  137.         $clone->jsonSchemaDialect $jsonSchemaDialect;
  138.         return $clone;
  139.     }
  140. }
  141. class_alias(OpenApi::class, \ApiPlatform\Core\OpenApi\OpenApi::class);